PHPでクッキーを使い、下記のような入力フォームを作りました。
form.phpで入力→form2.phpで正常出力出来るのですが、
form2.phpで一度更新しないと、結果が画面に表示されません。
これをform2.phpを開いた時点で表示されるようにするには、どのように書けばいいのでしょう。
後1つあります。form.phpで
「テスト&1」と書くと「テスト」としか表示されなく、&とそれ以降が記憶されません。
これはなぜでしょうか?
お願いします。
【form.php】
<?PHP
parse_str($_COOKIE["city"]);
parse_str($_COOKIE["city_name"]);
?>
<html>
<form method="post" action="form2.php">
<?PHP
echo "名前1<input type=text name=name1 maxlength=16 size=12 value=$set_name1>
<BR>ID<input type=text name=p1 maxlength=8 size=6 value=$set1><BR><BR>";
echo "名前2<input type=text name=name2 maxlength=16 size=12 value=$set_name2>
<BR>ID<input type=text name=p2 maxlength=8 size=6 value=$set2>";
?>
<input type="submit" value="実行">
</form>
</html>
【form2.php】
<?php
if ($_POST) {
$city1 = $_POST["p1"];
$city2 = $_POST["p2"];
$city_name1 = $_POST["name1"];
$city_name2 = $_POST["name2"];
setcookie ("city", "set1=$city1&set2=$city2",time()+3600*24*90);
setcookie ("city_name", "set_name1=$city_name1&set_name2=$city_name2",time()+3600*24*90);
}
parse_str($_COOKIE["city"]);
parse_str($_COOKIE["city_name"]);
echo $set_name1;
echo $set1;
echo $set_name2;
echo $set2;
?>
No.1ベストアンサー
- 回答日時:
setcookieはクライアントにCookieを保存させる(ようにhttpレスポンスを送る)だけで、$_COOKIEの値(クライアントから送られてきたもの)を書き替えるわけではありません。
自分で$_COOKIEも書き替えるか、($_COOKIEでなく)$_SESSIONを使うとかの工夫が必要です。>「テスト&1」と書くと「テスト」としか表示されなく、&とそれ以降が記憶されません。
表示するときにhtmlspecialcharsしていないからです。クライアントから受け取ったデータを表示するときには必ずhtmlsepecialchars(第二引数はENT_QUOTESを指定)を使ってください。
http://php.net/manual/ja/function.htmlspecialcha …
回答ありがとうございます。
>$_COOKIEの値(クライアントから送られてきたもの)を書き替えるわけではありません。
これで意味がわかりました。
ネットで情報見ながら、$_SESSIONを併用してやってみようとおもいます。
htmlsepecialchars
これもありがとうございます。
こちらは先ほど実行してうまく表示されました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
-
phpやmysqlで作る簡易掲示板作...
-
画面が更新されてもチェックボ...
-
smartyでチェックボックスをチ...
-
phpでの複数選択チェックボック...
-
$_SESSIONについて教えて下さい。
-
集計結果をiframeの中に表示す...
-
PHPのソース内でのVodafone絵文...
-
PHPで画像の渡しが上手く行きま...
-
複数チェックボックスの入力制...
-
配列をhiddenで
-
syntax error, unexpected '}' ...
-
チェックボックスを使った複数...
-
リンクボタンについて(初心者で...
-
フォームのテキストボックスに...
-
$_POSTのインデックスについて...
-
<input type="hidden" >で配列...
-
テキストボックスに初期値を入れる
-
ラジオボタンを押すと、表示が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
フォームへの前回入力値をクリ...
-
検索時の選択内容を保持する方法
-
PHPで画像の渡しが上手く行きま...
-
フォームボタンを押すたびに数...
-
syntax error, unexpected '}' ...
-
フォームでのリセットを使う方法
-
パラメーターを隠す
-
$_SESSIONについて教えて下さい。
-
ラジオボタンをsessionで使いたい
-
画面が更新されてもチェックボ...
-
phpの掲示板で新しい順に表...
-
PHPで、ボタンを押すと同じペー...
-
phpでの複数選択チェックボック...
-
PHPでじゃんけん勝負
-
チェックボックスを使った複数...
-
DBの値をチェックボックスに反...
-
PHPのmysqlに格納したデータの...
おすすめ情報