brauche hilfe bei registrieren

Typs

Mitglied
Hallo Leute ich habe ein Problem...Ich baue eine Seite auf und beim registrieren läuft immer wasschief, kann aber den Fehler nicht finden und ich suche schon seit tagen...habe sogar codeschnipsel auskommentiert damit ich den fehler finde aber leider finde ich ihn nicht. Vielleicht hat ja einer von euch ein auge dafür. 2 php datein sind notwendig: function.php und register.php:

register.php
PHP:
<? error_reporting(E_ALL); ?>
<? include_once("function.php"); ?>
<!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>Anmelden</title>
<link rel="stylesheet" href="css.css" />
</head>
<body>
<div id="gesamt">
<div id="oben"><? include("oben.php"); ?></div>
<div id="mitte">

<?
if(isset($_POST['register'])){
	$benutzername = $_POST['benutzername'];
	$kennwort = $_POST['kennwort'];
	$kennwort2 = $_POST['kennwort2'];
	$email = $_POST['email'];
	$email2 = $_POST['email2'];
	$tag = $_POST['tag'];
	$monat = $_POST['monat'];
	$jahr = $_POST['jahr'];
	$geburtstag = $jahr."-".$monat."-".$tag;
	@$geschlecht = $_POST['geschlecht'];
	$ort = $_POST['ort'];
	$plz = $_POST['plz'];
	@$agb = $_POST["agb"];
	$error = array();
	
	//Fehler ausgelesen und in das array $error gespeichert
	//AGB
	if($agb==""){
		$error[] = "AGB nicht akzeptiert";
	}
	
	//Benutzername
	if(vergeben($benutzername)==0){
		$error[] = "Benutzername ist leider schon vergeben";
	}
	if(pruefe_benutzername($benutzername)==0){
		$error[] = "Benutzername enthält ungültige Zeichen";
	}
	if(laenge_benutzername($benutzername)==0){
		$error[] = "Der gewählte Benutzername ist zu kurz oder zu lang. Zwischen 3-15 Zeichen bitte verwenden!";
	}
	if($benutzername==""){
		$error[] = "Benutzernamen nicht angegeben";
	}
	
	//Kennwort
	if($benutzername==$kennwort){
		$error[] = "Kennwort sollte nicht ihr Benutzername sein";
	}
	if($kennwort!=$kennwort2){
		$error[] = "Kennwörter stimmen nicht überein";
	}
	if($kennwort==""){
		$error[] = "Kennwort nicht angegeben";
	}
	if($kennwort2==""){
		$error[] = "Kennwort Bestätigung nicht angegeben";
	}
	if(laenge_kennwort($kennwort)==0){
		$error[] = "Das gewählte Kennwort ist zu kurz oder zu lang. Zwischen 6-12 Zeichen bitte verwenden!";
	}
	if(pruefe_kennwort($kennwort)==0){
		$error[] = "Kennwort enthält ungültige Zeichen";
	}
	
	//E-Mail
	if($email==""){
		$error[] = "E-Mail Adresse nicht angegeben";
	}
	if(vergeben_email($email)==0){
		$error[] = "E-Mail Adresse ist schon vergeben";
	}
	if($email2==""){
		$error[] = "E-Mail Adressen Bestätigung nicht angegeben";
	}
	if($email!=$email2){
		$error[] = "E-Mail Adressen stimmen nicht überein";
	}
	if(pruefe_email($email)==0){
		$error[] = "E-Mail Adresse ist nicht richtig eingetippt Beispiel:(maxmustermann@web.de)";
	}
	
	
	//Rest
	if($geburtstag=="" || $geburtstag=="----------"){
		$error[] = "Geburtstag nicht angegeben";
	}
	if($geschlecht==""){
		$error[] = "Geschlecht nicht angegeben";
	}
	if($plz==""){
		$error[] = "Postleitzahl nicht angegeben";
	}
	if(pruefe_plz($plz)==0){
		$error[] = "Postleitzahl ist falsch";
	}
	if(laenge_plz($plz)==0){
		$error[] = "Postleitzahl muss eine 5stellige Zahl sein";
	}
	
	//Fehler werden gezählt
	$count = count($error);
	
	//Wenn keine Fehler dann registrieren und einloggen anderenfalls Fehler anzeigen mit Formular
	if($error == 0){
		registrieren($benutzername, $kennwort, $email, $geburtstag, $ort, $plz, $geschlecht);
		$user = pruefe_login($benutzername, $kennwort);
		einloggen($user);
	}else{
		echo "<div id=\"error_main\"><div id=\"error_oben\"></div><div id=\"error\">";
		for($i=0; $i<$count; $i++){
			echo "Nr.".($i+1).": ".$error[$i]."<br />";
		}
		echo "<br />Bitte arbeiten Sie sich durch die Fehlerliste</div><div id=\"error_unten\"></div></div><br />";
		echo '<div align="center">
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<table>
  <tr>
    <td>Benutzername: *</td>
    <td><input name="benutzername" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>Kennwort: *</td>
    <td><input name="kennwort" type="password" size="25" /></td>
  </tr>
  <tr>
    <td>Kennwort Bestätigung: *</td>
    <td><input name="kennwort2" type="password" size="25" /></td>
  </tr>
  <tr>
    <td>E-Mail Adresse: *</td>
    <td><input name="email" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>E-Mail Bestätigung: *</td>
    <td><input name="email2" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>PLZ: *</td>
    <td><input name="plz" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>Stadt:</td>
    <td><input name="ort" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>Geburtstag: *</td>
    <td>
		<select name="tag">
      <option>--</option>
	  <option>01</option>
	  <option>02</option>
	  <option>03</option>
	  <option>04</option>
	  <option>05</option>
	  <option>06</option>
	  <option>07</option>
	  <option>08</option>
	  <option>09</option>
	  <option>10</option>
	  <option>11</option>
	  <option>12</option>
	  <option>13</option>
	  <option>14</option>
	  <option>15</option>
	  <option>16</option>
	  <option>17</option>
	  <option>18</option>
	  <option>19</option>
	  <option>20</option>
	  <option>21</option>
	  <option>22</option>
	  <option>23</option>
	  <option>24</option>
	  <option>25</option>
	  <option>26</option>
	  <option>27</option>
	  <option>28</option>
	  <option>29</option>
	  <option>30</option>
	  <option>31</option>      
    </select>
		<select name="monat">
      <option>--</option>
	  <option>01</option>
	  <option>02</option>
	  <option>03</option>
	  <option>04</option>
	  <option>05</option>
	  <option>06</option>
	  <option>07</option>
	  <option>08</option>
	  <option>09</option>
	  <option>10</option>
	  <option>11</option>
	  <option>12</option>      
    </select>
	<select name="jahr">
      <option>----</option>
	  ';
	  for($x=1970; $x<=1992; $x++){
	  echo "<option>$x</option>";
	  }
	  echo '     
    </select>
	</td>
  </tr>
  <tr><td>Geschlecht: *</td><td><input type="radio" name="geschlecht" value="male" />Männlich<input type="radio" name="geschlecht" value="female" />Weiblich</td></tr>
  <tr><td></td><td><input name="agb" type="checkbox" value="akzeptiert" /><a class="normal" href="agb.php">AGB</a> akzeptiert</td></tr>
  <tr><td></td><td><input name="register" type="submit" value="Anmelden" /></td></tr>
</table>
</form>
* Pflichtfelder
</div>';
	}
	
}else{
?>

<div align="center">
<form action="<? $_SERVER['PHP_SELF']; ?>" method="post">
<table>
  <tr>
    <td>Benutzername: *</td>
    <td><input name="benutzername" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>Kennwort: *</td>
    <td><input name="kennwort" type="password" size="25" /></td>
  </tr>
  <tr>
    <td>Kennwort Bestätigung: *</td>
    <td><input name="kennwort2" type="password" size="25" /></td>
  </tr>
  <tr>
    <td>E-Mail Adresse: *</td>
    <td><input name="email" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>E-Mail Bestätigung: *</td>
    <td><input name="email2" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>PLZ: *</td>
    <td><input name="plz" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>Stadt:</td>
    <td><input name="ort" type="text" size="25" /></td>
  </tr>
  <tr>
    <td>Geburtstag: *</td>
    <td>
		<select name="tag">
		<option>--</option>
      <? for($x=1; $x<=31; $x++){echo "<option>$x</option>";} ?>      
    </select>
		<select name="monat">
		<option>--</option>
      <? for($y=1; $y<=12; $y++){echo "<option>$y</option>";} ?>      
    </select>
	<select name="jahr">
	<option>--</option>
      <? for($z=1950; $z<=1992; $z++){echo "<option>$z</option>";} ?>      
    </select>
	</td>
  </tr>
  <tr><td>Geschlecht: *</td><td><input type="radio" name="geschlecht" value="male" />Männlich<input type="radio" name="geschlecht" value="female" />Weiblich</td></tr>
  <tr><td></td><td><input name="agb" type="checkbox" value="akzeptiert" /><a class="normal" href="agb.php">AGB</a> akzeptiert</td></tr>
  <tr><td></td><td><input name="register" type="submit" value="Anmelden" /></td></tr>
</table>
</form>
* Pflichtfelder
</div>
<br />
<br />

<? } ?>

