• 締切済み

掲示板で確認画面からデータを送るには

過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 掲示板で確認画面から掲示板へ書込みのデータを送りたいのですが、なかなかうまくいきません。 以下が掲示板のソースと確認画面のソースです。 「掲示板のページ」 <?php if ($_POST["write"] == "書込") { $log = $title . "\t" . $namae . "\t" . $body . "\n"; $fp = fopen("../php/test1.txt","a"); fwrite($fp,$log); fclose($fp); } $data = file("../php/test1.txt"); for($i=sizeof($data)-1;$i>=0;$i--){ list($title, $namae, $body) = explode("\t", $data[$i]); print <<<eof タイトル:{$title}<br><br> 名前:{$namae}<br><br> 記事NO.${i}:{$body}<br> <hr> eof; } ?> 「確認のページ」 <form name="form" action="./form.php" method="POST"> <input type="hidden" VALUE="$title,$namae,$body" > <input name="write" type="submit" value="書込"> </form> おわかりの方いましたらご教授お願いします。

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

みんなの回答

  • wish46
  • ベストアンサー率78% (29/37)
回答No.2

>こうも間を空けずポンポンを質問をつづけられていると >「ホントに自分で考えてるのかしら?」と素朴な疑問が・・・。 >基本の部分も少なからずあるため、最低限のマナーとして >基礎学習をし、少しは自分で調べてから投稿してほしい物です。 yambejpさんに同感です。 そもそも同じような質問を他のスレッドされているのはなぜ? それもできたのかできないのかも報告もないし。。。 それに今回の質問はPHPだけにあらずform(html)の基礎にもあります。 私がよくテストとして使う方法は 受け取り側の画面で print_r($POST) などで期待した通りの情報が受け取られているか確認します。 もう少し、書籍を買うとかご自身で勉強しようとする姿勢がないと覚えられませんよ?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こうも間を空けずポンポンを質問をつづけられていると 「ホントに自分で考えてるのかしら?」と素朴な疑問が・・・。 基本の部分も少なからずあるため、最低限のマナーとして 基礎学習をし、少しは自分で調べてから投稿してほしい物です。 さて、今回は確認ページのhiddenされているinputタグが なんにも働いてませんね <input type="hidden" VALUE="$title,$namae,$body" > を <input type="hidden" name="title" VALUE="{$title}" > <input type="hidden" name="namae" VALUE="{$namae}" > <input type="hidden" name="body" VALUE="{$body}" > など受け渡しが可能な記述にする必要があるでしょう。 最近はこの手のものはセッションで渡す場合もふえているようです。 すでになんどか指摘があったと思いますが、変数はきちんと エスケープして使用するように気をつけましょう。 (煩雑になるので省略して例示していてますが)

