アプリ版:「スタンプのみでお礼する」機能のリリースについて

掲示板をphpで作りたいと思っています。
機能は画像添付、メールアドレスの掲載、ホームページのURLの掲載です。
php初心者なので詳しい説明よろしくお願いします。
m(__)m

A 回答 (12件中1~10件)

こんばんわ。


まずどのような画面にするのか決めましょう。

そしてパラメーターの受渡しを調べてみましょう。
$_POSTや$_GETなど

次にファイルの操作について色々と調べてみましょう。
fopen,fclose,flock,fputs,fgets,fileなど。

ファイルへの書き込みや読み込みが出来るようになったら

foreach関数を調べて、ファイルの中身を表示できるようになりましょう。

それで投稿だけの簡単はものができるはず。

それに機能を追加していく感じで、わからなければまた質問してください。




この質問終わるの時間かかりそうな予感・・・
    • good
    • 0

ここにソースコードがあります


これをモディファイすればいいでしょう
同時アクセスの対策をしていないのでそこは直さないといけません

参考URL:http://www.igros.tv/workroom/bbs/workroom4-14.html
    • good
    • 0

いきなり掲示板はむりっぽそうな予感。


自分だけの書き込みができる日記から始めましょう。
私は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 );
}


?>
このような掲示板を作ることはできましたが、画像添付のやり方が分かりません。どこにどのようなコードを付け加えればよいのでしょうか?

補足日時:2005/02/03 16:04
    • good
    • 0

無料サーバースペース



http://www.2chu.net/
広告あり

http://www.realint.com/hpspace/
広告あり、レンタル掲示板あり

とまぁ、画像アップがダメと書いてないところ・・・

広告なしは、あんまりないですね。
海外とかなら結構ありますけど・・・
    • good
    • 0

画像のアップロード方法はマニュアルに載っています


PHPの場合簡単にアップロードできます

参考URL:http://php.s3.to/man/features.file-upload.html

この回答への補足

リンク先のコードをコピー&ペーストしてみたのですが動きません。何故でしょうか?

補足日時:2005/02/04 11:50
    • good
    • 0

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 …
    • good
    • 0

次のファイルをクライアント側に


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 );
}


?>
ここまでのプログラムは組みました。
あとは画像のアップロードだけなんですが
アップロードのやり方が分かりません。

補足日時:2005/02/04 18:10
    • good
    • 0

PHP4以降ならば


$HTTP_POST_VARS["SUBMIT"]等

$_POST[SUBMIT]等
としたほうがナウいね

提示のコードを実験してみましたか?
それがうまくいけばあとは朝飯前だと思いますが…

この回答への補足

No.7の上のほうのコードを実行したんですが、
画像が添付されません。
私のプログラムのどこにどんなコードを入れればよいのか教えてください。お願いします。

補足日時:2005/02/05 10:01
    • good
    • 0

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のファイルを任意の名前で保存
これらをアップロードする、でいいんですよね?
クライアント側にアップロードっていうのがよくわからないのですが・・・

補足日時:2005/02/05 16:56
    • good
    • 0

gomi.txtは作らなくてもよい


既にあるものをアップすればよい
tst_file.htmlとtst_file.phpをサーバにおいて
tst_file.htmlにクライアントのブラウザからアクセスすればファイル入力フォームが現れるので
そこでどれか容量の小さいファイルを選択してサブミットすれば
選択したファイルがサーバのtst_file.htmlのあるディレクトリにアップされる

この回答への補足

ロリポップの404Error Not Foundがでてくるのですがどこが悪いのでしょうか?

補足日時:2005/02/05 17:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!