プロが教えるわが家の防犯対策術!

POSTで受け渡したものを保存したいです。
携帯サイトを作っています。

例えば、phpで表示させるページには「今日のひと言」というような項目を設け、
別のhtmlファイルで入力フォームを作っておき、そこに入力し送信すると、
その「今日のひと言」のところに反映されるようにしたいと考えています。
POSTで受け取ることまでは出来たのですが、サイトを更新するとまた消えてしまいます。
新たにフォームから入力されるまで、前の「今日のひと言」を残しておくためにはどのようにしたらよいのでしょうか?

phpも初心者なので何卒よろしくお願いいたいます。

A 回答 (2件)

簡単なのはセッションに保持しておいて、入力画面からの遷移以外はセッションの値を出力してしまうことですね。


ブラウザを閉じて、再度同じページを開いた際も、前回の入力した文字列を出力したい場合は、クッキーを使ったり、DBで値を保持しておいて、それを出力するしかないです。

>サイトを更新するとまた消えてしまいます。

の更新というのは、F5キーを押す、ということでよろしいでしょうか?

で、あった場合、
例えば入力フォームのテキストボックスを「txtHitokoto」とした場合、

「今日のひと言」を出力するフォームで

//セッションを開始
session_start();
//テキストボックスの値をポストしていたら
If($_POST["txtHitokoto"]){
 $_SESSION["HITOKOTO"] = $_POST["txtHitokoto"];
}
//ポストした値(セッション)を画面に出力
Echo $_SESSION["HITOKOTO"];

で、F5押下時(ブラウザ更新時)もひと言を出力できます。

ブラウザを閉じて、再度開いた際も、っとなると、オープンサイトであればDBを用いるべきですね。
PHPであればポスグレやMySQLがいいでしょう。

DB操作は別途ご自身で御調べになるか、別でスレを立てて下さいね。
    • good
    • 0

なんとなく、やりたい事はわかったので、簡単に書いてみました。


各関数に関しては 自分で調べて下しあ。
http://jp.php.net/manual/ja/

「POSTで受け取ることまでは出来たのですが、」って事なので、POSTで送信する部分は、はしょります。

PHPからテキストファイルを生成しているので、そのテキストファイルを生成するところの階層のパーミッションを書き込み許可にするのを忘れずに。

<?
//------------------------------------------------
$fn = "hitokoto.txt";// 一言を保存しておくテキストファイル

$hitokoto= $_POST[hitokoto];

if ($hitokoto) {// 一言が送られてきていたら、
file_put_contents($fn , $hitokoto);// 保存ファイルに書き込み
} else {
if (file_exists($fn)) {// ファイルが存在するか確認
$hitokoto = file_get_contents($fn);// 存在してたら 読み込み
} else {
$hitokoto = "我輩は猫である。ファイルはまだない。";// 保存ファイルが存在していない時の言葉
}
}
//------------------------------------------------
print "
<html>
<body>
<center>今日の一言</center>
<hr>
$hitokoto
<hr>
</body>
</html>";
?>
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A