【问题标题】:The mysql errors aren't displaying correctlymysql 错误显示不正确
【发布时间】:2014-12-06 07:55:43
【问题描述】:

我正在按照本教程创建我正在处理的注册数据库。我一直在反复看视频,然后看着 cmets 试图找到解决我的问题的方法。

我遇到的问题是我的设置没有正确显示我的数据库。我有一个用户名为“lowheartrate”的用户名,但是当我将其放在用户名字段中并尝试使用它登录时,它告诉我我的其他错误之一,
“我们找不到那个用户名。你注册了吗?”

很高兴这有效,但我也需要其他人也可以工作。特别是那些不工作的是以下错误:

   The 'user_active' error.  

   The 'user_exists' error.

这是与我遇到的问题相关的代码:

我的 login.php 显示代码错误:

users.php 代码将它们连接在一起并告诉要做什么:

general.php:

init.php:

更好地查看 users.php:

<?php
function user_exists($username) {
    $username = sanitize ($username);
    return  (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'"),0) == 1) ? true : false;
    }

function user_active($username) {
    $username = sanitize ($username);
    return  (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `active` = 1"), 0) == 1) ? true : false;
    }
?>

更好地查看 login.php:

<?php
include ('core/init.php');

if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (empty($username) == true || empty($password) == true) {
        $errors[] = 'You need to enter a username and password.';
    } else if (user_exists($username) == false) {
        $errors[] = 'We can\'t find that username. Have you registered?';
    } else if (user_active($username) == false) {
        $errors[] = 'You haven\'t activated your account.';
    } else {
        // here
    }

    print_r($errors);
}
?>

更好地了解 init.php:

<?php
session_start();
error_reporting(0);

require 'database/connect.php';
require 'functions/general.php';
require 'functions/users.php';

$errors = array();
?>

更好地了解general.php:

<?php
function sanitize($data) {
    return mysql_real_escape_string($data);
}
?>

更好地了解 connect.php:

<?php
$connect_error = 'Sorry we\'re experiencing connection issues.';
$con = mysqli_connect('localhost','root','');
mysqli_select_db($con,'lr') or die($connect_error);
?>

查看表单(login.php 小部件):

<div class="widget">    
    <h2>Returning Member?</h2>
    <div class="inner">

        <form action="login.php" method="post">
            <ul id="login">
                <li>
                    <input type="text" name="username" placeholder="Username" autofocus  >
                </li>

                <li>
                    <input type="password" name="password" placeholder="Password"  >
                </li>

                <li>
                    <input type="submit" value="Log in" >
                </li>

                <li>
                    <a href="register.php">Create an Account</a>
                </li>
            </ul>
        </form>

    </div>
</div>

不确定是否重要,但这是显示它的 index.php:

<?php
$pageTitle = 'gLounge - Welcome to gLounge!';
include('includes/php/header.php');
?>

            <!-- Middle content section -->
            <div class="middle">
                <div class="container">
                    <div class="col-md-9 content">
                        <h2>Use gLounge42 as your new source to connect with fellow gamers. We have plenty for you to look at.</h2>
                        <p>

                            gLounge42 allows all types of gamers on all types of consoles/platforms connect with each other with 
                            unlimited amount of reasons to do so. Here at gLounge42 you can chat with them and go as far as posting 
                            in forums to get members for you Call of Duty clan. Possibilities are endless so go ahead and get your 
                            account setup now with gLounge42!

                        </p>
                        <div class="to-tutorial">   
                            <p><strong>Register an Account to get started:</strong></p>
                            <a href="register.php" class="btn btn-success">Register</a>
                        </div>
                    </div>
                    <!-- Includes the login widget on the top right side of page -->
                <?php include('includes/widgets/login.php');?>
                    <!-- Includes the side navigation area --> 
                <?php include('includes/php/sideNavigation.php');?>
                </div>
            </div>
<?php
include('includes/php/footer.php')
?>      

我正在使用的数据库元素:

连接到数据库的用户:

如果需要更多信息,请告诉我。
最好的问候,
编码

【问题讨论】:

  • @Arif_suhail_123 当我将 3 个“=”符号替换为 2 时,我仍然遇到相同的错误。不幸的是没有拿起 user_active
  • @Arif_suhail_123 是的,仍然没有找到我的解决方案。请喜欢你的意见
  • @Arif_suhail_123 当我添加您给我的代码并继续登录到 login.php 时,它没有任何错误代码,所以这不是一件好事,因为我继续到 login.php甚至没有输入用户名或密码,也没有给我错误代码。
  • @Arif_suhail_123 使用以下代码,您在 users.php 的 user_exists 部分给我提供了相同的错误。什么都没有真正改变。
  • @Arif_suhail_123 刚刚发布完所有代码,对此感到抱歉;p

标签: php mysql mysqli


【解决方案1】:

init.php

<?php
session_start();
error_reporting(E_ALL);//I change this line always use this. During 
//the production. after you finish you can change it. 

require 'database/connect.php';
require 'functions/general.php';
require 'functions/users.php';

$errors = array();
?>

阅读评论,无论您在答案中的何处找到它们。 Connect.php

<?php
//Your were mixing the mysqli and mysql, here you are using mysqli_ function But method you are 
//using msysql one so change it to mysql function



$connect_error = 'Sorry we\'re experiencing connection issues.';
$con = mysql_connect('localhost','root','');
mysql_select_db('lr',$con) or die($connect_error);//Database name should be first
?>

users.php

<?php

require 'database/connect.php';//You were missing connection here.
function user_exists($username) {
    $username = sanitize ($username);
    echo $username;
    //$result=or die(mysql_error());

    if(mysql_num_rows(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"))==1)        return TRUE; else     return FALSE;
    //if(mysql_num_rows(mysql_query()== 1)) 
    }

function user_active($username) {
    $username = sanitize ($username);
if(mysql_num_rows(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username' AND `active`='1'" ))==1)        return TRUE; else     return FALSE;    }
?>

【讨论】:

    【解决方案2】:

    首先停止使用mysql。将 mysqli_* 函数与准备好的语句或 PDO 一起使用。

    您在 login.php 中的 if 语句看起来不错。尝试在 user.php 中使用它:

    $bool = (mysql_num_rows(mysql_query("your query")) == 1) ? true : false; 
    

    现在您正在检查已返回的行数。而且我不确定您是否可以在返回中添加 if 语句。所以现在你可以这样做了:

    Return $bool;
    

    【讨论】:

    • 好的,谢谢。对不起,我只是不想再搞砸了。我是否放了 $bool = (mysql_num_rows(mysql_query("your query")) == 1) ?真假;在顶行还是底行!?你想让我把 Return $bool; 放在哪里? ??如果你能给我第 # 行那就太好了!
    • 把 $bool = (mysql_num_rows(mysql_query("your query")) == 1) ?真假;在 user.php 中的 return 语句上方,并将现有的 return 语句替换为 return $bool
    • 我目前有两个返回语句,我很困惑的是把每个语句放在哪里,目前当我被定向到 login.php 时,我没有收到任何错误或任何显示 - 它只是白色,没有任何内容。
    • 先试后问。用我给你的代码替换你在 user.php 中的所有 return 语句。
    猜你喜欢
    • 2013-09-14
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 2015-07-03
    • 2016-01-28
    • 2011-10-16
    • 1970-01-01
    相关资源
    最近更新 更多