2011-07-31 18 views
0

AJAXを介してURLに変数を送信するにはどうすればよいですか?私はこのような変数を送ってい

xmlhttp.open("GET","insert-karma.php?pid=<? echo $pid; ?>",true); 

AJAXの部分は、私がSriptをチェックすると、PHPが正しく整数をエコーされ、問題ではないようです。 (URLはinsert-karma.php?pid=5と表示されます)。しかし、PHPは変数を取得していません。

// Connect to db; 

$pid = $_POST['pid']; 

$sql="UPDATE Poems SET Karma = Karma + 1 WHERE Pid = '$pid'"; 

// Disconnect form database; 

は私が間違って何をやっている:これは、PHPファイルです

を(私がエコーしようと、それはanthingを示しdoes't)? $pidをPHPのアップデート-karma.phpに送信するにはどうしたらいいですか?

答えて

0

最初にPHPを使用するべきではありません。それは単に複雑なものにするだけで、PHPはサーバ側スクリプトのためのものです。 secound、xmlhttp.open( "POST"、 "insert-karma。 ...)uが、プレーン(だけでなく、重要ではありません)POSTの間と入手だけ重要な違いがあるサードPOST を使用する場合:

GET要求が

GETリクエストがブラウザに留まることができるキャッシュすることができます履歴

GETリクエストはブックマークすることができます

件の

GETリクエストを分散することができ&共有

GETリクエストはそうuは、ログインまたはのような無担保かつ危険な行動のために取得し使用カントlool

ハッキングすることができます...

POSTは、それがつもりキャッシュまたは履歴に保存または

uははっきりブラウザでPOSTのはいけない表示がバーに取り組むが、やる得ることを気づくことができるがブックマークされていないCuzの

投稿もっと確保されているデータ

長すぎるヘンデルことができます 'www.anything.com/index.php?bla=bhe'

私がここで助けてくれることを願っています! :)

2

してみてください$ PID = $ _GET [ 'pidを']

または

$ PID = $ _REQUEST [ 'pidを'];

+0

ありがとう、それはそれをしました。 POSTが動作しないのはなぜですか?ちょっと興味があるんだけど。ありがとう – lisovaccaro

+0

GETメソッドxmlhttp.open(「GET」、「insert-karma ...」を使用して変数を送信しているため – kukipei

2

あなたのphpであなたが

$pid = $_GET["pid"]; 

変数$ _GETを使用する必要がありますので、また、あなたのSQLクエリに直接変数を使用しないよう、GETを使用して変数を送信しています。あなたはSQLインジェクションに脆弱です。

MySQLを使用している場合:

$pid = mysql_real_escape_string($_GET["pid"]); 

かの場合には、あなたが整数を渡している:あなたはすでに答えを持っているので、ここで

$pid = (int)$_GET["pid"]; 
0

だけの提案。あなたのJSコードを書いているときに助けになるようにいくつかのjavascriptライブラリを使ってみてください。 私はお勧めしますjquery

また、GET、POSTリクエストの相違点と使用するタイミングをお読みください。

関連する問題