【问题标题】:PHP Post and Conditionals ErrorPHP Post 和条件错误
【发布时间】:2012-11-06 03:32:34
【问题描述】:

好的,我的网站有一个链接,您可以在其中搜索用户并转到他们的个人资料。您输入一个用户名,然后在下一页上,它会告诉您该用户名是否存在,并为您提供一个链接。我认为我已经正确编码了所有内容,但显然不是。

会发生以下情况:(我的网站会显示两个页面,一个如果您已登录,一个如果您未登录)。如果您已登录并且输入了真实的用户名,那么它将正确显示我想要的文本和链接。但是,如果您在登录时输入假用户名,它只会显示默认文本,而不是我必须在此页面上使用的文本。

当您未登录时,无论您输入什么,它都只显示默认文本。

有人可以帮我看看这段代码吗?

显示文本的默认文本:

$displaytext = "Error";

$srstrSQL = "SELECT * FROM Users_For_CoinAwards WHERE Username = '$usersearched'";

$rs3 = mysql_query($srstrSQL, $connection);

while($row3 = mysql_fetch_array($rs3)){

if ($row3['Username'] == $usersearched)

{

$displaytext = "The user " . $row3["Username"] . " has been found. Please click on the below link to visit their profile.";

$displaylink = "<a href='http://www.coinawards.net63.net/user/" . $row3['Username'] . ".php' id='displaylink'>" . $row3['Username'] . "</a>";

}

else

{

$displaytext = "Sorry, the user " . $row3["Username"] . " was not found. Please check your query and try again.";

}

}

$row3 = mysql_fetch_array($rs3); print_r($row3);

好的,这里是显示文本的部分:

' . $显示文本。 '

我再次检查以确保无论您是否登录,上面的代码都是相同的,但是结果仍然不同。

编辑:

你可以在http://www.coinawards.net63.net/看到他发生的事情

只需点击黄色的“用户搜索”按钮,然后输入奇怪的随机字符组合。

它会带你到带有以下代码的新页面。

【问题讨论】:

    标签: php mysql database post conditional


    【解决方案1】:
    else if ($row3['Username'] !== $usersearched)
    

    应该是

    else if ($row3['Username'] != $usersearched)
    

    【讨论】:

    • 我修好了,还是没用。
    【解决方案2】:

    首先 STOP 使用 mysql_* 已不再维护,建议您不再在新项目中使用它,请查看 pdo 或 mysqli,如下所示 http://php.net/manual/en/function.mysql-query.php

    我可以看到的问题是您没有检查您的查询是否返回任何结果,这就是您的条件只返回一个结果的原因。

    【讨论】:

    【解决方案3】:

    由于这是一个二元条件(即用户存在或存在,因此根本不需要else if ($row3['Username'] != $usersearched)。将其替换为else

    while($row3 = mysql_fetch_array($rs3)){
    
        if ($row3['Username'] == $usersearched){
    
            ... Your code here ...
    
    
        }else{
    
            $displaytext = "Sorry, the user " . $usersearched . " was not found. Please check your query and try again.";
    
        }
    
    }
    

    【讨论】:

    • 你能用你正在使用的完整代码更新你的问题吗?
    【解决方案4】:

    好的,试试这个。请尝试使用双引号或单引号 $row[],您将两者混合在一起。

    $srstrSQL = "SELECT * FROM Users_For_CoinAwards WHERE Username = '$usersearched' ";
    
    $rs3 = mysql_query($srstrSQL, $connection);
    
    while($row3 = mysql_fetch_array($rs3)){
    
     $displaytext = "Error";
    
    if (mysql_num_rows($rs3) == 1)
    
    {
    
    echo $displaytext ."The user " . $row3["Username"] . " has been found. Please click on the below link to visit their profile.";
    
    echo $displaylink ."<a href='http://www.coinawards.net63.net/user/" . $row3['Username'] . ".php' id='displaylink'>" . $row3['Username'] . "</a>";
    
    }
    
    else
    
    {
    
    echo $displaytext."Sorry, the user " . $row3["Username"] . " was not found. Please check your query and try again.";
    
    }
    
    }
    
    $row3 = mysql_fetch_array($rs3); print_r($row3);
    

    【讨论】:

    • 这应该可以,但它没有,我不知道为什么,这真的很烦人。
    • 这会告诉你mysql是否有问题$rs3 = mysql_query($srstrSQL, $connection) or die(mysql_error());
    • 它只是和上次一样......它只有在你登录并输入真实用户时才有效
    • 我认为这些语句没有错误,因为我有其他查询使用相同的连接并且它们有效。
    • 好的,我已经修改过了,现在试试复制粘贴。现在肯定会更好。
    猜你喜欢
    • 2011-04-10
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2016-01-21
    • 1970-01-01
    相关资源
    最近更新 更多