几个php mysql错误

几个php mysql错误,php,mysql,html,Php,Mysql,Html,下面的代码有一个问题,我似乎无法解决。也许还有更多我还没有看到的。出于某种原因,当我使用有效凭据点击submit时,验证无法正常工作。我已经在mysql中直接尝试了生成的sql代码,它可以工作,但是$result总是返回false。此外,“记住我”复选框始终在提交之间选中。如果大家有任何建议,我们将不胜感激 谢谢, 杰森 如果该语句有效,即与&&一起提及。唯一的可能是您的表用户不存在,或者您正在处理未初始化的数据库连接。您需要有一个有效的mysql连接 请参见该声明是否有效,即与&&一起提及的内

下面的代码有一个问题,我似乎无法解决。也许还有更多我还没有看到的。出于某种原因,当我使用有效凭据点击submit时,验证无法正常工作。我已经在mysql中直接尝试了生成的sql代码,它可以工作,但是$result总是返回false。此外,“记住我”复选框始终在提交之间选中。如果大家有任何建议,我们将不胜感激

谢谢, 杰森


如果该语句有效,即与&&一起提及。唯一的可能是您的表用户不存在,或者您正在处理未初始化的数据库连接。您需要有一个有效的mysql连接


请参见

该声明是否有效,即与&&一起提及的内容。唯一的可能是您的表用户不存在,或者您正在处理未初始化的数据库连接。您需要有一个有效的mysql连接

请参见Php读取0==false

因此,您的代码:

$result = 0;
if (!$result) {
    $message = "Attempt to retrieve user credentials from database failed.  Please contact the administrator.";
}
include 'includes/global.php';    
mysql_login();
永远都是真的。就像说:

if(!0){
    echo 'true';
}
Php读取0==false

因此,您的代码:

$result = 0;
if (!$result) {
    $message = "Attempt to retrieve user credentials from database failed.  Please contact the administrator.";
}
include 'includes/global.php';    
mysql_login();
永远都是真的。就像说:

if(!0){
    echo 'true';
}
有几个问题:

你连接到数据库了吗?如我所见,已注释的包括“includes/global.php”;在mysql\u查询之后 您的表名为Users还是Users?在某些情况下,区分大小写很重要 有几个问题:

你连接到数据库了吗?如我所见,已注释的包括“includes/global.php”;在mysql\u查询之后 您的表名为Users还是Users?在某些情况下,区分大小写很重要
解决和调试代码的一个好方法是使用echo mysql\u error;查看上次查询返回的任何MySQL错误消息。由于您的原始帖子中没有提供输出,我认为您的问题在于以下行在代码中的位置不正确:

$result = 0;
if (!$result) {
    $message = "Attempt to retrieve user credentials from database failed.  Please contact the administrator.";
}
include 'includes/global.php';    
mysql_login();
在您尝试使用mysql_query之前,它们应该位于页面代码的顶部。。。;。假设include/global.php包含mysql\u login函数,mysql\u login函数正确地建立了与mysql数据库的连接,并选择了正确的数据库

在PHP中,事情是逐行运行的。因此,您可能会考虑添加include。。。或者在页面开始处登录mysql\u就可以了,您实际上需要在代码开始处添加它们

您应该将代码替换为以下内容:

<?php
   include 'includes/global.php'; 
   $username = (isset($_POST["username"]) ? $_POST["username"]         : (isset($_COOKIE["username"]) ? $_COOKIE["username"] : ""));
   $password = (isset($_POST["password"]) ? md5($_POST["password"])    :  isset($_COOKIE["password"]) ? $_COOKIE["password"] : ""));
   $pwlength = (isset($_POST["pwlength"]) ? strlen($_POST["pwlength"]) : (isset($_COOKIE["password"]) ? $_COOKIE["password"] : 0));
   $remember = (isset($_POST["remember"]) ? 1                            : (isset($_COOKIE["remember"]) ? $_COOKIE["remember"] : 0));

