2011-01-15 6 views
1

検索したものを(POST経由で)取得し、それをテーブルに挿入する検索ページがあります。私はそれが私に問い合わせをメールしていたので、私は何が起こっていたか見ることができる:変数を取得最も奇妙なPHP/MySQLのバグ

マイPHP:

$searched = mysql_real_escape_string($_POST['searched']); 

に(私に電子メールで送信)、それを使用するクエリを:

INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES (435, 0, 0, 0, 0, 0, 1, 1, 0, " 
ここで

クエリを組み立てるのコードは次のとおりです。

$query = "INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES ($userID, 0, 0, 0, 0, 0, 1, 1, 0, \"$searched\")"; 

ページはIEから実行するたびに、これはレコードを挿入DBは正常です。クエリが完全に同じであっても、他のブラウザは "question8"の部分を削除します(レコードを挿入します)。私はphpMyAdminでクエリをカット&ペーストすることができ、うまく動作します。

なぜこれはIEでのみ機能しますか?他のブラウザには私が見ることのできない特殊文字が挿入されていますか?道に迷いました!

+0

クエリをアセンブルするコードを確認できますか? – dqhendricks

+0

ブラウザはすべてのサーバー側であるので、($ _POST変数に関係しない限り)ブラウザとは関係ありません。PHPファイルに表示されるコードを投稿できますか? –

+1

'$ _POST'の内容をダンプし、内容を確認します。あなたもあなたのクエリをエスケープすることを確認してください。 – BoltClock

答えて

1

PHP設定で「Magic Quotes」がオフになっていることを確認してください。それを無効にする方法はhereと説明されています。

(正確に同じ回答をコピー/貼り付けhereから)。

0

おそらく、検索ページで使用されているHTMLまたはjavascriptで、何か間違っているかブラウザ固有のものでしょうか。

0

この機能が動作するかどうかお知らせください($db_conはMySQL接続リソースを参照してください)。

$searched = mysql_real_escape_string($_POST['searched'], $db_con); 

$query = "INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES ('".$userID."', 0, 0, 0, 0, 0, 1, 1, 0, '".$searched."')"; 
+0

ここには運がありません:( – Michael

+1

あなたの投稿を編集して、関連するコードをすべて含めてください。$ userIDの宣言を含めてください。ありがとう:) –