unexpected T_ELSE

  • Onderwerp starter Onderwerp starter ier
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ier

Gebruiker
Lid geworden
22 mrt 2010
Berichten
11
Hij ik ben bezig met een project
is nog niet klaar maar ik krijg altijd op regel 86 een fout van unexpected T_ELSE Ik zal het script hier plaatsen
PHP:
<?php

include("design/header.php");
require("connect.php");

if ($_POST['submit'])
{
  $firstname =			$_POST['firstname'];
  $lastname =			$_POST['lastname'];
  $username =			$_POST['username'];
  $password =			$_POST['password'];
  $password_repeat =	$_POST['password_repeat'];
  
  $dob_year =			$_POST['dob_year'];
  $dob_month =			$_POST['dob_month'];
  $dob_day =			$_POST['dob_day'];	
  
  $gender =				$_POST['gender'];
  
  if (
  $firstname&&
  $lastname&&
  $username&&
  $password&&
  $password_repeat&&
  $dob_year&&
  $dob_month&&
  $dob_day&&
  $gender)
  {
  
			
			if (strlen($firstname)>25||strlen($lastname)>25||strlen($username)>25)
				echo "Firstname, lastname and username must be no more than 25 characters.";
			else
			{
			
			
				if (strlen($password)>25||strlen($password)<6)
					echo "Password must be between 6 and 25 characters.";
				else
				{
				 
				 if (is_numeric($dob_year)&&is_numeric($dob_month)&&is_numeric($dob_day))
				{
				 
				 if (strlen($dob_year)>4||strlen($dob_month)>2||strlen($dob_day)>2)
					echo "Date of birth year must be 4 characters, month and day must be 2 charecters.";
				else
					{
					
						if ($gender=="Male"||$gender=="Female")
						{
						 
						 if ($password==$password_repeat)
						 {
							if ($dob_month>12||$dob_day>31)
							  echo "Date of birth month or day is bigger than expectet";
							else
							{
							
							$query = mysql_query("SELECT * FROM users WHERE username='$username'");
							if (mysql_num_rows($query)==1)
								echo "That username is already taken";
							else
							{
							$dob_db = "$dob_year-$dob_month-$dob_day";
							$password_db = md5($password);
							
							switch ($gender)
							{
							 case "Male";
							 $gender_db = "M";
							 break;							
							 case "Female";
							 $gender_db = "F";
							 break;
							}
							
							
							$register = mysql_query("INSERT INTO users VALUES ('','$firstname','$lastname','$username','$password_db','$dob_db','$gender_db')");
							echo "Succes";
							
							}
						 }
						 else
							echo "Passwords do not match!";
						 
						}
						else
							echo "Gender must be Male or Female!";
					
					}
				
				}
				 else
					echo "Date of birth must be in numbers form. For example, 2010/04/09";
				 
				}
			
			}
  }
  else
	echo "Missing field! Please fill in all fieds!";
}
else
	echo "Please enter your details and click Register.";

?>

<form action='register.php' method='POST'>

<table width='60%'>
		<tr>
			<p><td width='40%' align='right'>
			<font size='2' face='arial'>Firstanme:
			</td>
			<td>
			<input type='text' value='<?php echo $firstname;?>' name='firstname' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Lastname:
			</td>
			<td>
			<input type='text' value='<?php echo $lastname;?>' name='lastname' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Username:
			</td>
			<td>
			<input type='text' value='<?php echo $username;?>' name='username' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Password:
			</td>
			<td>
			<input type='password' name='password' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Repeat password:
			</td>
			<td>
			<input type='password' name='password_repeat' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Date of birth:
			</td>
			<td>
			<input type='text' name='dob_year' maxlength='4' size='3' value='<?php if ($dob_year) echo $dob_year; else echo "YYYY";?>'> / <input type='text' name='dob_month' maxlength='2' size='1' value='<?php if ($dob_month) echo $dob_month; else echo "MM";?>'> / <input type='text' name='dob_day' maxlength='2' size='1' value='<?php if ($dob_day) echo $dob_day; else echo "DD";?>'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Gender:
			</td>
			<td>
			<select name='gender'>
					<option>Female</option>
					<option>Male</option>
			</select>
			</td>
		</tr>
</table>
<div align='right'><input type='submit' name='submit' value='Register'>

</form>

<?php

include("design/footer.php");

?>
Help me plz
 
Je hebt een aantal Else statements die wel een } hebben maar geen {

Het helpt om je code netjes te indenten en een editor te gebruiken die aangeeft waar haakjes openen en sluiten :)
 
