我正在尝试一个简单的if / else语句,使用Javascript& PHP(带jQuery cookie plugin)。
我的问题:每次触发此脚本时,它都会执行IF和ELSE语句。即使设置了我的cookie,它也会创建一个新的cookie并将其添加到我的数据库中。我是否正确使用这两种语言?
这是它的样子:
<script type="text/javascript">
//check to see if cookie is present
if ($.cookie('uid')) {
var userCookie = $.cookie('uid');
alert(userCookie);
}
else {
//create cookie and check to see if it is taken
<?php
$success = false;
while (!$success) {
$cookie = createUniqueCookie();
$success = checkIfCookieIsTaken($cookie);
}
//store into database and set into browser
if ($result = $mysqli->query("INSERT INTO users (cookie) VALUES ('" . $cookie . "')")) {
?>
$.cookie('uid', '<?php echo $cookie ?>', { expires: 730, path: '/' });
var userCookie = $.cookie('uid');
alert('new cookie for user is '+ userCookie);
<?php
}
?>
}
答案 0 :(得分:3)
看起来你正在尝试同时运行php和javascript。这不是那样的。
所有PHP都在服务器上运行。解析它的每一部分,并将结果代码发送到浏览器。如果那里有任何由浏览器运行的javascript,那么'邪恶'就已经完成了。
您不能只混合客户端和服务器代码:)
答案 1 :(得分:1)
PHP在服务器上执行。 Javascript在客户端(浏览器)上执行。
当向此脚本的Web服务器发出请求时,PHP将忽略<?php
?>
个标记之间的所有内容,并将其余内容发送到浏览器。然后,浏览器将解析/执行生成的文件。
再次逐步完成您的设计,现在考虑到这一点。你会发现,按照你想要的方式混合语言是不可能的。在您的特定情况下,似乎所有这些都应该在服务器端完成。