</div>
<div id="unten"><? include("footer.php"); ?></div>
</div>
</body>
</html>

function.php
PHP:
<? session_start();
ob_start();
error_reporting(E_ALL);

//Verbindung zur Datenbank
function connect(){
	$sql = mysql_connect("localhost","root");
	$db = mysql_select_db("tutorial",$sql);
}

//Benutzer registrieren
function registrieren($benutzername, $kennwort, $email, $geburtstag, $ort, $plz, $geschlecht){
	$sql = mysql_query("INSERT INTO `user` (`UserName`,`UserPass`,`UserMail`,`UserBirth`,`UserCity`,`UserPLZ`,`UserSex`) VALUES ('$benutzername',MD5('$kennwort'),'$email','$geburtstag','$ort','$plz','$geschlecht')");
}

//Benutzername vergeben?
function vergeben($benutzername){
	$sql = mysql_query("SELECT `ID` FROM `user` WHERE `UserName` LIKE '$benutzername'");
	if(mysql_num_rows($sql) == 0){
		return 1;
	}else{
		return 0;
	}
}

//E-Mail vergeben?
function vergeben_email($email){
	$sql = mysql_query("SELECT `ID` FROM `user` WHERE `UserMail` LIKE '$email'");
	if(mysql_num_rows($sql) == 0){
		return 1;
	}else{
		return 0;
	}
}

