我只想让注册用户投票。我不想改变我的所有代码。如果用户登录并在隐藏字段中传递,则现在最简单的方法是设置为true。
我如何在这里传递隐藏值?
这是我到目前为止所得到的
$(function() {
$(".vote").click(function()
{
var name = $(this).attr("name");
var id = $(this).attr("id");
var dataString = 'id='+ id ;
var parent = $(this);
if(name=='up')
{
$(this).fadeIn(200).html('<img src="dot.gif" align="absmiddle">');
$.ajax({
type: "POST",
url: "up_vote.php",
data: dataString,
cache: false,
success: function(html)
{
parent.html(html);
} });
}
return false;
});
});
<div class="box1">
<div class="up"><a href="" class="vote" name="up" id="'.$row['id'].'">'.$row['plus'].'</a></div>
</div>
up_vote.php
if($_POST['id'])
{
$id=$_POST['id'];
.
.
.
}
答案 0 :(得分:8)
错误的做法。 Javascript在客户端执行。您永远不会信任客户端,因为客户端由用户控制。使用存储在服务器端的会话。
(什么会阻止用户复制+粘贴页面代码,修改它并执行它?)
答案 1 :(得分:3)
添加隐藏的输入:
<input type="hidden" id="loggedIn" value="whatever" />
设置变量
var id = $(this).attr("id");
var loggedIn = $("#loggedIn").val(); //will be the value of loggedIn
在$ .ajax()
中更改此行data: {loggedIn: loggedIn, id: id}
答案 2 :(得分:0)
只需将隐藏字段附加到dataString
即可dataString += 'foo=bar'