Ik ben nog niet zo heel lang bezig met php en dit is een registratie pagina die ik heb gemaakt met al bestaande scripts en wat tutorials. Nu is het probleem dat hij niet de goede meldingen geeft als bijvoorbeeld je email niet goed is ingevuld of je wachtwoorden niet identiek zijn.

Dit is het script:


<?php     

include ("game/includes/config.php");

$Gebruikersnaam  = $_GET ['nickname'];
$Wachtwoord      = $_GET ['password'];
$Controle        = $_GET ['confirm'];
$Mail            = $_GET ['mail'];
$IP              = $_SERVER['REMOTE_ADDR'];

if (isset($_GET['submit']))

    {
	    $Error = Array (
		"Je mag maar 1 accaunt per IP hebben.",
		"Je hebt niet alle velden ingevult.",
		"Je gebruikersnaam mag alleen uit nummers en cijfers bestaan.",
		"Deze gebruikersnaam is al in gebruik.",
		"Je wachtwoord moet uit minstens 6 tekens bestaan.",
		"De 2 ingevulde wachtwoorden zijn niet identiek.",		
		"Dit is geen geldig E-Mail adres.",		
		"Deze E-Mail is al in gebruik.");
		
		$Nummer = -1;
		$IPControle = mysql_query("SELECT * FROM Leden WHERE IP='$IP'");
		if (mysql_num_rows($IPControle) == 1)
		$Nummer = 0;
		if ($Gebruikersnaam != "" && $Wachtwoord != "" && $Controle != "" && $Mail != "")
		$Nummer = 1;
		if (preg_match('/^[a-zA-Z0-9_\-]+$/',$Gebruikersnaam))
		$Nummer = 2;
		$GebruikersnaamControle = mysql_query("SELECT * FROM Leden WHERE Gebruikersnaam='$Gebruikersnaam'");
		if (mysql_num_rows($GebruikersnaamControle) == 1)
		$Nummer = 3;
		if (strlen($Wachtwoord) >= 6)
		$Nummer = 4;
		if ($Wachtwoord != $Controle)
		$Nummer = 5;
		if (preg_match('/^.+@.+\..+$/',$Mail))
		$Nummer = 6;
		$MailControle = mysql_query("SELECT * FROM Leden WHERE Mail='$Mail'");
		if (mysql_num_rows($MailControle) == 1)
		$Nummer = 7;
		
		$Aanmelden = "INSERT INTO Leden(Gebruikersnaam, Wachtwoord, Datum, IP, Mail) VALUES('$Gebruikersnaam', 'MD5('$Wachtwoord')', 'NOW()', '$IP', '$Mail')";
	}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Aanmelden</title>
</head>
<body>
<center>
<?php

if($Nummer != -1)

    {
	    echo "Aanmelden<br \><br \>";	
		if(isset($Nummer) && $Nummer != -1)
		echo "{$Error[$Nummer]} <br \><br \>";

echo <<<ENDHTML
<form method="get" action="signup.php">
l Gebruikersnaam l<br />
<input name="nickname" type="text" maxlength="16" /><br />
l Wachtwoord l<br />
<input name="password" type="password" maxlength="16" /><br />
l Wachtwoord Herhalen l<br />
<input name="confirm" type="password" maxlength="16" /><br />
l E-Mail l<br />
<input name="mail" type="text" maxlength="64" /><br />
<input name="submit" type="submit" value="Verstuur" />
</form>
ENDHTML;

    }

else

    {
	    echo "Je bent nu aangemeld!";
	}
	
?>
</center>
</body>
</html>


En dit is het in de praktijk:

http://geckodesign.nl/Robin/signup.php

Weet er iemand wat ik fout doe want ik kom er zelf niet meer uit.
Tips zijn ook altijd welkom want ik ben nog niet zo lang bezig.

Alvast Bedankt!
Notice: Undefined index: nickname in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 8

Notice: Undefined index: password in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 9

Notice: Undefined index: confirm in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 10

Notice: Undefined index: mail in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 13

Notice: Undefined index: sex in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 14

Notice: Use of undefined constant Y - assumed 'Y' in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 15

Notice: Use of undefined constant m - assumed 'm' in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 15

Notice: Use of undefined constant d - assumed 'd' in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 15

Notice: Undefined index: submit in /mnt/web2/12/59/51632459/htdocs/Robin/aanmelden.php on line 18


