change password code error
I've created a code to change a password. Now it seem contain an error.before i fill the form. the page display the error message:
Parse error: parse error, unexpected $end in C:\Program Files\xampp\htdocs\e-Complaint(FYP)\userChangePass.php on line 222
this the code:
<?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']}";
$result=@mysql_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{//开发者_Go百科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.
?>
And code for form:
<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-->
You're missing a closing }
at the end of your file. The else
of the following statement is not closed:
if(!isset($_SESSION['nameuser'])){
header("Location: http://" .$_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF'])."/index.php");
ob_end_clean();
exit();
}else{
Your final closing on this line }//end of the main Submit conditional.
is closing this line if(isset($_POST['submit'])) {//handle form.
which leaves one more if
to be closed.
I think you're missing a }
on one of your conditions just before the ?>
.
Correctly indenting your code will make these easier to spot.
Edit:
As I suspeced, add a }
on the 2nd to last line, like this:
<?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']}";
$result=@mysql_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.
}
?>
You are missing a } to close your first if/else block, when you are checking for $_SESSION['nameuser'].
<?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']}";
$result=@mysql_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
?>
精彩评论