- ベストアンサー
phpで掲示板を作りたい
掲示板をphpで作りたいと思っています。 機能は画像添付、メールアドレスの掲載、ホームページのURLの掲載です。 php初心者なので詳しい説明よろしくお願いします。 m(__)m
- みんなの回答 (12)
- 専門家の回答
質問者が選んだベストアンサー
tst_file.html と tst_file.php はサーバの同じディレクトリに配置しなければなりません そしてphpがサーバにインストールされ使える状態に無いといけません
その他の回答 (11)
- guuman
- ベストアンサー率30% (100/331)
404Error Not Found がどのステップでるか何をやったかを順を追ってすべて具体的に言わないと分かりません 画像選択画面まではでるのか サブミットのときにアウトなのか 順に何をやったかを言わないで断片的に言われてもあなたが何をやっていてどこで何が起こっているのかわからない
- guuman
- ベストアンサー率30% (100/331)
gomi.txtは作らなくてもよい 既にあるものをアップすればよい tst_file.htmlとtst_file.phpをサーバにおいて tst_file.htmlにクライアントのブラウザからアクセスすればファイル入力フォームが現れるので そこでどれか容量の小さいファイルを選択してサブミットすれば 選択したファイルがサーバのtst_file.htmlのあるディレクトリにアップされる
補足
ロリポップの404Error Not Foundがでてくるのですがどこが悪いのでしょうか?
- guuman
- ベストアンサー率30% (100/331)
tst_file.html: <form enctype="multipart/form-data" action="tst_file.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="99999"/> Send this file: <input name="userfile" type="file"/> <input type="submit" value="Send File"/> </form> tst_file.php: <?php echo'<pre>'; print_r($_FILES); echo'</pre>'; move_uploaded_file($_FILES[userfile][tmp_name],$_FILES[userfile][name]); phpinfo(); ?> が動かないのならば話になりません 小さいファイルを指定してアップロードしてみてください それがうまくいかないのならばいくまで原因を追求しなければなりません これは動くことを確認してますから動かないのは設定の問題化と思います 画像でも何でも容量が小さければアップできるはずです 5kバイト程度の小さな画像ファイルを送ってみてください
補足
guumanさん、 手順としては gomi.txt(テキストファイル) ok(ディレクトリ) No.9のファイルを任意の名前で保存 これらをアップロードする、でいいんですよね? クライアント側にアップロードっていうのがよくわからないのですが・・・
- guuman
- ベストアンサー率30% (100/331)
PHP4以降ならば $HTTP_POST_VARS["SUBMIT"]等 は $_POST[SUBMIT]等 としたほうがナウいね 提示のコードを実験してみましたか? それがうまくいけばあとは朝飯前だと思いますが…
補足
No.7の上のほうのコードを実行したんですが、 画像が添付されません。 私のプログラムのどこにどんなコードを入れればよいのか教えてください。お願いします。
- guuman
- ベストアンサー率30% (100/331)
次のファイルをクライアント側に gomi.txt: ok 次の2つのファイルをサーバ側に (ファイル名を同名にしたが大勢が同じフォルダに格納するとファイル名が重複し上書きされるので重複しないようにネーミングするほうがよい) tst_file.html: <form enctype="multipart/form-data" action="tst_file.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="1000"/> Send this file: <input name="userfile" type="file"/> <input type="submit" value="Send File"/> </form> tst_file.php: <?php echo'<pre>'; print_r($_FILES); echo'</pre>'; move_uploaded_file($_FILES['userfile']['tmp_name'],$_FILES['userfile']['name']); phpinfo(); ?> 注意: アップロードファイルはどんどん貯るのですぐに捨てないと人気サイトのサーバはすぐにパンクします 画像ファイルは大きいので設定制限を拡大する必要が有りそう
補足
<?php $submit = $HTTP_POST_VARS["SUBMIT"]; if ($submit=="送信") { $name = $HTTP_POST_VARS["NAME"]; $mail = $HTTP_POST_VARS["MAIL"]; $body = $HTTP_POST_VARS["BODY"]; if ($name=="" or $body=="") { echo '<font color="#FF000">必須項目入力エラー</font><br>'; echo 'お名前と本文は必ず入力してください<br>'; echo '<a href="javascript:history.back()">戻る</a>'; exit; } #HTML取除き $name = htmlspecialchars("$name"); $mail = htmlspecialchars("$mail"); $body = htmlspecialchars("$body"); # クォート取除き if( get_magic_quotes_gpc() ) { $name = stripslashes("$name"); } if( get_magic_quotes_gpc() ) { $mail = stripslashes("$mail"); } if( get_magic_quotes_gpc() ) { $body = stripslashes("$body"); } # メッセージ長1,000文字でカット $body = substr($body, 0, 1000); $body = str_replace("\r\n", "<br>", $body); $dt = date("y/m/d H:i:s"); $data = file("data.txt"); $fp = fopen("data.txt", "w"); fwrite($fp, "$name\t$mail\t$body\t$dt\n"); $i = 1; foreach ($data as $value) { if($i < 30) { fwrite($fp, "$value"); $i++; } } fclose($fp); header("Location: bbs.php"); exit; } # ノーキャッシュヘッダー header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); echo ' <html> <head> <title>PHP-BBS</title> </head> <body> <h1>PHP-BBS</h1> <br> <form method="post" action="bbs.php" accept-charset="x-euc-jp"> お名前 <input type="text" size="16" maxlength="30" name="NAME"> メール <input type="text" size="30" maxlength="50" name="MAIL"><br> 本文<br> <textarea rows="10" cols="70" wrap="soft" name="BODY"></textarea><br> <input type="submit" name="SUBMIT" value="送信"> <input type="file"> '; $data = file("data.txt"); foreach ($data as $value) { $view = explode("\t", $value); echo '<hr size="5" width="70%" align="left" noshade>'; if ($view[1]=="") { echo "<font color=\"#000080\"><b>$view[0]</b></font> $view[3]<br>"; } else { echo "<a href=\"mailto:$mail\"><font color=\"#000080\"><b>$view[0]</b></font></a> $view[3]<br>"; } echo "$view[2]<br>"; } echo '</body></html>'; // GetExt // ファイルの拡張子を取得します。 function GetExt ( $FilePath ) { $f = strrev( $FilePath ); $ext = substr( $f, 0, strpos( $f, "." ) ); return strrev( $ext ); } ?> ここまでのプログラムは組みました。 あとは画像のアップロードだけなんですが アップロードのやり方が分かりません。
- guuman
- ベストアンサー率30% (100/331)
tst_file.html: <form enctype="multipart/form-data" action="tst_file.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="99999"/> Send this file: <input name="userfile" type="file"/> <input type="submit" value="Send File"/> </form> tst_file.php: <?php echo'<pre>'; print_r($_FILES); echo'</pre>'; //move_uploaded_file($_FILES['userfile']['tmp_name'], "格納先パス"); phpinfo(); ?> コードミスも見受けられるので参考サイトはこちらのほうがいいでしょう
- guuman
- ベストアンサー率30% (100/331)
画像のアップロード方法はマニュアルに載っています PHPの場合簡単にアップロードできます
補足
リンク先のコードをコピー&ペーストしてみたのですが動きません。何故でしょうか?
- SAY_MAN
- ベストアンサー率41% (14/34)
無料サーバースペース http://www.2chu.net/ 広告あり http://www.realint.com/hpspace/ 広告あり、レンタル掲示板あり とまぁ、画像アップがダメと書いてないところ・・・ 広告なしは、あんまりないですね。 海外とかなら結構ありますけど・・・
- happy_books
- ベストアンサー率28% (131/460)
いきなり掲示板はむりっぽそうな予感。 自分だけの書き込みができる日記から始めましょう。 私はPerlもそうですが、掲示板は多機能なものが たくさんあるので、自作した事はありません。 フリーのスペースを使っているのかな? php+画像アップOKなスペースがあったら、教えて ください。 有料なのかな~?
補足
<?php $submit = $HTTP_POST_VARS["SUBMIT"]; if ($submit=="送信") { $name = $HTTP_POST_VARS["NAME"]; $mail = $HTTP_POST_VARS["MAIL"]; $body = $HTTP_POST_VARS["BODY"]; if ($name=="" or $body=="") { echo '<font color="#FF000">必須項目入力エラー</font><br>'; echo 'お名前と本文は必ず入力してください<br>'; echo '<a href="javascript:history.back()">戻る</a>'; exit; } #HTML取除き $name = htmlspecialchars("$name"); $mail = htmlspecialchars("$mail"); $body = htmlspecialchars("$body"); # クォート取除き if( get_magic_quotes_gpc() ) { $name = stripslashes("$name"); } if( get_magic_quotes_gpc() ) { $mail = stripslashes("$mail"); } if( get_magic_quotes_gpc() ) { $body = stripslashes("$body"); } # メッセージ長1,000文字でカット $body = substr($body, 0, 1000); $body = str_replace("\r\n", "<br>", $body); $dt = date("y/m/d H:i:s"); $data = file("data.txt"); $fp = fopen("data.txt", "w"); fwrite($fp, "$name\t$mail\t$body\t$dt\n"); $i = 1; foreach ($data as $value) { if($i < 30) { fwrite($fp, "$value"); $i++; } } fclose($fp); header("Location: bbs.php"); exit; } # ノーキャッシュヘッダー header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); echo ' <html> <head> <title>PHP-BBS</title> </head> <body> <h1>PHP-BBS</h1> <br> <form method="post" action="bbs.php" accept-charset="x-euc-jp"> お名前 <input type="text" size="16" maxlength="30" name="NAME"> メール <input type="text" size="30" maxlength="50" name="MAIL"><br> 本文<br> <textarea rows="10" cols="70" wrap="soft" name="BODY"></textarea><br> <input type="submit" name="SUBMIT" value="送信"> </form> '; $data = file("data.txt"); foreach ($data as $value) { $view = explode("\t", $value); echo '<hr size="5" width="70%" align="left" noshade>'; if ($view[1]=="") { echo "<font color=\"#000080\"><b>$view[0]</b></font> $view[3]<br>"; } else { echo "<a href=\"mailto:$mail\"><font color=\"#000080\"><b>$view[0]</b></font></a> $view[3]<br>"; } echo "$view[2]<br>"; } echo '</body></html>'; // GetExt // ファイルの拡張子を取得します。 function GetExt ( $FilePath ) { $f = strrev( $FilePath ); $ext = substr( $f, 0, strpos( $f, "." ) ); return strrev( $ext ); } ?> このような掲示板を作ることはできましたが、画像添付のやり方が分かりません。どこにどのようなコードを付け加えればよいのでしょうか?
- guuman
- ベストアンサー率30% (100/331)
ここにソースコードがあります これをモディファイすればいいでしょう 同時アクセスの対策をしていないのでそこは直さないといけません
- 1
- 2
補足
Send Fileを押した時にエラーが出ます。