さらに別の作りの考えはので、私はこの方法を使用してきた...要求し、さらに別のPHPファイルは私に迷惑です取得:html入力タグの値にphp変数を渡すのは悪い習慣ですか?
<input class='hidden' id='dataIwant' value=' <?php echo $_SESSION["bigObjectArray"] ?>" />
は、この悪い習慣ですか?どう思いますか?
さらに別の作りの考えはので、私はこの方法を使用してきた...要求し、さらに別のPHPファイルは私に迷惑です取得:html入力タグの値にphp変数を渡すのは悪い習慣ですか?
<input class='hidden' id='dataIwant' value=' <?php echo $_SESSION["bigObjectArray"] ?>" />
は、この悪い習慣ですか?どう思いますか?
私は、この例では、自分自身のために話すと思う:
<?php
session_start();
$_SESSION['bigObjectArray'] = "\" /><script>alert('Hi!')</script><input type=\"hidden";
?>
<input class="hidden" id="dataIwant" value="<?php echo $_SESSION["bigObjectArray"] ?>" />
出力:
<input class="hidden" id="dataIwant" value="" /><script>alert('Hi!')</script><input type="hidden" />
あなたが響いているデータを検証し、フィルタリングすることを確認します。 は、常にです。
エスケープしないと(htmlentities
またはhtmlspecialchars
)、それは悪いことです。
ユーザーがこのフィールドを変更する必要がない場合、悪い習慣です。
SESSION
が保存されているため、マルチタブブラウジングの悪い習慣です(並行ページの書き込み/読み取りに失敗します)。
値をhtmlでエスケープした場合、ユーザーがそのフィールドを変更できる場合(治療ページで確認した場合)、その値をSESSION
に保存しないようにするとよいでしょう。
IMHOでは、セッション変数がクライアント側で表示される危険性があります。ユーザーがすでに知っている索引、文字列などの一部のみがユーザーに表示されます。セッション変数にユーザーパスワード、セッショントークンなどが含まれている場合は、非表示にする必要があります。
ご質問について、このデータを使用する場所が変わると変更されます。フォーム内で別のPHPページに渡すためだけのものであれば、これを行う必要はありません。これはフォーム処理ページで引き続き利用できます。
クライアント側のjavascriptコード内で使用する場合は、json_encodeしてjavascript変数に割り当てることができます。
<script type="text/javascript">
var myBigJSON = <?php echo json_encode($_SESSION["bigObjectArray"]);?>;
var myBigArray = $.parseJSON(myBigJSON);
</script>
2つのことを忘れないでください:1:値はできるが、「 '含ま'とHTMLを破る、2:フォーム – mmm
で送信されるようにする前に、この隠しフィールドの値は、ユーザーによって変更することができるが配列 '$ _SESSION [" bigObjectArray "]'? – AHJeebon