PHP/MySQL 成员(member)系统总是给我电子邮件已注册

标签 php mysql system member

成员(member)系统代码总是将我重定向到“电子邮件已注册页面”
这是我在处理过程中使用的代码,用于检查电子邮件(即用户名)是否是
是否已被占用
请帮忙!!!

<?php
    $db_host = "localhost";
    $db_user = "ms_admin";
    $db_pass = "secretpassword";
    $db_name = "member_system";

     $connection = mysqli_connect($db_host, $db_user, $db_pass, $db_name);

    if(mysqli_connect_errno())
        die("Databse connection failed." . mysqli_connect_error()
            . " (" . mysqli_connect_errno() . ")" );
?>

<?php

    function check_email($e_mail)
    {
        $query  = "SELECT email FROM members ";
        $query .= "WHERE email='$e_mail'";

        $result = mysqli_query($connection, $query);
        $num_rows = mysqli_num_rows($result);

        if($num_rows>0) header("Location: registration_successful.php");
         else header("Location: registration_unsuccessful.php");
    }
?>

<?php
    $full_name = ucwords($_POST["full_name"]);
    $email = strtolower($_POST["email"]);
    $password = md5($_POST["password"]);

    check_email($email);
?>

我改变了这些:

 if($num_rows>0) header("Location: registration_successful.php");
  else header("Location: registration_unsuccessful.php");

至:

 if($num_rows>0) header("Location: registration_unsuccessful.php");
  else header("Location: registration_successful.php");


似乎 ($num_rows>0) 总是返回 FALSE :(

请帮忙,, 谢谢....

最佳答案

check_email() 中缺少 $connection 变量,请为数据库连接设置 global $connection;

function check_email($e_mail){
        global $connection;
        $query  = "SELECT email FROM members ";
        $query .= "WHERE email='$e_mail'";

        $result = mysqli_query($connection, $query);
        $num_rows = mysqli_num_rows($result);

        if($num_rows>0) header("Location: registration_successful.php");
         else header("Location: registration_unsuccessful.php");
     }


     check_email($email);

或者

 function check_email($e_mail, $connection){
    $query  = "SELECT email FROM members ";
    $query .= "WHERE email='$e_mail'";

    $result = mysqli_query($connection, $query);
    $num_rows = mysqli_num_rows($result);

    if($num_rows>0) header("Location: registration_successful.php");
     else header("Location: registration_unsuccessful.php");
 }


 check_email($email, $connection);

虽然我喜欢第一个:)

关于PHP/MySQL 成员(member)系统总是给我电子邮件已注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27656088/

相关文章:

php - 内存缓存性能

php - 如何在 PHP 中处理 IPv6 地址?

mysql - 从 SQL 表创建键值对

mysql - 多人多组SQL

mysql - 将 mysql tinyint 与 subsonic 3 和 datagridview 绑定(bind)时出现问题

php - 如何比较上传文件的文件名和字符串

php - 未加载 css,因为它的 MIME 类型 “text/html” 不是 “text/css”

algorithm - 在线大厅系统 - 游戏列表

c - 系统调用写入

C++ 输出 vector 列表时,输出量平方