警告:mysql_close():没有提供MySQL-Link资源

时间:2014-08-26 14:30:54

标签: php html mysql warnings

我的php代码遇到了问题。我收到错误“警告:mysql_close():在第75行的C:\ wamp \ www \ Tuto sessions \ register.php中没有提供MySQL-Link资源”。

此register.php页面是一个表单:新用户应填写字段以创建新帐户。

我输入登录时出现此错误,2个相同的密码但电子邮件地址错误,例如admin @ .com。

你可以帮忙吗?提前谢谢!

<?php
error_reporting(E_ALL ^ E_NOTICE);
?>

<!doctype html>
<html xmls="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="txt/html"; charset="utf-8" />
<title>Créer un compte</title>
</head>

<body>

<?php

if ($_POST['registerbtn']) {
$getuser = $_POST['user'];
$getemail = $_POST['email'];
$getpass = $_POST['pass'];
$getretypepass = $_POST['retypepass'];

if ($getuser) {
    if ($getemail) {
        if ($getpass) {
            if ($getretypepass) {
                if ($getpass === $getretypepass) {
                    if ((strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, "."))) {
                        require("./connect.php");

                        $query = mysql_query("SELECT * FROM users WHERE username = '$getuser'");
                        $numrows = mysql_num_rows($query);
                        if ($numrows == 0) {
                        }                           
                        $query = mysql_query("SELECT * FROM users WHERE email = '$getemail'");
                        $numrows = mysql_num_rows($query);
                        if ($numrows == 0) {

                            $password = md5(md5("sjtmbcp".$password."sjtmbcp"));
                            $date = date("F d, Y");
                            $code = md5(rand());

                            mysql_query("INSERT INTO users VALUES (
                                '', '$getuser', '$password', '$getemail', '0', '$code', '$date')");

                            $query = mysql_query("SELECT * FROM users WHERE username='$getuser'");
                            $numrows = mysql_num_rows($query);

                            if ($numrows == 1) {
                                $site = "http://localhost/Tuto%20sessions";
                                $webmaster = "Lamplistr <admin@lamplistr.com>";
                                $headers = "From: $webmaster";
                                $subject = "Activez votre compte";
                                $message = "Bonjour, \n nous vous remercions de vous être inscrit sur Lamplistr. Cliquez sur le lien ci-dessous pour activer votre compte : \n ";
                                $message .= "$site/activate.php?user=$getuser&code=$code \n";
                                $message .= "Vous devez activer votre compte pour pouvoir l'utiliser.";

                                if (mail($getemail, $subject, $message, $headers)) {
                                    $errormsg = "Votre compte a été créé avec succès. Vous devez l'activer en cliquant sur le lien qui vous a été envoyé à l'adresse <b>$getemail</b>.";
                                    $getuser = "";
                                    $getemail = "";
                                }
                                else
                                    $errormsg = "Une erreur est survenue. Votre email d'activation n'a pas été envoyé.";
                            }

                            else
                                $errormsg = "Une erreur est survenue. Votre compte n'a pas été créé.";
                        }
                        else
                            $errormsg = "L'email que vous avez choisi est déjà utilisé.";
                    }
                    else
                        $errormsg = "Le nom d'utilisateur que vous avez choisi est déjà utilisé.";

                        mysql_close();
                    }
                    else
                        $errormsg = "Vos mots de passe ne sont pas identiques.";
                }
                else
                    $errormsg = "Vous devez retaper votre mot de passe.";
            }
            else
                $errormsg = "Vous devez taper votre mot de passe.";
        }
        else
            $errormsg = "Vous devez entrer un mot de passe.";
    }
    else
        $errormsg = "Vous devez entrer une adresse email.";
}

else
    $errormsg = "Vous devez entrer un nom d'utilisateur.";


$form = "<form action='./register.php' method='post'>
<table>
    <tr>
        <td></td>
        <td><font color='red'>$errormsg</font></td>         
    </tr>

    <tr>
        <td>Login :</td>
        <td><input type='text' name='user' value='$getuser' /></td>         
    </tr>

    <tr>
        <td>Email :</td>
        <td><input type='text' name='email' value='$getemail' /></td>           
    </tr>

    <tr>
        <td>Password :</td>
        <td><input type='password' name='pass' value='' /></td>         
    </tr>

    <tr>
        <td>Retype your password :</td>
        <td><input type='password' name='retypepass' value='' /></td>           
    </tr>

    <tr>
        <td></td>
        <td><input type='submit' name='registerbtn' value='Valider' /></td>         
    </tr>
</table>
</form>";


echo $form;

?>

</body>
</html>

2 个答案:

答案 0 :(得分:1)

好吧,你必须向我们展示这一行。但是,通常,不需要使用mysql_close() - 当脚本执行完毕后,连接会自动关闭。

答案 1 :(得分:0)

您正在打开与IF语句的连接,因此您的else语句中没有有效的链接资源,请尝试将其移动到您的IF语句中:

<body>

<?php

if ($_POST['registerbtn']) {
$getuser = $_POST['user'];
$getemail = $_POST['email'];
$getpass = $_POST['pass'];
$getretypepass = $_POST['retypepass'];

if ($getuser) {
    if ($getemail) {
        if ($getpass) {
            if ($getretypepass) {
                if ($getpass === $getretypepass) {
                    if ((strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, "."))) {
                        require("./connect.php");

                        $query = mysql_query("SELECT * FROM users WHERE username = '$getuser'");
                        $numrows = mysql_num_rows($query);
                        if ($numrows == 0) {
                        }                           
                        $query = mysql_query("SELECT * FROM users WHERE email = '$getemail'");
                        $numrows = mysql_num_rows($query);
                        if ($numrows == 0) {

                            $password = md5(md5("sjtmbcp".$password."sjtmbcp"));
                            $date = date("F d, Y");
                            $code = md5(rand());

                            mysql_query("INSERT INTO users VALUES (
                                '', '$getuser', '$password', '$getemail', '0', '$code', '$date')");

                            $query = mysql_query("SELECT * FROM users WHERE username='$getuser'");
                            $numrows = mysql_num_rows($query);

                            if ($numrows == 1) {
                                $site = "http://localhost/Tuto%20sessions";
                                $webmaster = "Lamplistr <admin@lamplistr.com>";
                                $headers = "From: $webmaster";
                                $subject = "Activez votre compte";
                                $message = "Bonjour, \n nous vous remercions de vous être inscrit sur Lamplistr. Cliquez sur le lien ci-dessous pour activer votre compte : \n ";
                                $message .= "$site/activate.php?user=$getuser&code=$code \n";
                                $message .= "Vous devez activer votre compte pour pouvoir l'utiliser.";

                                if (mail($getemail, $subject, $message, $headers)) {
                                    $errormsg = "Votre compte a été créé avec succès. Vous devez l'activer en cliquant sur le lien qui vous a été envoyé à l'adresse <b>$getemail</b>.";
                                    $getuser = "";
                                    $getemail = "";
                                }
                                else
                                    $errormsg = "Une erreur est survenue. Votre email d'activation n'a pas été envoyé.";
                            }

                            else
                                $errormsg = "Une erreur est survenue. Votre compte n'a pas été créé.";
                        }
                        else {
                            $errormsg = "L'email que vous avez choisi est déjà utilisé.";
                        }

                        mysql_close();
                    }
                    else
                        $errormsg = "Le nom d'utilisateur que vous avez choisi est déjà utilisé.";
                    }
                    else
                        $errormsg = "Vos mots de passe ne sont pas identiques.";
                }
                else
                    $errormsg = "Vous devez retaper votre mot de passe.";
            }
            else
                $errormsg = "Vous devez taper votre mot de passe.";
        }
        else
            $errormsg = "Vous devez entrer un mot de passe.";
    }
    else
        $errormsg = "Vous devez entrer une adresse email.";
}

else
    $errormsg = "Vous devez entrer un nom d'utilisateur.";


$form = "<form action='./register.php' method='post'>
<table>
    <tr>
        <td></td>
        <td><font color='red'>$errormsg</font></td>         
    </tr>

    <tr>
        <td>Login :</td>
        <td><input type='text' name='user' value='$getuser' /></td>         
    </tr>

    <tr>
        <td>Email :</td>
        <td><input type='text' name='email' value='$getemail' /></td>           
    </tr>

    <tr>
        <td>Password :</td>
        <td><input type='password' name='pass' value='' /></td>         
    </tr>

    <tr>
        <td>Retype your password :</td>
        <td><input type='password' name='retypepass' value='' /></td>           
    </tr>

    <tr>
        <td></td>
        <td><input type='submit' name='registerbtn' value='Valider' /></td>         
    </tr>
</table>
</form>";


echo $form;

?>

</body>
</html>