-1

$.postjQuery関数を介して呼び出される外部phpスクリプト(do.phpなど)を使用するphp(index.phpなど)でページを作成しています。

スクリプトの動作を決定する doit というポスト変数を渡しています。たとえば、doit が 1 の場合、一意の ID がユーザーに割り当てられ、setcookie() 関数を使用して uid という Cookie に保存されます。doit が 2 の場合、msg という別のポスト データを t+uid という名前で作成するテーブルに入力します。例えば。uid が 14 の場合、t14 というテーブルが作成され、そこに msg が配置されます。

次のコード行を使用して Cookie を設定します。

setcookie("uid", $val, time()+3600, '/');

そして、テーブルを作成する次のコード行:

$q = "create table t".$_COOKIE["uid"]." (sl int primary key auto_increment, msg varchar(1000), seen int);";
mysql_query($q);

今私の問題は次のとおりです。SQLクエリは正しく実行されますが、Cookie変数から値を取得できません。作成されたテーブルは単に t という名前です。

私の質問は次のとおりです。私は何を間違っていますか? 値を正しく取得するにはどうすればよいですか?

PS: 自分のページで設定された Cookie を確認すると、そこに Cookie が表示されます。Cookie をクリアして再試行しようとしましたが、毎回、Cookie は正しく設定されていますが、テーブルは設定されていません。

別の問題もあります。SQLクエリは、ページを更新した後にのみ実行されます。たとえば、現在のユーザーの uid とその他の情報を格納する uu という別のテーブルがあります。そのテーブルの最後の行には、現在の uid ではなく、以前の uid が含まれています。今回 uid が 10 の場合、ページを更新して uid を 11 として取得すると、uid = 10 の情報がテーブル uu で更新されます。

どんな助けでも大歓迎です:-)ありがとう。

4

1 に答える 1

0

PHP の setcookie 関数は、応答ヘッダーで Cookie を送信します。index.php からの応答を受け取る前に AJAX 呼び出しを実行すると、要求で Cookie を取得できない可能性があります。

$.post リクエストをボタン/リンクのクリックに入れてみて、リクエストで Cookie を取得しているかどうかを確認できますか。可能であれば、完全なコード (PHP および JavaScript) を提供してください

于 2013-03-25T14:29:11.867 に答える