No.1
- 回答日時:
こんばんわ。
まずどのような画面にするのか決めましょう。
そしてパラメーターの受渡しを調べてみましょう。
$_POSTや$_GETなど
次にファイルの操作について色々と調べてみましょう。
fopen,fclose,flock,fputs,fgets,fileなど。
ファイルへの書き込みや読み込みが出来るようになったら
foreach関数を調べて、ファイルの中身を表示できるようになりましょう。
それで投稿だけの簡単はものができるはず。
それに機能を追加していく感じで、わからなければまた質問してください。
この質問終わるの時間かかりそうな予感・・・
No.2
- 回答日時:
ここにソースコードがあります
これをモディファイすればいいでしょう
同時アクセスの対策をしていないのでそこは直さないといけません
参考URL:http://www.igros.tv/workroom/bbs/workroom4-14.html
No.3
- 回答日時:
いきなり掲示板はむりっぽそうな予感。
自分だけの書き込みができる日記から始めましょう。
私は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 );
}
?>
このような掲示板を作ることはできましたが、画像添付のやり方が分かりません。どこにどのようなコードを付け加えればよいのでしょうか?
No.4
- 回答日時:
無料サーバースペース
http://www.2chu.net/
広告あり
http://www.realint.com/hpspace/
広告あり、レンタル掲示板あり
とまぁ、画像アップがダメと書いてないところ・・・
広告なしは、あんまりないですね。
海外とかなら結構ありますけど・・・
No.5
- 回答日時:
No.6
- 回答日時:
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();
?>
コードミスも見受けられるので参考サイトはこちらのほうがいいでしょう
参考URL:http://www.kagoya.net/php/manual/features.file-u …
No.7
- 回答日時:
次のファイルをクライアント側に
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 );
}
?>
ここまでのプログラムは組みました。
あとは画像のアップロードだけなんですが
アップロードのやり方が分かりません。
No.9
- 回答日時:
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のファイルを任意の名前で保存
これらをアップロードする、でいいんですよね?
クライアント側にアップロードっていうのがよくわからないのですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- YouTube style.css エリアのコードを知りたい 1 2022/10/19 19:11
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- PHP ログイン機の付きの掲示板サイトを作りたいです。 2 2022/10/09 04:33
- MySQL [XAMPP Control Panel v3.2.4] 最新ではないみたいです。何処かに? 2 2022/06/01 14:33
- SQL Server MySQLとPHPが使えるレンタルサーバー 1 2022/09/01 06:21
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP PHP ページング データベース 1 2022/06/16 10:30
- SSL・HTTPS 掲示板サイトへの書き込みができない件(ブラウザソフトを変えてもできない) 2 2022/11/20 10:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像が表示出来ません。
-
foreachがうまく動かない
-
ファイル名を変更してアップロ...
-
PHPで入力フォームでデータを確...
-
XMLをツリー形式で表示
-
PHPからデータベースの該当行を...
-
フォームでのリセットを使う方法
-
PHP ボタンが押されたら処理を...
-
フォーム送信後の更新ボタンで...
-
ラジオボタンをsessionで使いたい
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
-
<input type="hidden" >で配列...
-
ラジオボタンを押すと、表示が...
-
【HTML(PHP?)】複数のフォーム...
-
プルダウンとCSVの連動
-
POSTの値を配列として受け取っ...
-
PHPで、ボタンを押すと同じペー...
-
アマゾンのような評価の星を選...
-
フォームへの前回入力値をクリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複を防ぐ記述について教えて...
-
VBA で、スペースを含むファイ...
-
PHPで入力フォームでデータを確...
-
Flaskでサーバー立ち上げに関して
-
phpで変数を使ってcopyできない
-
ファイル名を変更してアップロ...
-
PHPからHTMLへの変数の受け...
-
$_SESSIONに渡した後はそのまま...
-
テキストボックスの値を取得したい
-
openCVのトラックバーについて
-
scanfでの読み込み文字数制限
-
アップロードファイル名の文字化け
-
PHP MySql 画像を取得
-
Fortranでのファイル名操作につ...
-
ポインタ配列をfscanfで読み込...
-
UPDATEできない
-
WordのIDataObject::GetData呼...
-
C# 同じ処理をまとめたい
-
POSTの項目に追加
-
イタリア人がCatherineと聞いた...
おすすめ情報