-1

忘れたパスワードがトークンテーブルを更新していないか、変更時にパスワードを更新していないため、以下のエラーメッセージが表示され続けます。フォームコードは次のとおりです。

Forgot Password</strong></h3>
      <form name="forgot" method="POST" id="forgot" action="includes/reset.php">
        <div align="center">
          <table width="372" border="0">
            <tr>
              <td width="181"><p>&nbsp;</p>
                <p><strong>Password</strong></p></td>
              <td width="181"><span id="sprytextfield1"><br />
                <label for="label"></label>
                <input type="password" name="passsowrd" id="password" />
                <span class="textfieldRequiredMsg">Your password is required</span></span></td>
</tr>
            <tr>
              <td><p>&nbsp;</p>
                <p><strong>Confenter code hereirm Password</strong></p></td>
              <td><span id="spryconfirm2">
                <label for="password"></label>
                <input type="password" name="password2" id="password" />
                <span class="confirmRequiredMsg">A value is required.</span><span class="confirmInvalidMsg">The values don't match.</span></span></td>
</tr>
</table>
</div>
    <div align="center">
      <p>&nbsp;</p>
      <table width="98" border="0">
        <tr>
          <th width="44" scope="row"><input type="submit" name="submit" id="submit" value="submit" /></th>
          <th width="44" scope="row"><input type="reset" name="clear" id="clear" value="Clear" /></th>
        </tr>
      </table>
    </div>
    <div align="center">
      <table width="372" border="0">
        <tr> </tr>
        <tr> </tr>
      </table>
    </div>
  </form>

そしてreset.phpは次のとおりです。

<?php
session_start();
error_reporting(0);
$token=$_GET['token'];
include("settings.php");
connect();
if(!isset($_POST['password'])){
$q="select email from tokens where token='".$token."' and used=0";
$r=mysql_query($q);
while($row=mysql_fetch_array($r))
   {
$email=$row['email'];
   }
If ($email!=''){
          $_SESSION['email']=$email;
}
else die("Invalid link or Password already changed  <a href='../index.php'>Click here to go back to the HOME PAGE<a/>");}

$pass=$_POST['password'];
$email=$_SESSION['email'];

if(isset($_POST['password'])&&isset($_SESSION['email']))
{
$q="update registration set password='".md5($pass)."' where email='".$email."'";
$r=mysql_query($q);
if($r)mysql_query("update tokens set used=1 where token='".$token."'");echo "Your password is changed successfully  <a href='../index.php'>Click here to go back to the HOME PAGE<a/>";
if(!$r)echo "An error occurred";
    }

問題は、次のエラー メッセージが常にエコーされることです: 無効なリンクまたはパスワードが既に変更されています。

追加した場合もどうすればよいですか:

if(!isset($pass)){
echo '<form method="post">
enter your new password:<input type="password" name="password" />
<input type="submit" value="Change Password">
</form>
';} 

その後、動作しますが、html に追加しようとしている専門家ではない新しい空白のページで開きます

4

4 に答える 4

0

ブロックを閉じるのwhileが早すぎます。}を下に移動die

于 2013-05-22T23:23:50.593 に答える