php / mysql帮助不需要输出任何错误

时间:2010-10-20 15:40:18

标签: php mysql

可以帮助我使用我的代码,一切看起来都正确检查每行至少10次。我甚至在用户/传递中硬编码查询,但仍然没有。

<?php
include "database.php";

$sql = "SELECT UserName, Password, Language, Editor FROM admin_login WHERE UserName='".$_POST['username']."' AND Password='".$_POST['pwd']."'";

$result = @mysql_query($sql);
$line = @mysql_fetch_assoc($result);

    if (mysql_num_rows($result) == 0) {
#unsuccessful login
    header('Location: index.php' ); 
    } else {

#login successful, setting up session
    ob_clean();
session_start();
        $_SESSION['user'] = $line['UserName'];
        $_SESSION['pass'] = $line['Password'];
        $_SESSION['lang'] = $line['Language'];
        $_SESSION['editor'] = $line['Editor'];

#send to editor page        
            if ($_SESSION['lang'] == 'List') {
                header('Location: list.php');
                exit;

#send to announcer page   
            } else if ($_SESSION['lang'] == 'Order') {
                header('Location: order.php');
                exit;
            }
}
?>

5 个答案:

答案 0 :(得分:3)

从函数mysql_query和mysql_fetch_assoc中删除@,您将显示错误。

答案 1 :(得分:1)

要遵循的一些步骤:

  1. 添加MySQL错误报告,例如(到SQL语句的末尾):

    或死(“查询失败:”。mysql_error()。“实际查询:”。$查询)

  2. 删除@符号 - 这些会抑制错误。

  3. 使用您喜欢的SQL工具(phpMyAdmin,Navicat,命令行等)在命令行上运行查询以查看是否会导致错误

答案 2 :(得分:1)

这是我的版本:

<?php

include 'database.php';

$sql = "SELECT `UserName`, `Password`, `Language`, `Editor` FROM `admin_login` WHERE `UserName` = '" . mysql_real_escape_string($_POST['username']) . "' AND `Password` = '" . mysql_real_escape_string($_POST['pwd']) . "' LIMIT 1;";

$result = mysql_query($sql);

if ($result === false)
{
    // Unsuccessful Login
    header('Location: index.php');
}

$user = mysql_fetch_assoc($result);

$_SESSION['user'] = $user;

if ($user['Language'] == 'List')
{
    header('Location: list.php');
    exit;
}
elseif ($user['Language'] == 'Order')
{
    header('Location: order.php');
    exit;
}

?>

如果仍然显示一些错误,请在此处复制/粘贴它们,如果没有显示错误且代码仍然无效,请向我们展示您的数据库方案和database.php文件。

答案 3 :(得分:1)

如前所述,从函数中删除所有@前缀。这可以消除所有错误。

此外,将以下两行添加到脚本的开头:

error_reporting(E_ALL);
ini_set('display_errors','1');

答案 4 :(得分:0)

您的PHP错误报告可能已设置为关闭。请将其打开或以ini_set('display_errors','1');放在您遇到此问题的php页面顶部。