PHP掲示板を作成する方法

このQ&Aのポイント
  • 現在、PHPで掲示板を作成中です。掲示板のログを保存するためのファイル名は設定しています。
  • 投稿された情報を書き込むために、POSTデータの中から必要な情報を取得しています。
  • 新しい情報を1行目に書き込むために、古い情報も読み込んでから書き込みを行っています。
回答を見る
  • ベストアンサー

PHP 掲示板記述

現在、PHPで掲示板をメモ帳で作成しています。 今回は、よくよく分からないものを記載! PHPタグ================================= <?php // 保存するログファイル名 $LOGFILE = "log.txt"; … (1) // POST で mode = write の属性が送られていたら書き込み処理 if ($_POST["mode"] == "write") { … (2)   $name = $_POST["name"]; … (3)   $message = $_POST["message"];   $date = date("Y/m/d H:i:s"); … (4)   if (file_exists($LOGFILE)) { … (5)     $lines = file($LOGFILE); … (6)   }   $fp = fopen($LOGFILE,"w"); … (7)   fputs($fp,"$name,$message,$date\n"); … (8)   for ($i=0;$i<count($lines);$i++) { … (9)     fputs($fp,$lines[$i]); … (10)   }   fclose($fp); } ?> PHP 解説よくよく分からない=========== (1) では変数で説明した変数に保存するファイル名を指定しています。ファイル名は保存、読み込みのところで複数回つかうので使いまわしできるように変数に入れています。 (2) では前ページで説明した、 <input type="hidden" name="mode" value="write"> でフォームから送られる情報を $_POST["mode"] で受け取って、その値が "write" かどうかチェックしています。 「投稿する」ボタンを押してサーバに情報が送信される際に mode=write も送られていますので、それを if文で判定しています。通常のアクセスでは mode=write が送られないため、書き込み処理を行わないという感じです。 (3) では(2)同様、フォームから送られた name の情報を受け取って $name という変数に入れています。 (4) では現在の日付を取得しています。PHPには date 関数という代物があって簡単に現在の日付を取得できます。 (5) ではファイルが存在するかチェックしています。 file_exists関数でファイルが存在するか調べています。 (6) では file 関数によって配列にデータをすべて入れています。なぜここでデータを変数に入れるかというと、新しく投稿されたデータを1行目に書き込んで、残りに古い情報を書き込むためです。 なまえ,メッセージ,2005/02/06 なまえ,メッセージ,2005/02/06 なまえ,メッセージ,2005/02/06 青が新しく投稿された情報で赤が元々保存されていたふるい情報 (7) ではこれから書き込むのでfopen関数でファイルを書き込みモードで開いています。 (8) では開いたファイルにfputs関数で書き込んでいます。名前、メッセージ、日付をカンマ区切りで1行にしてファイルに書き込んでいます。 (9),(10) では古いファイルの情報(投稿前に書き込まれていた情報)を書き込んでいます。これを行わないと、新しく投稿された情報は書き込まれますが、古い情報が消えてしまうのでこの処理をしています。 PHPの解説でよくわからないので、お答えしてください。                                     ♪♪宜しくお願いします。♪♪

  • PHP
  • 回答数3
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.3

提示されたソース自体、(個人的には)実用性から見れば問題ありすぎて「こんなもの使うな!」と言いたくなるぐらいですが、流れの理解をするためならシンプルで優れている面もあるので、100歩譲ってナシではないでしょう。しかし、解説も付けてくれてあるのにこれを「全てわからない」と言われたらもう救いようがないです。諦めるかお金払ってパソコンスクール通ってくださいとしか言えません。

その他の回答 (2)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

どの部分が「よくわからない」のですか? もし「全部わからない」のであれば、さすがに手に負えません。phpの習得は諦めてください。

kodoryu2013
質問者

補足

PHP 解説よくよく分からない===========から下が中々分かりません。解説を宜しくお願いします。

回答No.1

質問がないよ?

関連するQ&A

  • PHPから書き換え

    尻取りゲーム用に書いたPHPスクリプトの一部ですが CGIに書き換える方法がよくわかりません。 教えていただけませんでしょうか。 ============================================ if(isset($_POST['shiritori'])){ $rest = mb_substr($shiritori, -1, 1, "SJIS"); $hajime = mb_substr($shiritori, 0, 1, "SJIS"); if(($name != "") && ($shiritori != "")){ if($hajime == $key){ setcookie("name", $name, $expire); $key = file($keyfile); $fp = fopen($keyfile, "w"); fputs($fp,$rest); fclose ($fp); $word = "".$shiritori."<hr>"; $lines = file($logfile); $fp = fopen($logfile, "w"); fputs($fp,$word); for($i = 0; $i < $logmax-1; $i++) fputs($fp, $lines[$i]); fclose ($fp); } } else{ print"記入漏れはありませんか<br>"; print"次は<b>" .$key. "</b>から始まる語です。<br>"; } ============================================ どうぞよろしくお願いします。

    • 締切済み
    • CGI
  • 書き込みデータフォルダの切り替え

    jump.php ./001/log ./002/log ----------------------------- 下記PHPのログファイルの書き込みをフォームから(001・002・・) $name=$_POST[name]; で得た値のフォルダへ振り分けてデータの書き込みしたいのですが うまくできません。 ----------------------------- 改変前 $logfile = $logdir."/$y-$m-$d.txt"; 改変後 $logfile = $name."/".$logdir."/$y-$m-$d.txt"; ----------------------------- ご指導よろしくお願いいたします ----------------------------- $logdir ="log"; // if($_POST[r]){ $y=$_POST[y]; $m=$_POST[m]; $d=$_POST[d]; $H=$_POST[H]; $i=$_POST[i]; $word=$_POST[word]; $name=$_POST[name]; $pass=$_POST[pass]; if($pass != $adpass){die("パスワードが違います"); } if( eregi("[^0-9]",$d) || eregi("[^0-9]",$m) || eregi("[^0-9]",$y)){ die("半角数字のみ有効です。"); } if(!checkdate($m,$d,$y)){die("その日は存在しません。"); } $logfile = $name."/".$logdir."/$y-$m-$d.txt"; if(file_exists($logfile)){ $lines = file($logfile); $fp = @fopen($logfile,"w"); for($j=0;$j<count($lines);$j++){ fputs($fp,$lines[$j]); } @fputs($fp,$H.":".$i.$word.$name."\n"); @fclose($fp); }else{ $fp = @fopen($logfile,"w"); @fputs($fp,$H.":".$i.$word.$name."\n"); @fclose($fp); } header("Location: $_SERVER[PHP_SELF]"); exit; } -----------------------------

    • 締切済み
    • PHP
  • PHPで作る掲示板について

    これを実行するとページは表示されるのですが、名前や題名、本文に日本語を入力すると 例えば名前に「山田」と入れ送信すると投稿者のところに何も出ません どうすれば解決できますか?環境はWin7でサーバは用意されたものを使用しているので 設定等の必要はありません。 画像は上が送信前、下が送信後です <?php $lines = file('bbs2.txt'); if ($_POST['write']) { $items = explode("\t", $lines[0]); $no = $items[0] + 1; $name = htmlspecialchars($_POST['name']); if (!$name) $name = "名無しさん"; $mail = htmlspecialchars($_POST['mail']); $title = htmlspecialchars($_POST['title']); if (!$title) $title = "無題"; $contents = htmlspecialchars($_POST['contents']); $contents = str_replace("\r\n", "<br>", $contents); $contents = str_replace("\r", "<br>", $contents); $contents = str_replace("\n", "<br>", $contents); $delkey = htmlspecialchars($_POST['delkey']); $time = date("Y/m/d H:i:s"); $expire = time() + 3600 * 24 * 30; setcookie("name", $name, $expire); setcookie("mail", $mail, $expire); setcookie("delkey", $delkey, $expire); $data = "$no\t$name\t$mail\t$title\t$contents\t$delkey\t$time\n"; array_unshift($lines, $data); } else { $name = $_COOKIE['name']; $mail = $_COOKIE['mail']; $delkey = $_COOKIE['delkey']; } if ($_POST['delete']) { for ($i = 0; $i < count($lines); $i++) { $items = explode("\t", $lines[$i]); if ($items[0] == $_POST['delno'] && $items[5] == $_POST['delkey2']) { array_splice($lines, $i, 1); } } } if ($_POST['write'] || $_POST['delete']) { $fp = fopen('bbs2.txt', 'w'); foreach($lines as $line) fputs($fp, $line); fclose($fp); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>掲示板2</title> </head> <body> <form method="post" action="bbs2.php"> お名前:<input type="text" name="name" value="<?php print $name ?>"><br> メール:<input type="text" name="mail" value="<?php print $mail ?>"><br> 題 名:<input type="text" name="title"><br> 削除キー:<input type="password" name="delkey" value="<?php print $delkey ?>"><br> <textarea name="contents" cols="60" rows="5"></textarea><br> <input type="submit" name="write" value="送信"> <hr> 記事番号:<input type="text" name="delno">  削除キー: <input type="password" name="delkey2">  <input type="submit" name="delete" value="記事削除"> </form> <hr> <?php foreach($lines as $line) { $line = rtrim($line); $items = explode("\t", $line); print "No.{$items[0]} "; print "<b>{$items[3]}</b> 投稿者:"; if ($items[2]) print "<a href='mailto:{$items[2]}'>"; print $items[1]; if ($items[2]) print "</a>"; print " 投稿時間:{$items[6]}"; print "<p>{$items[4]}</p><hr>\n"; } ?> </body> </html>

    • 締切済み
    • PHP
  • PHPで作る掲示板のプログラムについて

    これを実行するとページは表示されるのですが、名前や題名、本文に日本語を入力すると 例えば名前に「山田」と入れ送信すると投稿者のところに何も出ません どうすれば解決できますか? <?php $lines = file('bbs2.txt'); if ($_POST['write']) { $items = explode("\t", $lines[0]); $no = $items[0] + 1; $name = htmlspecialchars($_POST['name']); if (!$name) $name = "名無しさん"; $mail = htmlspecialchars($_POST['mail']); $title = htmlspecialchars($_POST['title']); if (!$title) $title = "無題"; $contents = htmlspecialchars($_POST['contents']); $contents = str_replace("\r\n", "<br>", $contents); $contents = str_replace("\r", "<br>", $contents); $contents = str_replace("\n", "<br>", $contents); $delkey = htmlspecialchars($_POST['delkey']); $time = date("Y/m/d H:i:s"); $expire = time() + 3600 * 24 * 30; setcookie("name", $name, $expire); setcookie("mail", $mail, $expire); setcookie("delkey", $delkey, $expire); $data = "$no\t$name\t$mail\t$title\t$contents\t$delkey\t$time\n"; array_unshift($lines, $data); } else { $name = $_COOKIE['name']; $mail = $_COOKIE['mail']; $delkey = $_COOKIE['delkey']; } if ($_POST['delete']) { for ($i = 0; $i < count($lines); $i++) { $items = explode("\t", $lines[$i]); if ($items[0] == $_POST['delno'] && $items[5] == $_POST['delkey2']) { array_splice($lines, $i, 1); } } } if ($_POST['write'] || $_POST['delete']) { $fp = fopen('bbs2.txt', 'w'); foreach($lines as $line) fputs($fp, $line); fclose($fp); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>掲示板2</title> </head> <body> <form method="post" action="bbs2.php"> お名前:<input type="text" name="name" value="<?php print $name ?>"><br> メール:<input type="text" name="mail" value="<?php print $mail ?>"><br> 題 名:<input type="text" name="title"><br> 削除キー:<input type="password" name="delkey" value="<?php print $delkey ?>"><br> <textarea name="contents" cols="60" rows="5"></textarea><br> <input type="submit" name="write" value="送信"> <hr> 記事番号:<input type="text" name="delno">  削除キー: <input type="password" name="delkey2">  <input type="submit" name="delete" value="記事削除"> </form> <hr> <?php foreach($lines as $line) { $line = rtrim($line); $items = explode("\t", $line); print "No.{$items[0]} "; print "<b>{$items[3]}</b> 投稿者:"; if ($items[2]) print "<a href='mailto:{$items[2]}'>"; print $items[1]; if ($items[2]) print "</a>"; print " 投稿時間:{$items[6]}"; print "<p>{$items[4]}</p><hr>\n"; } ?> </body> </html>

    • 締切済み
    • PHP
  • PHPで作る掲示板について

    以前にも質問しましたがフォームから日本語を送信すると文字化けが発生します info.phpでPHPのマルチバイト系の設定を確認したとこを下のようになっていました。 サーバは借りているのでphp.iniで設定変更できないため.htaccessで対処しようと したのですがうまくいきませんでした。解決策をお願いします 環境はWin7でPHPのバージョンは 5.3.10です mbstring.detect_order auto mbstring.encoding_translation On mbstring.func_overload 0 mbstring.http_input auto mbstring.http_output UTF-8 mbstring.http_output_conv_mimetypes ^(text/|application/xhtml\+xml) mbstring.internal_encoding UTF-8 mbstring.language Japanese Japanese mbstring.script_encoding no value mbstring.strict_detection Off mbstring.substitute_character no value //プログラム <?php $lines = file('bbs2.txt'); if ($_POST['write']) { $items = explode("\t", $lines[0]); $no = $items[0] + 1; $name = htmlspecialchars($_POST['name']); if (!$name) $name = "名無しさん"; $mail = htmlspecialchars($_POST['mail']); $title = htmlspecialchars($_POST['title']); if (!$title) $title = "無題"; $contents = htmlspecialchars($_POST['contents']); $contents = str_replace("\r\n", "<br>", $contents); $contents = str_replace("\r", "<br>", $contents); $contents = str_replace("\n", "<br>", $contents); $delkey = htmlspecialchars($_POST['delkey']); $time = date("Y/m/d H:i:s"); $expire = time() + 3600 * 24 * 30; setcookie("name", $name, $expire); setcookie("mail", $mail, $expire); setcookie("delkey", $delkey, $expire); $data = "$no\t$name\t$mail\t$title\t$contents\t$delkey\t$time\n"; array_unshift($lines, $data); } else { $name = $_COOKIE['name']; $mail = $_COOKIE['mail']; $delkey = $_COOKIE['delkey']; } if ($_POST['delete']) { for ($i = 0; $i < count($lines); $i++) { $items = explode("\t", $lines[$i]); if ($items[0] == $_POST['delno'] && $items[5] == $_POST['delkey2']) { array_splice($lines, $i, 1); } } } if ($_POST['write'] || $_POST['delete']) { $fp = fopen('bbs2.txt', 'w'); foreach($lines as $line) fputs($fp, $line); fclose($fp); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>掲示板2</title> </head> <body> <form method="post" action="bbs2.php"> お名前:<input type="text" name="name" value="<?php print $name ?>"><br> メール:<input type="text" name="mail" value="<?php print $mail ?>"><br> 題 名:<input type="text" name="title"><br> 削除キー:<input type="password" name="delkey" value="<?php print $delkey ?>"><br> <textarea name="contents" cols="60" rows="5"></textarea><br> <input type="submit" name="write" value="送信"> <hr> 記事番号:<input type="text" name="delno">  削除キー: <input type="password" name="delkey2">  <input type="submit" name="delete" value="記事削除"> </form> <hr> <?php foreach($lines as $line) { $line = rtrim($line); $items = explode("\t", $line); print "No.{$items[0]} "; print "<b>{$items[3]}</b> 投稿者:"; if ($items[2]) print "<a href='mailto:{$items[2]}'>"; print $items[1]; if ($items[2]) print "</a>"; print " 投稿時間:{$items[6]}"; print "<p>{$items[4]}</p><hr>\n"; } ?> </body> </html>

    • ベストアンサー
    • PHP
  • phpでエラーが出て開発が進みません

    今、ファイルを指定してそのファイルを開き、表示するというプログラムを作っています。 それで Warning: file(): Filename cannot be empty in /home/runner/245ch/core.php on line 94 Warning: array_reverse() expects parameter 1 to be array, bool given in /home/runner/245ch/core.php on line 96 というエラーが出てしまいますどうか回答お願いします。 プログラムは <?php $i; $counter = 0; $filename = 'ip制限.dat'; // fopenでファイルを開く('r'は読み込みモードで開く) $fp = fopen($filename, 'r'); // fgetsでファイルを読み込み、変数に格納 $lines = file($filename, FILE_IGNORE_NEW_LINES); for($i = 0; $i <50 ; $i++){ if($lines[$counter] == $_SERVER["HTTP_X_FORWARDED_FOR"]){ header("location: https://245ch.teamperaggu.repl.co/ihan.html"); }; $counter = $counter + 1; } fclose($fp); // ファイルの指定 //エスケープする関数 function h($s){ return htmlspecialchars($s,ENT_QUOTES,'UTF-8'); } if(isset($_POST["sentaku"])){ $dataFile = trim($_POST['filee']) . ".dat"; $rr = trim($_POST['filee']) . ".dat"; } if(isset($_POST["kousin"])){ $message = trim($_POST['message']); $user = trim($_POST['user_name']); $ip = $_SERVER["HTTP_X_FORWARDED_FOR"] ; file_put_contents("ip.dat","user ". $user ." ". $ip . "\n", FILE_APPEND); //messageが空じゃなかったら if(!empty($message)){ //userが空の場合、名無しにする if(empty($user)){ $user = "名無し"; } //日付を取得する $postDate = date('Y-m-d H:i:s'); //ファイルに書き込むメッセージを作成する $newData = " /名前/ ". $user." /メッセージ/ ".$message." /時間 /".$postDate."\n"; //ファイルを開く $fp = fopen($dataFile,'a'); //ファイルに書き込む fwrite($fp,$newData); //ファイルを閉じる fclose($fp); } } //name="send_message"のPOST送信があった時 if(isset($_POST["send_message"])){ //送信されたname="message"とname="user_name"の値を取得する $message = trim($_POST['message']); $user = trim($_POST['user_name']); $ip = $_SERVER["HTTP_X_FORWARDED_FOR"] ; file_put_contents("ip.dat","user ". $user ." ". $ip . "\n", FILE_APPEND); //messageが空じゃなかったら if(!empty($message)){ //userが空の場合、名無しにする if(empty($user)){ $user = "名無し"; } //日付を取得する $postDate = date('Y-m-d H:i:s'); //ファイルに書き込むメッセージを作成する $newData = " /名前/ ". $user." /メッセージ/ ".$message." /時間 /".$postDate."\n"; //ファイルを開く $fp = fopen($dataFile,'a'); //ファイルに書き込む fwrite($fp,$newData); //ファイルを閉じる fclose($fp); } } //一行ずつデータを取り出して配列に入れる $post_list = file($dataFile,FILE_IGNORE_NEW_LINES); //逆順に並べ替える $post_list = array_reverse($post_list); ?> <style> a.text { position: absolute; /*自由に配置する指定*/ bottom: 0; /*下寄せの指定*/ right: 50; font-size: 25px; } a.test { position: absolute; /*自由に配置する指定*/ bottom: 0; /*下寄せの指定*/ right: 200; font-size: 25px; } a.test { position: absolute; /*自由に配置する指定*/ bottom: 0; /*下寄せの指定*/ right: 200; font-size: 25px; } </style> <body> <h1>掲示板へようこそ</h1> <!--ここで投稿内容を送信する--> <form action="" method="post"> <from method="post"> <input type="text" name="filee"> <input type="submit" name="sentaku" value="選択"> </from> メッセージ:<input type="text" name="message"> ユーザー名:<input type="text" name="user_name"> <input type="submit" name="send_message" value="投稿"> <input type="submit" name="kousin" value="更新"> </form> <h2>投稿一覧</h2> <ul> <!--post_listがある場合--> <?php if (!empty($post_list)){ ?> <!--post_listの中身をひとつづつ取り出し表示する--> <?php foreach ($post_list as $post){ ?> <li><?php echo h($post); ?></li> <?php } ?> <?php }else { ?> <li>まだ投稿はありません。</li> <?php } ?> </ul> <a class="text" href="kiyaku.html">利用規約</a> <a class="test" href="otoiawase.php">お問い合わせ</a> </body>

    • ベストアンサー
    • PHP
  • PHPによる行データのアップダウン

    PHPによる行データのアップダウン フォームからデータ行をGETした内容をアップダウンさせたいのですが、どうにも入れ替えができません。 プログラムコードのアドバイスをください。 *ログファイルの中(data.dat) ゴリラ チューリップ ばなな ストロベリー ペンギン <?php $data = "data.dat"; function row_up() { $lines = @file($data); $lines[$ont] = $lines[$_GET[row]]; //自分 $lines[$_GET[row]] = $lines[$_GET[row]-1]; //前の人 $fp = fopen($data,"w"); rewind($fp); for($i=0;$i<count($lines);$i++) { if($lines[$i] == $lines[$_GET[row]]){ fputs($fp,$lines[$_GET[row]]); } elseif($lines[$i] == $lines[$ont]){ fputs($fp,$lines[$ont]); } fputs($fp,$lines[$i]); } fclose($fp); } function row_down() { $lines = @file($data); $lines[$ont] = $lines[$_GET[row]]; //自分 $lines[$_GET[row]] = $lines[$_GET[row]+1]; //次の人 $fp = fopen($data,"w"); rewind($fp); for($i=0;$i<count($lines);$i++) { if($lines[$i] == $lines[$ont]){ fputs($fp,$lines[$ont]); } elseif($lines[$i] == $lines[$_GET[row]]){ fputs($fp,$lines[$_GET[row]]); } fputs($fp,$lines[$i]); } fclose($fp); } switch($_GET[mode]) { case up: row_up(); break; case down: row_down(); break; default: break; } ?>

    • ベストアンサー
    • PHP
  • PHPで掲示板

    PHPでひとこと掲示板を以下の要件を満たすように作成しています。 ・利用者が名前とコメントを入力し、発言できる。 ・利用者の過去の発言内容をテキストファイルで管理する。 ・全ての利用者の過去の発言内容を一覧で表示する。一覧には「名前」「コメント」「発言日時」の3つを1行ずつ表示する。 ・利用者の名前は最大20文字以内まで発言できる。もし20文字より多くの文字を入力して発言した場合はエラーメッセージを表示し、発言できないようにする。 ・利用者のコメントは最大100文字以内まで発言できる。もし100文字より多くの文字を入力して発言した場合はエラーメッセージを表示し、発言できないようにする。 ・利用者の名前とコメントは必ず文字が入力される。もし名前あるいはコメントが未入力で発言した場合はエラーメッセージを表示し、発言できないようにする。 ・(ソースコード)比較演算子は、「===」や「!==」を利用すること 初心者なので、頭がこんがらがって意味が分からなくなってしまいました。以下のコードでおかしいところのご指摘をお願いします。また、よろしければ皆さんのプログラミングのオススメ学習法を教えていただけると幸いです。 <?php const FILE_NAME = './bbs.txt'; $date = date("Y-m-d H:i:s"); $log = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $name = $_POST['name']; // $comment = $_POST['comment']; // $log = $name . ':' . $comment . '-' . $date . "\n"; if (($fp = fopen(FILE_NAME, 'a')) !== false) { if ((mb_strlen($name) <= $name_max) && (mb_strlen($name) !== 0)){ print '名前は20文字以内で書いてください'; if (fwrite($fp, $name) === false) { print 'ファイル書き込み失敗'; } } fclose($fp); } if ($_SERVER['REQUEST_METHOD'] === 'POST') { // $name = $_POST['name']; $comment = $_POST['comment']; $log = $name . ':' . $comment . '-' . $date . "\n"; if (($fp = fopen(FILE_NAME, 'a')) !== false) { if ((mb_strlen($comment) <= $comment_max) && (mb_strlen($comment) !== 0)){ print 'ひとことは100文字以内で書いてください'; if (fwrite($fp, $log) === false) { print 'ファイル書き込み失敗'; } } fclose($fp); } $data = array(); if (is_readable(FILE_NAME) === true) { if (($fp = fopen(FILE_NAME, 'r')) !== false) { while (($tmp = fgets($fp)) !== false) { $data[] = htmlspecialchars($tmp, ENT_QUOTES, 'UTF-8'); } fclose($fp); } } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1>一言掲示板</h1> <form method="post"> <p>名前 : <?php if (mb_strlen($name)){?><input type="text" name="name"> <?php } ?> ひとこと : <?php if (mb_strlen($comment)){?><input type="text" name="comment"><?php } ?> <input type="submit" value="送信"> </p> </form> <ul> <?php foreach ($data as $value) { ?> <li> <?php print $value; ?> </li> <?php } ?> </ul> </body> </html>

    • ベストアンサー
    • PHP
  • スマホ用PHP掲示板

    PHPで掲示板を簡易的に作ったのですが スマートフォン(iPhone)にも対応したく思います。 端末用にコーティングするにはどのような記述をしたら良いでしょうか。 【ソース】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ <html> <head><title>TEST</title></head> <body> <p>掲示板</p> <form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>"> <input type="text" name="personal_name"><br><br> <textarea name="contents" rows="8" cols="40"> </textarea><br><br> <input type="submit" name="btn1" value="投稿する"> </form> <?php if($_SERVER["REQUEST_METHOD"] == "POST"){ writeData(); } readData(); function readData(){ $keijban_file = 'keijiban.txt'; $fp = fopen($keijban_file, 'rb'); if ($fp){ if (flock($fp, LOCK_SH)){ while (!feof($fp)) { $buffer = fgets($fp); print($buffer); } flock($fp, LOCK_UN); }else{ print('ファイルロックに失敗しました'); } } fclose($fp); } function writeData(){ $personal_name = $_POST['personal_name']; $contents = $_POST['contents']; $contents = nl2br($contents); $data = "<hr>¥r¥n"; $data = $data."<p>投稿者:".$personal_name."</p>¥r¥n"; $data = $data."<p>内容:</p>¥r¥n"; $data = $data."<p>".$contents."</p>¥r¥n"; $keijban_file = 'keijiban.txt'; $fp = fopen($keijban_file, 'ab'); if ($fp){ if (flock($fp, LOCK_EX)){ if (fwrite($fp, $data) === FALSE){ print('ファイル書き込みに失敗しました'); } flock($fp, LOCK_UN); }else{ print('ファイルロックに失敗しました'); } } fclose($fp); } ?> </body> </html> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ ご教示の程宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP 掲示板について

    ファイル名:bbs.html 掲示板タグを一を記載します。 <html> <head> <title>ミニ掲示板</title> </head> <div class="menu"> l<a href="~~~">~~~</a> l<a href="~~~">~~~</a> </div> <body> <p>※記事削除は、製作者へメールをクリックし、用件には【掲示板 記事削除の件】内容には、【記事削除キーを入力し、送信してください。】<br> ミニ掲示板(<a href="bb.html">リロード</a>)<hr> <form method="post" action="bbs.php"> <input type="hidden" name="mode" value="write"> 名前:<input type="text" name="name" size="20"><br> メールアドレス:<input type="text" name="name" size="40"><br> 用件:<input type="text" name="name" size="20"><br> 記事削除キー:<INPUT size="20" type="password" value="" name="pass"> <p> 内容:<br> <textarea name="message" rows="5" cols="30"></textarea><br> <input type="submit" value=" 投稿する "> </form> <hr> 【投稿する】を押すとbbs.phpに繋がるのですが、【投稿する】を押したら、bbs.htmlの【最初の場面】の下に自動的に入るようにしたいのですが。! どうすればよいのでしょうか。? ♪宜しくお願いいたします。♪【(ーー;)】

    • ベストアンサー
    • PHP

専門家に質問してみよう