私はパスワードリセットフォームを作成しています。私のSQLステートメントは何も返されていないようです。私はそれを単純化するためにコードのセクションを削除しましたが、私はmysqli_num_rows()
を貼り付けられるように見えません。私はそれに続く行に私のmysqli_query()
ステートメントが間違っていると思う。私はmysql_num_rows
とmysql_query
代替を使用しようとしました。あなたは二つの変数でMySQLのエスケープを使用しているとして、変数$ eからMySQLのステートメントにエラーがあるようです。 mysqli_num_rows()とmysqli_fetch_array()エラーが発生しました
<?php
if(isset($_POST["u"]))
{
// CONNECT TO THE DATABASE
include_once("includes/connect.php");
// GATHER THE POSTED DATA INTO LOCAL VARIABLES AND SANITIZE
$u = preg_replace('#[^a-z0-9_]#i', '', $_POST['u']);
$e = mysql_real_escape_string($connect, $_POST['e']);
$username = $_POST['username'];
$email = $_POST['email'];
$query = mysqli_query($connect, "SELECT username, email FROM users WHERE username='$username'");
$numrows = mysqli_num_rows($query);
if($numrows > 0)
{
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$db_u = $row["username"];
$db_e = $row["email"];
}
if($e == $db_e && $u == $db_u)
{
$code = rand(10000,9999999);
$sql = "UPDATE users SET passreset='$code' WHERE username='$username'";
$query = mysqli_query($connect, $sql);
$to = $db_email;
$subject = "Password Reset";
$body = "This is an automated email
";
mail($to,$subject,$body);
echo "success";
}
else {
echo"no_exist";
exit();
}
}
}
?>
<script>
function forgotpass(){
var u = _("username").value;
var e = _("email").value;
if(e == "" || u == ""){
_("status").innerHTML = "This form requires you enter both an username and email.";
} else {
_("forgotpassbtn").style.display = "none";
_("status").innerHTML = 'please wait ...';
var ajax = ajaxObj("POST", "forgot.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
var response = ajax.responseText;
if(response == "success"){
_("forgotpassform").innerHTML = '<h3>Check your email inbox </h3>';
} else if (response == "no_exist"){
_("status").innerHTML = "Email address not found";
} else if(response == "email_send_failed"){
_("status").innerHTML = "Mail function failed to execute";
} else {
_("status").innerHTML = "An unknown error occurred";
}
}
}
ajax.send("e="+e+"&u="+u);
}
}
</script>
</head>
<body>
<h3>Reset password</h3>
<form id="forgotpassform" onsubmit="return false;">
<div>Enter Username</div>
<input id="username" type="text" onfocus="_('status').innerHTML='';" maxlength="88">
<br /><br />
<div>Enter Your Email Address</div>
<input id="email" type="text" onfocus="_('status').innerHTML='';" maxlength="88">
<br /><br />
<button id="forgotpassbtn" onclick="forgotpass()">Submit</button>
<p id="status"></p>
</form>
</div>
</body>
</html>
'$電子= mysql_real_escape_stringのを逃れるmysqliのためにそれを変更し、問題がある可能性があります$ _POST [ 'E'] '$ e = mysqli_real_escape_string($ connect、$ _POST ['e']);' – larsAnders