2012-01-10 94 views
-2

我不太瞭解JavaScript。我有一個LIKE按鈕。通過AJAX發送整數值

<a href="" onClick="begen(<?php echo $post->ID; ?>); return false;">LIKE</a> 

而且,

function begen(id) 
{ 
    $.ajax({ 
     type:"POST", 
     url:"begen.php", 
     data:"id="+id, 
     cache:false 
    }); 
} 

begen()發送交的id來begen.php作爲POST報頭。

我在begen.php與is_integer()檢查其安全

if(!is_integer($_POST["id"])) 
    die("It's not an integer"); 

當我測試了一下,begen(3)返回 「這不是一個整數」。我不確定它爲什麼是(3)不是整數。


http://forum.jquery.com/topic/ajax-sending-json-data-with-boolean-value#14737000000976384

HTTP is a text protocol with no concept of bools or ints, so everything needs to be stringified. The stringification of false is certainly not 0. 

如果一切是一個字符串,我怎麼能確保ID是一個真正的ID

+2

-1:甚至沒有看的功能,它的權利在一個大的字體記上回答了這個問題的文件。 – 2012-01-10 20:49:52

+0

是的,你在**中說過這個答案** – Eray 2012-01-10 20:52:37

+0

是的,我也在**我的評論**中說過。 – 2012-01-10 20:53:26

回答

2

所有GETPOST參數提供給您的腳本字符串。你在尋找is_numeric


下次在發佈之前閱讀文檔。

  • 的手冊頁is_integer說:

    此功能的一個別名:is_int()

  • 的手冊頁is_int說:

    爲了測試是否一個變量是一個數字或數字串(如形式的輸入,這始終是一個字符串),則必須使用is_numeric()

+0

是的,我正在尋找它。感謝您的快速回答:) – Eray 2012-01-10 20:49:59

+0

對於編輯:我沒有閱讀PHP文檔,因爲我認爲我有JS的問題,而不是PHP – Eray 2012-01-10 20:53:36

+0

應該已經閱讀了_every函數involved_的文檔,作爲非常初始的調試步驟。 – 2012-01-10 20:57:15