oké dat is op gelost maar zo als je kan zien kijkt hij ook als er al iemand is met de zelfde username hij zegt het wel als die er is maar zegt ook tegelijk succes en registreert hem dan nog is
Dit is het script nu heb ergens een { bij gezet en toen ging het behalve dan dat register probleem

PHP:
<?php

include("design/header.php");
require("connect.php");

if ($_POST['submit'])
{
  $firstname =			$_POST['firstname'];
  $lastname =			$_POST['lastname'];
  $username =			$_POST['username'];
  $password =			$_POST['password'];
  $password_repeat =	$_POST['password_repeat'];
  
  $dob_year =			$_POST['dob_year'];
  $dob_month =			$_POST['dob_month'];
  $dob_day =			$_POST['dob_day'];	
  
  $gender =				$_POST['gender'];
  
  if (
  $firstname&&
  $lastname&&
  $username&&
  $password&&
  $password_repeat&&
  $dob_year&&
  $dob_month&&
  $dob_day&&
  $gender)
  {
  
			
			if (strlen($firstname)>25||strlen($lastname)>25||strlen($username)>25)
				echo "Firstname, lastname and username must be no more than 25 characters.";
			else
			{
			
			
				if (strlen($password)>25||strlen($password)<6)
					echo "Password must be between 6 and 25 characters.";
				else
				{
				 
				 if (is_numeric($dob_year)&&is_numeric($dob_month)&&is_numeric($dob_day))
				{
				 
				 if (strlen($dob_year)>4||strlen($dob_month)>2||strlen($dob_day)>2)
					echo "Date of birth year must be 4 characters, month and day must be 2 charecters.";
				else
					{
					
						if ($gender=="Male"||$gender=="Female")
						{
						 
						 if ($password==$password_repeat)
						 {
							if ($dob_month>12||$dob_day>31)
							  echo "Date of birth month or day is bigger than expectet";
							else
							{
							
							$query = mysql_query("SELECT * FROM users WHERE username='$username'");
							if (mysql_num_rows($query)==1)
								echo "That username is already taken";
							
							else
							{
							$dob_db = "$dob_year-$dob_month-$dob_day";
							$password_db = md5($password);
							}
							switch ($gender)
							{
							 case "Male";
							 $gender_db = "M";
							 break;							
							 case "Female";
							 $gender_db = "F";
							 break;
							}
							
							
							$register = mysql_query("INSERT INTO users VALUES ('','$firstname','$lastname','$username','$password_db','$dob_db','$gender_db')");
							echo "Succes";
							
							}
						 }
						 else
							echo "Passwords do not match!";
						 
						}
						else
							echo "Gender must be Male or Female!";
					
					}
				
				}
				 else
					echo "Date of birth must be in numbers form. For example, 2010/04/09";
				 
				}
			
			}
  }
  else
	echo "Missing field! Please fill in all fieds!";
}
else
	echo "Please enter your details and click Register.";

?>

<form action='register.php' method='POST'>

<table width='60%'>
		<tr>
			<p><td width='40%' align='right'>
			<font size='2' face='arial'>Firstanme:
			</td>
			<td>
			<input type='text' value='<?php echo $firstname;?>' name='firstname' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Lastname:
			</td>
			<td>
			<input type='text' value='<?php echo $lastname;?>' name='lastname' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Username:
			</td>
			<td>
			<input type='text' value='<?php echo $username;?>' name='username' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Password:
			</td>
			<td>
			<input type='password' name='password' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Repeat password:
			</td>
			<td>
			<input type='password' name='password_repeat' maxlength='25'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Date of birth:
			</td>
			<td>
			<input type='text' name='dob_year' maxlength='4' size='3' value='<?php if ($dob_year) echo $dob_year; else echo "YYYY";?>'> / <input type='text' name='dob_month' maxlength='2' size='1' value='<?php if ($dob_month) echo $dob_month; else echo "MM";?>'> / <input type='text' name='dob_day' maxlength='2' size='1' value='<?php if ($dob_day) echo $dob_day; else echo "DD";?>'>
			</td>
		</tr>
		<tr>
			<td width='40%' align='right'>
			<font size='2' face='arial'>Gender:
			</td>
			<td>
			<select name='gender'>
					<option>Male</option>
					<option>Female</option>
			</select>
			</td>
		</tr>
</table>
<div align='right'><input type='submit' name='submit' value='Register'>

</form>

<?php

include("design/footer.php");

?>
 
Laatst bewerkt:
Je gebruikt nog steeds twee verschillende stijlen om if/else constructies te bouwen en dat is bijzonder verwarrend.

Wat betreft je probleem: als je die gender switch en de $register regel (waarom krijgt die regel trouwens een naam als je er verder niets mee doet?) in de else van de username-check zet, krijg je wel het gewenste resultaat.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan