質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2269閲覧

PHP掲示板

teityann1225

総合スコア158

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/03/09 09:17

編集2017/03/09 13:09

###やりたいこと
1 名前をNAMEにして投稿できるようにする。
2 タイトルをつける
3 画像も送れるようにする

###ソースコード

php

1<?php 2 3 4session_start(); // 1 5 6if (!isset($_SESSION["NAME"])) { 7 header("Location: ../Logout.php"); 8 exit; 9} 10 11$name = 12(string)filter_input(INPUT_POST,'name'); 13$text = (string)filter_input(INPUT_POST, 'text'); 14$token = (string)filter_input(INPUT_POST, 'token'); // 3 15 16$fp = fopen('data.csv', 'a+b'); 17if ($_SERVER['REQUEST_METHOD'] === 'POST' && sha1(session_id()) === $token) { // 3 18 flock($fp, LOCK_EX); 19 fputcsv($fp, [$name, $text]); 20 rewind($fp); 21} 22flock($fp, LOCK_SH); 23while ($row = fgetcsv($fp)) { 24 $rows[] = $row; 25} 26flock($fp, LOCK_UN); 27fclose($fp); 28 29?> 30<!DOCTYPE html> 31<center> 32<meta charset="UTF-8"> 33<title>掲示板</title> <p>ようこそ<u><?php echo htmlspecialchars($_SESSION["NAME"], ENT_QUOTES); ?></u>さん</p> <!-- ユーザー名をechoで表示 --> 34<br> 35<h1>掲示板</h1> 36<section> 37 <h2>新規投稿</h2> 38 <form action="" method="post"> 39 名前: <?php echo htmlspecialchars($_SESSION["NAME"], ENT_QUOTES); ?> 40<br> 41 本文: <input type="text" name="text" value=""><br> 42 <button type="submit">投稿</button> 43 <input type="hidden" name="token" value="<?=h(sha1(session_id())) /*2*/ ?>"> 44 </form> 45</section> 46<section> 47 <h2>投稿一覧</h2> 48<?php if (!empty($rows)): ?> 49 <ul> 50<?php foreach ($rows as $row): ?> 51 <li><?=h($row[1])?> (<?=h($row[0])?>)</li> 52<?php endforeach; ?> 53 </ul> 54<?php else: ?> 55 <p>投稿はまだありません</p> 56<?php endif; ?> 57</center> 58</section>

###教えて欲しいこと
1 どうやったら$nameにNAMEをいれることが出来るか

2タイトルをつけたい

3 画像ものせられるようのしたい

###捕捉
宜しくお願いします❗

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/03/09 11:34

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
guest

回答2

0

ベストアンサー

php

1$name = (string)filter_input(INPUT_POST,'name');

php

1$name = (NULL != filter_input(INPUT_POST,'name')) ? filter_input(INPUT_POST,'name') : 'NAME';

投稿2017/03/09 11:06

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

ログインの画面が他に必要ではないでしょうか。
また、http周りとsessionについてもう少し勉強されたほうがいいかと思います。

投稿2017/03/09 10:54

y_nishizawa

総合スコア154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teityann1225

2017/03/09 13:07

ログイン画面は別にあります。 正常に動いています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問