//Benutzer überprüfen
function pruefe_login($benutzername, $kennwort){

	if($sql = mysql_query("SELECT `ID` FROM `user` WHERE `UserName` LIKE '$benutzername' AND `UserPass` LIKE MD5('$kennwort')")){
	$take = mysql_fetch_assoc($sql);
	return $take['ID'];
	}else{
	return false;
	}
}

//Benutzer einloggen
function einloggen($user){

	$session = session_id();
	$sql = mysql_query("UPDATE `user` SET `UserSession` = '$session' WHERE `ID` LIKE '$user'");
	header("Location:http://localhost/neu/user_start.php");
	ob_get_clean();
}

//Benutzer ausloggen
function ausloggen(){

	$session = session_id();
	$sql = mysql_query("UPDATE `user` SET `UserSession` = NULL WHERE `UserSession` = '$session'");
	header("Location:http://localhost/neu/index.php");
}

//Benutzer on?
function eingeloggt(){

	$session = session_id();
	$sql = mysql_query("SELECT `ID` FROM `user` WHERE `UserSession` = '$session'");
	return(mysql_num_rows($sql)==1);
}

//Benutzername auf Richtigkeit überprüfen
function pruefe_benutzername($benutzername){
	if(!preg_match("^[()+ß*@_a-zA-Z0-9-]^", $benutzername)){
		return 0;
	}else{
		return 1;
	}
}

//PLZ auf Richtigkeit überprüfen
function pruefe_plz($plz){
	if(!preg_match("^[0-9]^", $plz)){
		return 0;
	}else{
		return 1;
	}
}

//Länge PLZ überprüfen
function laenge_plz($plz){
	$range = range(5,5);
	if(!in_array(strlen($plz), $range)){
		return 0;
	}else{
		return 1;
	}
}

//Länge Benutzername überprüfen
function laenge_benutzername($benutzername){
	$range = range(3,15);
	if(!in_array(strlen($benutzername), $range)){
		return 0;
	}else{
		return 1;
	}
}

//Kennwort auf Richtigkeit überprüfen
function pruefe_kennwort($kennwort){
	if(!preg_match("^[a-zA-Z0-9]+$^", $kennwort)){
		return 0;
	}else{
		return 1;
	}
}

//Länge des Kennwortes
function laenge_kennwort($kennwort){
	$range = range(6,12);
	if(!in_array(strlen($kennwort), $range)){
		return 0;
	}else{
		return 1;
	}
}

//E-Mail Adresse auf Richtigkeit überprüfen
function pruefe_email($email){
	if(!preg_match("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+\.([a-zA-Z0-9-]{2,4})+$^", $email)){
		return 0;
	}else{
		return 1;
	}
}

connect();
?>

nun zum fehler:
wenn ein fehler da ist dann sollte er ein neues div element einbinden über dem formular mit jeden einzelnen fehler...was er auch macht...nur wenn ich mich registrieren will und auf alles achte was ich vorgebe wie zeichen un länge usw. dann gibt der mir die div box aus aber ohne inhalt ausser natürlich dem satz bitte gehen sie die fehler durch...was ich nicht verstehe ist, dass immer wenn ein fehler auftritt dann sollte er diesen fehler auch ins array speichen.dieser code sagt das $error nicht gleich 0 ist, was ja heisst das in diesem array was drin ist, nur sagt er nicht was drin ist obwohl meine for schleife ihm sagt das er es ausgeben soll!!
 
Zuletzt bearbeitet:
ja wie gesagt dieser code sagt das $error nicht leer ist aber gibt mir gleichzeitig nicht den fehler aus. obwohl das unmöglich sein kann, da ich jeden fehler mit echo ins array speichere
 

Neue Beiträge

Zurück