関連するQ&A

  • 掲示板について

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 掲示板で確認画面を作り確認して書込みをさせる掲示板を作っています。 確認ボタンを押して確認ページにいくと既に掲示板に書き込んであるらしく確認ページで確認すると2度、掲示板に書き込んでしまいます。 それを直すにはどうしたらよいでしょうか。 問題のソースは下です。 掲示板の書込みページ <html> <head> <title>一行掲示板</title> </head> <body> <h2>一行掲示板</h2> 書き込む内容を入力してください。<hr color="black"> <form name="form" action="./sample01.php" method="POST"> タイトル      <input type=text name="title" action="./sample01.php" size="30" method="POST"><br><br> 名前          <input type=text name="namae" action="./sample01.php" size="30" method="POST"><br><br> メッセージ  <textarea name="body" rows="5" cols="50"></textarea> <input name="write" type="submit" value="書込"> <input name="write" type="reset" value="リセット"><hr> </form> <?php $data = file("../php/test1.txt"); for($i=sizeof($data)-1;$i>=0;$i--){ print "タイトル.${i}:<br>\n名前.${i}:<br>\n記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> <br> <a href="../phpcollect/index.html">トップページへ</a> </body> </html> 確認ページ <?php $title = $_REQUEST["title"]; $title = $title."\n"; $namae = $_REQUEST["namae"]; $namae = $namae."\n"; $body = $_REQUEST["body"]; $body = $body."\n"; ?><html> <head> <title>Sample01</title> </head> <body> <?php $fp = fopen("../php/test1.txt","a"); fwrite($fp,$body); fclose($fp); echo "書込み確認画面", "<a href=\"./form.php\"></a>"; ?> <br><br> タイトル <table border="1" width="200" ><tr><td> <?= $title; ?> </td></tr></table> </font><br><br> 名前 <table border="1" width="200" ><tr><td> <?= $namae ?> </td></tr></table> </font><br><br> メッセージ <table border="1" width="350" ><tr><td> <?= $body; ?> </td></tr></table><br><br> <form name="form" action="./sample01.php" method="POST"> <input type="submit" value="書込"> <input name="reset" type="reset" value="リセット"> <hr color="black" width="44%" align="left"> </form> <a href="form.php">掲示板へ</a> </body> </html> わかる方おりましたらご教授お願いします。

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

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 phpで掲示板をつくったのですが、textarerで改行すると表示が改行されてしまいます。 1回の書込みで1つの表示にするにはどうしたらようでしょうか。 下が問題のソースです。 <?php $body = $_REQUEST["body"]; $body = $body."\n"; if($_REQUEST["write"] != ""){ $fp = fopen("../php/test1.txt","a"); fputs($fp,$body); fclose($fp); } ?> <html> <head> <title>一行掲示板2</title> </head> <body> <b>一行掲示板</b><br><br> 書き込む内容を入力してください。<br><hr> <form name="form" action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST"> <textarea name="body" rows="5" cols="50"></textarea> <input name="write" type="submit" value="書込"><hr> <?php $data = file("../php/test1.txt"); for($i=0; $i<sizeof($data); $i++){ print "記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> </form> </body> </html> わかる方おりましたらご教授お願いします。

    • ベストアンサー
    • PHP
  • 戻りボタンについて

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 掲示板のページを戻る(やり直しが出来る)ボタンをつくりたいのですが、戻るとページの内容が既に書き込まれてしまい、戻りボタンが機能しません。機能させるにはどうしたらよいでしょうか? ソースは以下です。 <?php $title = $_REQUEST["title"]; $title = str_replace("\t", " ", $title); $namae = $_REQUEST["namae"]; $namae = str_replace("\t", " ", $namae); $body = $_REQUEST["body"]; $body = str_replace("\t", " ", $body); ?><html> <head> <title>Sample01</title> </head> <body> <?php $log = $title . "\t" . $namae . "\t" . $body . "\n"; $fp = fopen("../php/test1.txt","a"); fwrite($fp,$log); fclose($fp); echo "書込み確認画面", "<a href=\"./form.php\"></a>"; ?> <br><br> タイトル <table border="1" width="200" ><tr><td> <?= $title; ?> </td></tr></table> </font><br><br> 名前 <table border="1" width="200" ><tr><td> <?= $namae ?> </td></tr></table> </font><br><br> メッセージ <table border="1" width="350" ><tr><td> <?= $body; ?> </td></tr></table><br><br> <form name="form" action="./form.php" method="POST"> <input name="write" type="submit" value="書込"> </form> <form> <input type=button value="戻る" onClick='history.back();'> </form> <hr color="black" width="44%" align="left"> </form> <a href="form.php">掲示板へ</a> </body> </html> わかる方おりましたらご教授お願いします。

    • ベストアンサー
    • PHP
  • phpの掲示板で新しい順に表示したい

    php初心者です。 phpで掲示板を作っています。 新しい順に表示したいのですが、やり方がわかりません。 古い順に表示するやり方はわかるのですが、どうやったらよいでしょうか。 古い順のソースです <html> <head> <title>一行掲示板</title> </head> <body> <h2>一行掲示板</h2> 書き込む内容を入力してください。<hr color="black"> <form name="form" action="./sample01.php" method="POST"> タイトル      <input type=text name="title" action="./sample01.php" size="30" method="POST"><br><br> 名前          <input type=text name="namae" action="./sample01.php" size="30" method="POST"><br><br> メッセージ  <textarea name="body" rows="5" cols="50"></textarea> <input name="write" type="submit" value="書込"> <input name="write" type="reset" value="リセット"><hr> </form> <?php $data = file("../php/test1.txt"); for($i=0; $i<sizeof($data); $i++){ print "タイトル.${i}:<br>\n名前.${i}:<br>\n記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> <br> <a href="../phpcollect/index.html">トップページへ</a> </body> </html> どうかわかる方おりましたらご教授お願いします。

    • 締切済み
    • PHP
  • 掲示板の表示について

    掲示板を作っています。 書込みなどの表示がうまくいかず困っています。 試行錯誤していますが、うまくいきません。 下記のように表示したいのですが、 タイトル.ああ               名前.いい 記事NO.うう 下記のように表示されてしまうのです。 タイトル.ああ いい うう 名前.ああ いい うう 記事NO.ああ いい うう 問題のソースは以下の通りです。 <?php $data = file("../php/test1.txt"); list($title, $namae, $body) = explode("\t", $data); for($i=sizeof($data)-1;$i>=0;$i--){ print "タイトル.${data[$i]}<br>\n名前.${data[$i]}<br>\n記事NO.${data[$i]}<br>\n<hr>"; } ?> どなたかおわかりの方いましたらお願い致します。

    • ベストアンサー
    • PHP
  • 複数の文字列をファイルに書き込むには

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 掲示板で確認画面を作り確認して書込みをさせる掲示板を作っています。 掲示板にタイトルと名前とメッセージを同時に書き込みたいのですが、同時に書き込む方法がわかりません。 下がソースです。(エラーが出る状態です) <?php $title = $_REQUEST["title"]; $title = $title."\n"; $namae = $_REQUEST["namae"]; $namae = $namae."\n"; $body = $_REQUEST["body"]; $body = $body."\n"; ?><html> <head> <title>Sample01</title> </head> <body> <?php $fp = fopen("../php/test1.txt","a"); fwritefwrite($fp,$title,$namae,$body);//ここを変えてみました fclose($fp); echo "書込み確認画面", "<a href=\"./form.php\"></a>"; ?> わかる方おりましたらご教授お願いします。

    • ベストアンサー
    • PHP
  • phpでfopen()やfputs()が使えない

    CGIを使ってやりたいことがあり、PHPを独学で学び、レンタルサーバーで実験をしているのですが、fopen()やfputs()をつかうとエラーのようになります。 これがそれです。 http://pgc.sub.jp/form.php サーバーはlolipopというところを使っているのですが、こちらのほうが許可していないということでしょうか。 ソースは以下のようになります。 <html> <head> <title>実験掲示板</title> </head> <body> <h1>実験掲示板</h1> 書き込む内容を入力してください。<hr> <form name="form" action="./sample01.php" method="POST"> <input name="body" type="text" size="40"> <input type="submit" value="書込"><hr> </form> <?php $data = file("./data.txt"); for($i=0; $i<sizeof($data); $i++){ print "記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> </body> </html> <?php $body = $_REQUEST["body"]; $body = $body."\n"; ?><html> <head> <title>Sample01</title> </head> <body> <?php $fp = fopen("./data.txt","a"); fputs($fp,$body); fclose($fp); echo "書き込み完了<br>", "<a href=\"./form.php\">戻る</a>"; ?> </body> </html> プラス空のdata.txtファイル また、大学のPCを使用しているのですが、 http://localhost/ をすると 「Connection Failed」となってしまい、localhostでの実験ができません。これは大学側が禁止しているためでしょうか?研究室のものですので、IPアドレスはそれぞれに割り当てられているのですが。

    • ベストアンサー
    • PHP
  • 掲示板の書き込みを古い順に並べるには

    perlはかなり初心者です。この前、掲示板の作り方を解説しているサイト様でスクリプトをお借りしていじってみました。解説がところどころ書いてあるので構造は大体理解できましたが、HTML以外のところは全然改造はできません。この掲示板は、書き込みが新着順に上から並ぶのですが、古い順に上から並べるにはどこをどうすればよいのでしょう?どなたかお願いします。 require "cgi-lib.pl"; print "Content-type: text/html; charset=Shift_JIS\n\n"; # フォーム部分を表示する print <<EOL; ここはフォームのHTMLを書きました EOL &ReadParse(*form); # フォームの値を取得 $namae = $form{"namae"}; $message = $form{"message"}; # ログファイル読み込み open(IN, "bbs.txt"); @log = <IN>; close(IN); # メッセージが入力されているときは書き込み処理を行なう if ($message ne "") { # タグの無効化 &deltag($namae); &deltag($message); # 改行を<br>に変換 $message =~ s/\r\n/<br>/g; # Windows系(\r\n) $message =~ s/\r/<br>/g; # Mac系(\r) $message =~ s/\n/<br>/g; # UNIX系(\n) # ログ先頭に書き込み内容を格納 unshift @log, "$namae\t$message\n"; # ログファイルにロックをかけて書き込み open(OUT, "+< bbs.txt"); flock(OUT, 2); truncate(OUT, 0); seek(OUT, 0, 0); print OUT @log; close(OUT); } # ログ表示 foreach $data (@log) { chop $data; ($namae,$message) = split(/\t/, $data); print <<EOL; <br><br>$namae<br>$message EOL } print <<EOL; </body> </html> EOL # タグを除去するサブルーチン sub deltag { $_[0] =~ s/</&lt;/g; $_[0] =~ s/>/&gt;/g; }

    • ベストアンサー
    • Perl
  • スマホ用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
  • 掲示板の記事の削除

    データの削除の覧でのソースについての質問です。 記事が削除されません。原因がわからないので困ってます。 答えをズバリ書いてくれたり、一からでもいいのでこっちのほうが簡単にできるよってのでも良いです。よろしくお願いします <HTML> <HEAD> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=sjis"> <FORM ACTION="<?php echo $PHP_SELF; ?>" METHOD="POST" > <TITLE>削除操作</TITLE> </HEAD> <BODY> <BR> <FORM ACTION="<?php echo $PHP_SELF; ?>" METHOD="POST"> <INPUT TYPE ="text" NAME="comment" SIZE="40"><BR> 削除キー<INPUT TYPE="password" NAME="pass" SIZE="10"><BR> <INPUT TYPE ="submit" NAME="regist" VALUE="ボタン"><BR> </FORM> <BR><BR> </CENTER> </BODY> </HTML> <? $data_file = "test01.txt"; if(!isset($code)) { $code = $_POST['code']; } if(!isset($comment)) { $comment = $_POST['comment']; } if(!isset($regit)) { $regist = $_POST['regist']; } if(!isset($delete)) { $delete = $_POST['delete']; } if(!isset($delcode)) { $delcode = $_POST['delcode']; } if(!isset($password)){ $password = $_POST['password']; } if(!isset($pass)) { $pass = $_POST['pass']; } //データの削除 if($delete){ if(($delcode != "") && ($password != "")){ $delfile = file($data_file); $fp = fopen($data_file, "w"); for($i=0; $i<count($delfile); $i++){ list($dcode,$dcomment,$dpass) = split( ",", $delfile[$i]); if ($password == $dpass){ if ($delcode == $dcode) { $delfile[$i] = ""; } } } fputs($fp,$delfile[$i]); fclose($fp); } unset($delfile); } //データの書き込み if($regist){ if(($pass != "") && ($comment != "")){ $code = time(); //アクセス時の秒数 $imput_msg = ( $code .','. $comment .','.$pass); //ファイル操作 $fp = fopen($data_file,"a+"); rewind($fp); fputs($fp,"$imput_msg\n"); fclose($fp); } } //出力処理 $msg = file($data_file); for($i = 0; $i < count($msg); $i++){ list($code2,$comment2,$pass2) = split( ",", $msg[$i]); print "<form method=\"POST\" action=\"$PHP_SELF\">"; print "<input type=\"checkbox\" name=\"delcode\" value=\"$code2\"><br>\n"; print "code2: $code2<br>"; print "comment:$comment2<br>"; print "pass: $pass2<br>"; print " 削除用パスワード:<input type=password size=10 name=password>"; print " <input type=\"submit\" name=\"delete\" value=\"削除\">\n"; print "</form>\n"; } unset($msg); ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう