2008/7/1 久米
最も基本的な情報だけのデータベースを作ります。
INSERT文のところで、MySQL関数のnow()関数を使用する
INSERT INTO bbs (name, message, regidate)
VALUES ('$name', '$message', now())
MySQLのLIMIT句を使用する
SELECT * FROM bbs LIMIT 0, 30
LIMITの1番目の数字は、読み取る最初の行番号(0が最新の行番号)
2番目の数字は、読み取る件数
自分自身を読み出す方法を使用する
if(isset($_POST['sub'])){
//ここに投稿処理を入れればよい
}フォームタグは、次のようにしておくと、ファイル名を変えても使えるので便利
<form name="f" method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">
1枚で投稿と表示を兼ねる場合、再読み込みで二重投稿されてしまう。
これを避けるには、phpのheader関数を使用する投稿処理が終了したところでheader関数で、わざわざ自分自身のページへ飛ばせばよい。
投稿処理がなく読み取り処理だけが実行されるので、それを再読み込みしても二重投稿にならない。if($rst) {
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit();
}else {
exit("保守中です。しばらくしてから投稿ください。");
}
コラム header関数でリダイレクト♪
|
コラム 内部エラーの非表示インターネットに公開する段階では、内部的なエラーメッセージは表示しないようにしましょう。 例 下記のような内部エラーの表示はセキュリティホールになりうる可能性もあります。 このようなエラーを表示させないようにするには、下記の1行をスクリプトの最初に書いておけばいいです。
なお、error_reporting(E_ALL); は全てのエラーを表示させる意味で、デフォルトではこの設定になっています。
|