2010-03-18 52 views
0

我創建了更改密碼的代碼。現在它似乎包含一個錯誤。在我填寫表單之前。 頁面顯示錯誤消息:更改密碼代碼錯誤

Parse error: parse error, unexpected $end in C:\Program Files\xampp\htdocs\e-Complaint(FYP)\userChangePass.php on line 222

此代碼:

<?php # userChangePass.php 
//this page allows logged in user to change their password. 

$page_title='Change Your Password'; 

//if no first_name variable exists, redirect the user 
if(!isset($_SESSION['nameuser'])){ 

    header("Location: http://" .$_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF'])."/index.php"); 
    ob_end_clean(); 
    exit(); 

}else{ 

    if(isset($_POST['submit'])) {//handle form. 
     require_once('connectioncomplaint.php'); //connec to the database 

     //check for a new password and match againts the confirmed password. 
     if(eregi ("^[[:alnum:]]{4,20}$", stripslashes(trim($_POST['password1'])))){ 
      if($_POST['password1'] == $_POST['password2']){ 
       $p =escape_data($_POST['password1']); 
      }else{ 
       $p=FALSE; 
       echo'<p><font color="red" size="+1"> Your password did not match the confirmed password!</font></p>'; 
      } 
     }else{ 
      $p=FALSE; 
      echo'<p><font color="red" size="+1"> Please Enter a valid password!</font></p>'; 
     } 

     if($p){ //if everything OK. 

      //make the query 
      $query="UPDATE access SET password=PASSWORD('$p') WHERE userid={$_SESSION['userid']}"; 
      [email protected]_query($query);//run the query. 
      if(mysql_affected_rows() == 1) {//if it run ok. 

       //send an email,if desired. 
       echo '<p><b>your password has been changed.</b></p>'; 
       //include('templates/footer.inc');//include the HTML footer. 
       exit(); 

      }else{//if it did not run ok 

      $message= '<p>Your password could not be change due to a system error.We apolpgize for any inconvenience.</p><p>' .mysql_error() .'</p>'; 

      } 
      mysql_close();//close the database connection. 

      }else{//failed the validation test. 
       echo '<p><font color="red" size="+1"> Please try again.</font></p>'; 
      } 
     }//end of the main Submit conditional. 
    ?> 

和代碼形式:

<h1>Change Your Password</h1> 
     <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
     <fieldset> 
     <p><b>New Password:</b><input type="password" name="password1" size="20" maxlength="20" /> 
     <small>Use only letters and numbers.Must be between 4 and 20 characters long.</small></p> 
     <p><b>Confirm New Password:</b><input type="password" name="password2" size="20" maxlength="20" /></p> 
     </fieldset> 
     <div align="center"> <input type="submit" name="submit" value="Change My Password" /></div> 

</form><!--End Form--> 

回答

0

我覺得你對一個缺少}您條件就在?>之前。

正確縮進你的代碼將使這些更容易被發現。

編輯:

正如我suspeced,加上二號}到最後一行,就像這樣:

<?php # userChangePass.php 
//this page allows logged in user to change their password. 

$page_title='Change Your Password'; 

//if no first_name variable exists, redirect the user 
if(!isset($_SESSION['nameuser'])){ 

    header("Location: http://" .$_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF'])."/index.php"); 
    ob_end_clean(); 
    exit(); 

}else{ 

    if(isset($_POST['submit'])) {//handle form. 
     require_once('connectioncomplaint.php'); //connec to the database 

     //check for a new password and match againts the confirmed password. 
     if(eregi ("^[[:alnum:]]{4,20}$", stripslashes(trim($_POST['password1'])))){ 
      if($_POST['password1'] == $_POST['password2']){ 
       $p =escape_data($_POST['password1']); 
      }else{ 
       $p=FALSE; 
       echo'<p><font color="red" size="+1"> Your password did not match the confirmed password!</font></p>'; 
      } 
     }else{ 
      $p=FALSE; 
      echo'<p><font color="red" size="+1"> Please Enter a valid password!</font></p>'; 
     } 

     if($p){ //if everything OK. 

      //make the query 
      $query="UPDATE access SET password=PASSWORD('$p') WHERE userid={$_SESSION['userid']}"; 
      [email protected]_query($query);//run the query. 
      if(mysql_affected_rows() == 1) {//if it run ok. 

       //send an email,if desired. 
       echo '<p><b>your password has been changed.</b></p>'; 
       //include('templates/footer.inc');//include the HTML footer. 
       exit(); 

      }else{//if it did not run ok 

      $message= '<p>Your password could not be change due to a system error.We apolpgize for any inconvenience.</p><p>' .mysql_error() .'</p>'; 

      } 
      mysql_close();//close the database connection. 

      }else{//failed the validation test. 
       echo '<p><font color="red" size="+1"> Please try again.</font></p>'; 
      } 
     }//end of the main Submit conditional. 
    } 
    ?> 
1

你錯過了你的文件的最後一個收盤}。下面的語句的else沒有關閉:

if(!isset($_SESSION['nameuser'])){ 

    header("Location: http://" .$_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF'])."/index.php"); 
    ob_end_clean(); 
    exit(); 

}else{ 

你在這一行}//end of the main Submit conditional.最終收盤時關閉此行if(isset($_POST['submit'])) {//handle form.留下一個更if被關閉。

0

當您檢查$ _SESSION ['nameuser']時,您缺少}關閉您的第一個if/else塊。

<?php # userChangePass.php 
//this page allows logged in user to change their password. 

$page_title='Change Your Password'; 

//if no first_name variable exists, redirect the user 
if(!isset($_SESSION['nameuser'])){ 

    header("Location: http://" .$_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF'])."/index.php"); 
    ob_end_clean(); 
    exit(); 

}else{ 

    if(isset($_POST['submit'])) {//handle form. 
     require_once('connectioncomplaint.php'); //connec to the database 

     //check for a new password and match againts the confirmed password. 
     if(eregi ("^[[:alnum:]]{4,20}$", stripslashes(trim($_POST['password1'])))){ 
      if($_POST['password1'] == $_POST['password2']){ 
       $p =escape_data($_POST['password1']); 
      }else{ 
       $p=FALSE; 
       echo'<p><font color="red" size="+1"> Your password did not match the confirmed password!</font></p>'; 
      } 
     }else{ 
      $p=FALSE; 
      echo'<p><font color="red" size="+1"> Please Enter a valid password!</font></p>'; 
     } 

     if($p){ //if everything OK. 

      //make the query 
      $query="UPDATE access SET password=PASSWORD('$p') WHERE userid={$_SESSION['userid']}"; 
      [email protected]_query($query);//run the query. 
      if(mysql_affected_rows() == 1) {//if it run ok. 

       //send an email,if desired. 
       echo '<p><b>your password has been changed.</b></p>'; 
       //include('templates/footer.inc');//include the HTML footer. 
       exit(); 

      }else{//if it did not run ok 

      $message= '<p>Your password could not be change due to a system error.We apolpgize for any inconvenience.</p><p>' .mysql_error() .'</p>'; 

      } 
      mysql_close();//close the database connection. 

      }else{//failed the validation test. 
       echo '<p><font color="red" size="+1"> Please try again.</font></p>'; 
      } 
     }//end of the main Submit conditional. 
} // end session check 
?>