我的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>
答案 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>