2012-01-26 156 views
0

我有一個表單,它接收用戶消息並將其發送給收件人。在PHP方面,我有三個變量:$senderid$recipientid$messageid。到目前爲止,我一直在使用對企業隱藏的輸入,例如將PHP變量傳遞給Ajax,無需隱藏輸入

<input type="hidden" id="senderid" value="<?php echo $senderid; ?>" /> 
<input type="hidden" id="recipientid" value="<?php echo $recipientid; ?>" /> 
<input type="hidden" id="messageid" value="<?php echo $messageid; ?>" /> 
<textarea id="message" name="message" rows="5" cols="10"></textarea> 

我使用VAR SENDERID = $('#senderid').val();等休息將它傳遞給一個Ajax腳本。這工作正常。我不喜歡的東西是隱藏的輸入,即使它被隱藏,也可以改變。有人可以通過Firebug更改$senderid$recipientid$messageid的值。如果有人這樣做,這將完全搞砸我的信息系統。有沒有其他方法可以將變量傳遞給Ajax而不使用隱藏的輸入?

+4

客戶端將始終能夠編輯HTML/JavaScript。你需要實現服務器端驗證。 – spidEY

+0

爲什麼不使用會話變量? – YonoRan

+2

任何來自客戶端的內容,如果不加控制,都可能導致系統崩潰。如果您需要確保發件人是他所說的那個人,那麼該變量應該保留在服務器端,可能在$ _SESSION變量中。 – Andri

回答

1

有沒有簡單的方法來做到這一點。你可以通過是javascript變量,或事件以某種方式散列例如帶有sha函數。但我建議你重新考慮你做事的方式。

例如,如果這是類似消息的形式給其他用戶,你可以有以下幾點:

  • senderid,我想這是當前,登錄的用戶,所以你可以藉此從會議。
  • recipientid,你可以擁有這是作爲隱藏輸入,但在你的控制器(或功能,你要發送的消息),你可以檢查當前用戶實際上是允許發送郵件的收件人(例如,如果收件人是朋友列表)。

是從瀏覽器提交反正從不信任數據。

+0

謝謝你的建議。 – sam