if (isset($username) && isset($password)) {
   mysql_login();
   $result = mysql_query("select companyID from Users where username='$username' && password='$password'");
    if (!$result) {
       ...

注意:@serialworm已经指出,设置$result=0将确保您的代码始终输入if语句,而不是else语句。以上是完成您试图完成的任务的正确方法。

解决和调试代码的一个好方法是使用echo mysql\u error;查看上次查询返回的任何MySQL错误消息。由于您的原始帖子中没有提供输出,我认为您的问题在于以下行在代码中的位置不正确:

$result = 0;
if (!$result) {
    $message = "Attempt to retrieve user credentials from database failed.  Please contact the administrator.";
}
include 'includes/global.php';    
mysql_login();
在您尝试使用mysql_query之前,它们应该位于页面代码的顶部。。。;。假设include/global.php包含mysql\u login函数,mysql\u login函数正确地建立了与mysql数据库的连接,并选择了正确的数据库

在PHP中,事情是逐行运行的。因此,您可能会考虑添加include。。。或者在页面开始处登录mysql\u就可以了,您实际上需要在代码开始处添加它们

您应该将代码替换为以下内容:

<?php
   include 'includes/global.php'; 
   $username = (isset($_POST["username"]) ? $_POST["username"]         : (isset($_COOKIE["username"]) ? $_COOKIE["username"] : ""));
   $password = (isset($_POST["password"]) ? md5($_POST["password"])    :  isset($_COOKIE["password"]) ? $_COOKIE["password"] : ""));
   $pwlength = (isset($_POST["pwlength"]) ? strlen($_POST["pwlength"]) : (isset($_COOKIE["password"]) ? $_COOKIE["password"] : 0));
   $remember = (isset($_POST["remember"]) ? 1                            : (isset($_COOKIE["remember"]) ? $_COOKIE["remember"] : 0));

if (isset($username) && isset($password)) {
   mysql_login();
   $result = mysql_query("select companyID from Users where username='$username' && password='$password'");
    if (!$result) {
       ...

注意:@serialworm已经指出,设置$result=0将确保您的代码始终输入if语句,而不是else语句。以上是完成您想要完成的任务的正确方法。

您是否尝试回显mysql\u错误;要查看可能导致查询失败的原因,是否使用有效的SQL(&)?如果是这样,请不要介意meUse PDO:您的sql查询允许通过用户名和/或密码进行sql注入是危险的。。。在将用户名和密码用于query@jan同样的问题,我启动了我的mysql并尝试了,并且成功了!我还学到了一件事,虽然我不知道这是否只是一个mysql错误,但你有没有尝试回显mysql_错误;要查看可能导致查询失败的原因,是否使用有效的SQL(&)?如果是这样,请不要介意meUse PDO:您的sql查询允许通过用户名和/或密码进行sql注入是危险的。。。在将用户名和密码用于query@jan同样的问题,我启动了我的mysql并尝试了,并且成功了!我还学到了一件事,虽然我不知道这是否只是一个mysql ismRead注释:&&似乎是有效的SQL。或者MySQL AtlastEdited对我来说也是新的,&&是有效的sql。您好,谢谢您的回复。将SQL代码复制并粘贴到mysql CLI中时,将返回所需的信息。mysql连接是在global.php文件中设置的,以便在运行代码时不会导致错误,而mysql\u login是global.php中设置数据库连接的函数。

它在其他脚本中工作得非常好。或者MySQL AtlastEdited对我来说也是新的,&&是有效的sql。您好,谢谢您的回复。将SQL代码复制并粘贴到mysql CLI中时,将返回所需的信息。mysql连接是在global.php文件中设置的,以便在运行代码时不会导致错误,而mysql\u login是global.php中设置数据库连接的函数。它在其他脚本中工作得非常好。他指的是注释掉的sql查询。明白了。我读了太多的代码,甚至没有看到注释掉的东西嗨,谢谢你的回复。如果您签出上一行,它还将$result设置为mysql\u查询的返回值。设置$result=0将提供完全相同的结果,而不会因为没有用户表或sql连接而出现错误。这很有意义。我忽略了这一点。我认为Dirk关于输出mysql_错误的建议是一个很好的尝试。他指的是注释掉的sql查询。明白了。我读了太多的代码,甚至没有看到注释掉的东西嗨,谢谢你的回复。如果您签出上一行,它还将$result设置为mysql\u查询的返回值。设置$result=0将提供完全相同的结果,而不会因为没有用户表或sql连接而出现错误。这很有意义。我忽略了这一点。我认为德克关于输出mysql_错误的建议是一个很好的尝试。我觉得自己像个白痴这是mysql_登录的位置。谢谢我觉得自己像个白痴这是mysql_登录的位置。谢谢是的,这就是问题所在。谢谢不客气,你可以通过投票来表达你的感激之情,接受答案是的,这就是问题所在。谢谢不客气,你可以投赞成票表示感谢并接受答案