締切済み

Cookieとhtmlspecialchars

  • 困ってます
  • 質問No.7335702
  • 閲覧数115
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 77% (14/18)

前回setcookieについて質問したのですが、どうしても出来ないのでまた質問させてください。

前回の質問↓↓
http://okwave.jp/qa/q7319771.html

htmlspecialcharsを使い、form2.phpで「&」の表示は出来ましたが、form.phpではどのようにやっても出来ませんでした。
記憶されたCookieの値にhtmlspecialcharsを適用するにはどのようにすれば良いのでしょうか。
setcookie(htmlspecialchars("city", "・・・ にしてもダメでした。


また、前回教えてもらった「自分で$_COOKIEも書き替えるか、($_COOKIEでなく)$_SESSIONを使うとかの工夫が必要です。」の方は全然手付かず状態です。
出来ましたらこちらも含め、簡単でよろしいですのでソースでお願いしたいです。

お願いします。

回答 (全1件)

  • 回答No.1

ベストアンサー率 54% (864/1588)

>記憶されたCookieの値にhtmlspecialcharsを適用する

Cookieに記録するときにはhtmlspecialcharsは要りません。その値を「表示する(ブラウザにhtmlソース内の文字列として返す)」ときにhtmlspecialcharsしてください。

#マニュアルにもそう書かれているハズです

http://php.net/manual/ja/function.htmlspecialchars.php

それ以外の場所でhtmlspecialcharsを使ってはいけません。厳密に「ダメ」ということではありませんが、間違いの元です(複数回実行してはいけないので)。



>自分で$_COOKIEも書き替えるか、($_COOKIEでなく)$_SESSIONを使うとかの
>工夫が必要です。」の方は全然手付かず状態です。

session_startしておいて、SESSION変数を使うだけでいいのですが・・・

http://www.php.net/manual/ja/session.examples.basic.php
補足コメント
haine_0424

お礼率 77% (14/18)

回答有難う御座います。

form2ですが、このように書きましたが表示されません。
(前回表示されたと言ったのは、POSTから直接表示させた場合でした)
お願いします。

【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 htmlspecialchars($set_name1);
echo htmlspecialchars($set1);

echo htmlspecialchars($set_name2);
echo htmlspecialchars($set2);
?>
投稿日時 - 2012-03-01 17:03:04
感謝経済
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数によるOK-チップ配布スタート!

ピックアップ

ページ先頭へ