0

file1.phpの一部:

<a href="file2.php?addid=1">Add this to DB</a>

これにより、ユーザーはデータがデータベースに挿入されるページに移動します。

file2.php:

 $clicked = $_GET['addid'];
 $_SESSION['clicked'] = $clicked;
 // data gets inserted
 header("Location: file1.php?id=$clicked");

しかし、私は複数のページを持っています(たとえば、file1.php?id = 1 | file1.php?id = 2 | file1.php?id = 3など)。セッション変数は複数の数値を処理できますか?これを行う方法はありますか?

助けていただければ幸いです。

(追記:現在、GETメソッドを使用してリンクを無効にしていますが、SESSIONの方が信頼性が高いと思います。)(PPS:投票スクリプトにこれが必要です。)

4

4 に答える 4

1

私はあなたの質問を正しく理解したかどうかはわかりませんが、httpリクエストを介して同じIDのデータの配列を送信する方法である場合は、URLにこの構文を使用できます

file.php?arr[]=val1&arr[]=val2&arr[]=val3

PHPコードから、通常の配列として値にアクセスします

セッション変数は複数の数値を処理できますか?これを行う方法はありますか?

セッション変数は配列を格納できます

于 2011-08-25T10:30:55.963 に答える
1

$_SESSION['clicked'] このセッション変数は、一度に 1 つの値を格納できます。
2次元配列を使用して複数の値を処理する場合。

$clicked = $_GET['addid'];

例: $_SESSION['clicked'][$clicked];

于 2011-08-25T10:33:00.063 に答える
1

1 つのセッション変数により多くのデータを保持するには、に対して複数を保持する多次元配列を作成する必要があります$_SESSION['checked']。これは次のように行うことができます:

$clicked = (int)$_GET['addid'];
$_SESSION['clicked'][$clicked] = true;
// data gets inserted
header("Location: file1.php?id=$clicked");

(また、消毒する必要があります$_GET['addid']

次に、設定されているかどうかを確認するには、次を使用できますarray_key_exists

if(array_key_exists($clicked,$_SESSION['clicked'])){
  echo "this button should be disabled!";
}
于 2011-08-25T10:33:01.763 に答える
1

まず、$var = 1,2,3,4 のようにすべての ID をコンマで文字列に連結し、GET を使用して渡します。

次に、そのページでカンマから展開して配列に格納すると、配列の foreach ループがそれを行います。それがうまくいくことを願っています。

于 2011-08-25T10:33:22.500 に答える