【问题标题】:php code causing page to not loadphp代码导致页面无法加载
【发布时间】:2012-06-15 11:57:31
【问题描述】:

我正在尝试将我的网站的简单登录与 php 集成。我在这里找到了一个脚本http://www.phpfreecode.com/php-Login-system.htm 一切都设置好了,但是这个 php 代码导致页面根本无法加载

<?php
 if (isset($_COOKIE['user'])) {
 echo "You are logged in: $_COOKIE['user'] Enjoy.";
 } else{ 
 echo "You are not logged in. <a href='register.php'>Register here</a>";
 ?>

我收到服务器错误“该网站在检索(我的网站)时遇到错误它可能因维护而关闭或配置不正确”我在我的服务器上配置了 php,我知道这是因为我有其他 php 文件可以使用网站。我究竟做错了什么?如果有人知道更好的登录系统,我也愿意征求意见。谢谢。

【问题讨论】:

  • 这段代码没问题,应该是别的吧
  • 查看服务器的错误日志,看看真正的问题是什么。
  • 那个代码容易被sql注入,不要使用
  • @MarcB 如何检查我是否正在使用 apache2 运行 ubuntu 服务器
  • 查看 httpd.conf 的内容并查看错误日志的存储位置,然后挖掘这些文件。

标签: php html login


【解决方案1】:

您提供的这段代码的错误是 $_COOKIE 数组没有被大括号分隔或从字符串中断开。

<?php
if (isset($_COOKIE['user'])) {
    echo "You are logged in: {$_COOKIE['user']} Enjoy.";
} else{
    echo "You are not logged in. <a href='register.php'>Register here</a>";
}
?>

或者更好:

<?php
if (isset($_COOKIE['user'])) {
    echo "You are logged in: ".htmlentities($_COOKIE['user'])." Enjoy.";
} else{
    echo "You are not logged in. <a href='register.php'>Register here</a>";
}
?>

此外,该脚本容易受到 sql 注入用户名:whatever' OR 'X'='X & 正在使用即将被弃用的 mysql_* 函数。

【讨论】:

  • 您忘记了.htmlentites 中的"i" - 应该是.htmlentities。尝试了edit,但给了我一个最少字符的错误。如果他想复制/粘贴你的代码,他会得到一个错误。
  • 成功了,谢谢你,太糟糕了,现在我担心事情的安全问题。我想我必须做更多的研究才能找到更安全的登录方式
  • 实际脚本可以修复,只需更改用于 mysqli_* 的 PDO 的 sql 函数并使用准备好的查询。
猜你喜欢
  • 1970-01-01
  • 2012-06-17
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 2023-01-08
相关资源
最近更新 更多