PHP页面上的500错误

PHP页面上的500错误,php,mysql,Php,Mysql,可能重复: 我正在创建一个允许用户登录网站的页面。我一直有500个错误。下面是给我一个错误的代码: <?php if(isset($_POST['submit'])) { $username = $_POST['username']; $password = $_POST['password']; include( 'connection.php' ); if(empty($username) || empty($password)) {

可能重复:

我正在创建一个允许用户登录网站的页面。我一直有500个错误。下面是给我一个错误的代码:

<?php

if(isset($_POST['submit']))
{
    $username = $_POST['username'];
    $password = $_POST['password'];

    include( 'connection.php' );

    if(empty($username) || empty($password))
    {
        $error = 'Please enter your username and password'
    }
    else
    {
        $password = md5($password);
        $sql = mysql_query("SELECT * FROM users WHERE username = $username AND password = $password LIMIT 1") or die(mysql_error)();
        $num_rows = mysql_num_rows($sql);

        if($num_rows == 1)
        {
            $fetch = mysql_fetch_array($sql);
            extract ($fetch);
            echo $username;
        }
        else
        {
            echo 'There was an error while logging in'
        }
    }
?>

ifset()
不是函数。在开发过程中,您正在寻找
isset()

,您可以在php.ini中设置:

  • 错误报告=E|u全部| E|u严格
  • 显示错误=On
  • 显示\u启动\u错误=打开
在大多数情况下,您将看到错误描述,而不是空白页

如果您仍然得到空白页,则:

  • 日志错误=On
  • error\u log=php\u errors.log
php_errors.log可能会有一些描述


IHMO最好的办法是使用。

您的代码容易受到SQL注入的攻击。您真的应该使用,将变量作为参数传递到其中,而这些参数不会对SQL进行计算。如果您不知道我在说什么,或者如何修复它,请阅读的故事。另外,正如PHP手册中关于函数的说明:不鼓励使用此扩展。相反,应该使用or扩展名。有关更多信息,请参见指南和。我已经在代码中看到了几个潜在错误:1。php中没有“ifset”函数,所以它应该是“isset”。2.在sql查询中,变量$username和$password应该用引号括起来,因为它们是字符串值。e、 g.mysql_查询(“从用户名=“$username”和密码=“$password”限制1”的用户中选择*)。所以我认为你应该消除那些基本的错误,然后试着找出是否有其他原因导致了这500个错误。@tereško我不是垃圾邮件,我是初学者。在你指责我滥发垃圾邮件之前,请先了解两者的区别。@Radu:也许你应该把这个问题告诉OP:)我不需要知道..修复了,但它似乎仍然不起作用。
或者死(mysql\u error)()
也应该是
或die(mysql_error())
,但正如其他人所提到的,使用
mysql\u error
不是一个好主意。我删除了
mysql\u error
,但仍然没有运气。为了澄清,这行代码现在看起来如何?
$sql = mysql_query("SELECT * FROM users WHERE username = $username AND password = $password LIMIT 1") or die(mysql_error());