Dit is er uitgekomen maar ik weet niet echt wat het betekent.
Undefined index: nickname bestaat niet in het array()
Zie hiervoor [php]isset[/php]().

Use of undefined constant Y: de 'constante' Y bestaat niet
Quotes vergeten?
<?php

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

include ("game/includes/config.php");

$Gebruikersnaam  = isset($_POST ['nickname']);
$Wachtwoord      = isset($_POST ['password']);
$Controle        = isset($_POST ['confirm']);
$MD5Wachtwoord   = md5($Wachtwoord);
$MD5Controle     = md5($Controle);
$Mail            = isset($_POST ['mail']);
$Geslacht        = isset($_POST ['sex']);
$Datum           = date('Y-m-d');
$IP              = $_SERVER['REMOTE_ADDR'];

if (!isset($_POST['submit']))
    
    {
	
echo <<<ENDHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Aanmelden</title>
</head>
<body>
<center>
<form method="post">
l Gebruikersnaam l<br />
<input name="nickname" type="text" maxlength="16" /><br />
l Wachtwoord l<br />
<input name="password" type="password" maxlength="16" /><br />
l Wachtwoord Herhalen l<br />
<input name="confirm" type="password" maxlength="16" /><br />
l E-Mail l<br />
<input name="mail" type="text" maxlength="64" /><br />
l Geslacht l<br />
<select name="sex">
<option value="1">Jongen</option>
<option value="2">Meisje</option>
</select><br />
<input name="submit" type="submit" value="Verstuur" />
</form>
</center>
</body>
</html>
ENDHTML;

    }

else if ($Gebruikersnaam == "" && $MD5Wachtwoord == "" && $MD5Controle == "" && $Mail == "")

    {
	    echo "Niet alle velden zijn ingevult!";
	}
	
	else

    {
	    if (!preg_match('/^[a-zA-Z0-9_\-]+$/',$Gebruikersnaam))
		
		    {
			    echo "Gebruikersnamen mogen alleen Letters, Cijfers bevatten!";
			}
			
		else
		
		    {
			    $GebruikersnaamControle = mysql_query("SELECT * FROM Leden WHERE Gebruikersnaam='$Gebruikersnaam'");
		        if (mysql_num_rows($GebruikersnaamControle) == 1)
				
				    {
					    echo "Deze Gebruikersnaam is al in gebruik!";
					}
					
				else
				
				    {
					    if (strlen($Wachtwoord) < 6)
						
						    {
							    echo "Het wachtwoord moet minstens 6 tekens bevatten!";
							}
							
						else
						
						    {
							    if ($Wachtwoord != $Controle)
								
								    {
								        echo "De 2 wachtwoorden zijn niet identiek!";
								    }
								
								else
								
								    {
									    if (!preg_match('/^.+@.+\..+$/',$Mail))
										
										    {
											    echo "Dit is geen geldige E-Mail!";
											}
											
										else
										
										    {
											    $MailControle = mysql_query("SELECT * FROM Leden WHERE Mail='$Mail'");
		                                        if (mysql_num_rows($MailControle) == 1)
												
												    {
												        echo "Deze E-Mail is al in gebruik!";
												    }
													
												else
												
												    {
													    $Query = "INSERT INTO Leden(Gebruikersnaam, Wachtwoord, Datum, IP, Mail, Geslacht) VALUES('$Gebruikersnaam', '$MD5Wachtwoord', '$Datum', '$IP', '$Mail', '$Geslacht')";
	                		                            mysql_query($Query) or die (mysql_error());
														echo "Het aanmelden is gelukt!";
													}
											}
									}
							}
					}
			}    
    }
    
?>


Geen Errors meer maar nu blijft hij zeggen dat het wachtwoord niet uit 6 tekens bestaat.

Best wel lastig een Registratie Pagina maken :P
$Gebruikersnaam = isset($_POST ['nickname']);

Zo wordt $Gebruikersnaam een true of een false

Je wilt meer dit.
if(isset($_POST ['nickname']))
{
$Gebruikersnaam = $_POST ['nickname'];
}
else
{
$Gebruikersnaam = '';
)

Verder kan ik je zeggen dat dit kopiƫren niet echt slim is. Het kost eigenlijk alleen maar meer geheugen. Je kan ook verder met de $_POST-var.
Hoe moet ik verder met de POST-var dan?
Kijk eens naar de diverse script en tutorials. Bekijk daar hoe dingen gedaan zijn.

Reageren