0

入力フォームには、ランダムな入力名とIDが必要です

ランダムな値を作成しました$token_hash= random

次に、フィールドを入力します

 <input type="hidden" name="' .$token_hash .'" id="' .$token_hash .'" value="some_value">

次の入力フォームは、フォームから取得する値を確認するためのphpコードです。

 echo $_POST[$token_hash] .' $_POST[$token_hash]<br>';

問題は、$_POST[$token_hash]エコーブランク値(値なし)です。..

私も試し$_POST[' .$token_hash .']ましたが、動作しません。

他の$_POST作品ですが、$_POST['some_value']


ようやく解決策が得られたようです。以前は機能しなかった理由がわかりません。他の誰かに役立つ場合。これが解決策です。

ランダムな値を作成します$token_hash= sha1(uniqid($time_when_form_submitted。'token'。$_ SERVER ["REMOTE_ADDR"]));

次に、セッション$ _SESSION ['token_hash'] =$token_hash;を作成します。

次に、セッションを入力に渡します

echo '<input type="hidden" name="' .$_SESSION['token_hash'] .'" id="' .$_SESSION['token_hash'] .'" value="' .$_SESSION['token'] .'">'

次に、入力からセッション値を取得します。このコードは、何よりも前の $ token_hash_from_input = $_SESSION['token_hash'];である必要があります。

次に、$ _ POST [$ token_hash_from_input])を使用して入力値を取得します

4

5 に答える 5

2

入力の名前を「token_hash」にし、値をランダム値にする必要があります。

<input name="token_hash" value="<?php echo $token_hash; %>" type="hidden" />

これで、フォーム送信時にトークン ハッシュにアクセスできます。

$token_hash = $_POST['token_hash'];
于 2013-02-28T07:28:24.393 に答える
1

リクエスト間で値を永続化するには、セッションのようなものが必要になります。

session_start();
$_SESSION['token_hash'] = $token_hash;

次のページで取得します

session_start();
$token_hash = $_SESSION['token_hash'];
于 2013-02-28T07:30:50.130 に答える
1

@質問者がランダムな投稿フィールド名と値を持ちたいと思っていると思います


$token_hashの値はリクエストごとに変わることに注意してください。その値をセッションまたはデータベースに保存しない限り、永続性はありません。あなたが何をしようとしているのかわからないので、アドバイスをするのは難しいです。

ただし、次のコード例は、ランダム$_POSTインデックスにアクセスする方法を示している場合があります。

<input type="hidden" name="token_<?php echo uniqid();?>" value="<?php uniqid()?>" />

次に、foreach を使用して値を取得します。

foreach($_POST as $key => $value) {
    if(strpos($key, 'token_') !== FALSE) {
        echo 'the token is ' . $value;
    }
}
于 2013-02-28T07:32:38.570 に答える
0

ランダムな値を生成しているため、$ _ POST[$token_hash]が機能することは期待できません。

フォームをPOSTすると、PHPはランダムに$token_hash値を再度生成します。したがって、ランダムに生成された値を「value」属性に入れる必要があります。

     <input name="token_hash" value="<?php echo $token_hash; ?>" type="hidden" />

フォームを投稿するときに$_POST['token_hash']で取得できます。

于 2013-02-28T07:30:27.177 に答える
0

このようにする必要があります。

$_POST["token_hash"]

それtoken_hashが本当に投稿されている場合は、1 つを取得します。

于 2013-02-28T07:24:30.107 に答える