我在index.php中有此功能...
function getCurrentUserID(){
var currentUserID;
if (confirmLogin()){
currentUserID = "<?php echo htmlentities($_SESSION['user_id']); ?>";
} else {
currentUserID=-1;
}
return currentUserID;
}
登录后,它可以很好地工作并返回user_id。第二次我注销(刷新index.php)时,我碰到“ 500-内部服务器错误”,我只能通过从函数中删除php行来解决(如果我什至使用javascripts //注释掉,我仍然会看到500错误)。删除该行后,我可以刷新页面,重新登录,如果我想再次向函数添加php引用!
有谁知道如何永久解决此问题?我不知道为什么php脚本会出现问题,因为它位于“ confirmLogin()”检查中(更不用说有时它被完全注释掉了!)感觉就像我可能把它放错了位置,但是我真的不知道不知道正确的地方是什么!感谢您的任何想法。
最佳答案
PHP代码是在服务器端进行解析的,因此在任何JS出现之前就已经解决了-这就是为什么您的行是否在JS函数内部并不重要。
导致您出现问题的原因是您试图访问不存在的键下的数组元素。在PHP中,这是非法的。最快的解决方法是在回显值之前检查该值是否已设置:<?php isset($_SESSION['user_id']) ? echo $_SESSION['user_id' : echo '-1'; ?>
这样可以解决您的问题,但总的来说,我会尽量避免混合使用这种编程语言。