繁体   English   中英

退出时导致“ 500-内部服务器错误”的php语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM