[英]php statement causing “500 - Internal server error” when logged out
我在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'; ?>
<?php isset($_SESSION['user_id']) ? echo $_SESSION['user_id' : echo '-1'; ?>
这样可以解决您的问题,但是总的来说,我会尽量避免混合使用这种编程语言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.