将PHP变量传递给Ajax而不隐藏输入

时间:2012-01-26 17:42:22

标签: php ajax

我有一个表单,用于接收用户消息并将其发送给收件人。在PHP方面,我有三个变量:$senderid$recipientid$messageid。到目前为止,我一直在公司使用隐藏输入,例如

<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?

1 个答案:

答案 0 :(得分:1)

没有简单的方法可以做到这一点。你可以传递为javascript变量,或事件以某种方式散列,例如具有sha功能。但我建议你重新考虑一下自己的做事方式。

例如,如果这与其他用户的消息表单类似,则可以具有以下内容:

  • senderid,我认为这是最新的登录用户,因此您可以从会话中获取此信息。
  • recipientid,您可以将其作为隐藏输入,但在您的控制器(或您正在发送消息的功能)中,您可以检查当前用户是否实际上被允许向收件人发送消息(例如,收件人在朋友列表中。)。

无论如何,永远不要相信从浏览器提交的数据。