※ ChatGPTを利用し、要約された質問です(原文:PHPでのCookie)
PHPでのCookie
このQ&Aのポイント
PHPでクッキーを使い、入力フォームを作成しました。form2.phpで一度更新しないと結果が表示されない問題を解決する方法は?
form.phpで「テスト&1」と書くと「テスト」としか表示されない問題の原因は?
PHPのクッキーを使用した入力フォームにおける問題の解決方法について教えてください。
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;
?>
お礼
回答ありがとうございます。 >$_COOKIEの値(クライアントから送られてきたもの)を書き替えるわけではありません。 これで意味がわかりました。 ネットで情報見ながら、$_SESSIONを併用してやってみようとおもいます。 htmlsepecialchars これもありがとうございます。 こちらは先ほど実行してうまく表示されました。 本当にありがとうございました。