Fehler suchen - Registrierung

oldputz1990

Erfahrenes Mitglied
Hallo!

Ich habe jetzt ein ziemlich großer Registrations Script geschrieben.....

Normalerweise sind meine Scripts überhaupt nicht geordnet!

Aber dieses Script ist sogar von der Form sehr schön.


Wenn ich das Script verwende, wird kein Fehler ausgeben aber in die Datenbank werden die Daten auch nicht eingetragen.

Ich suche jetzt sicher schon sein 1/2 Stunde... :mad::mad:

Ich würde auch bitten, dass ihr mal einen Blick darüberwerft.

DANKE!

PHP:
<!--- Erstellung der Datei: 2007-06-22 13:55 --->
<h1>Registrierung</h1>

<?php

error_reporting(E_ERROR);

include('connect.inc.php');

// Auswertung

if(isset($_POST['submit'])){

$error_gesamt1 = 1;
$error_gesamt2 = 1;

//Variablen
$benutzername = 	strip_tags(	mysql_real_escape_string($_POST['benutzername']));
$vorname = 			strip_tags(	mysql_real_escape_string($_POST['vorname']));
$nachname = 		strip_tags(	mysql_real_escape_string($_POST['nachname']));
$tag = 				strip_tags(	mysql_real_escape_string($_POST['tag']));
$monat = 			strip_tags(	mysql_real_escape_string($_POST['monat']));
$jahr = 			strip_tags(	mysql_real_escape_string($_POST['jahr']));
$email = 			strip_tags(	mysql_real_escape_string($_POST['email']));
$icq = 				strip_tags(	mysql_real_escape_string($_POST['icq']));
$gtalk = 			strip_tags(	mysql_real_escape_string($_POST['gtalk']));
$homepage = 		strip_tags(	mysql_real_escape_string($_POST['homepage']));
$wohnort = 			strip_tags(	mysql_real_escape_string($_POST['wohnort']));
$geschlecht = 					mysql_real_escape_string($_POST['geschlecht']);
$passwort1 = 					mysql_real_escape_string($_POST['passwort']);
$passwort2 = 					mysql_real_escape_string($_POST['passwort2']);
$mobiltelefon1 = 	strip_tags(	mysql_real_escape_string($_POST['mobiltelefon1']));
$mobiltelefon2 = 	strip_tags(	mysql_real_escape_string($_POST['mobiltelefon2']));
$mobilsichtbar = 				mysql_real_escape_string($_POST['mobilsichtbar']);

$passwort_md5 = md5($passwort1);

$time = time();

//Error Verablen
if(empty($benutzername)) 			{ $error_benutzername = 1; } 	else { 	$error_benutzername = 0; }
if(empty($vorname)) 				{ $error_vorname = 1; } 		else { 	$error_vorname = 0; }
if(empty($nachname)) 				{ $error_nachname = 1; } 		else { 	$error_nachname = 0; }
if(empty($jahr) OR $jahr < 1900) 	{ $error_jahr = 1; } 			else { 	$error_jahr = 0; }
if(empty($email)) 					{ $error_email = 1; } 			else { 	$error_email = 0; }
if($geschlecht == '-') 				{ $error_geschlecht = 1; } 		else { 	$error_geschlecht = 0; }
if(empty($passwort1)) 				{ $error_passwort1 = 1; } 		else { 	$error_passwort1 = 0; }
if(empty($passwort2)) 				{ $error_passwort2 = 1; } 		else { 	$error_passwort2 = 0; }
if (!ereg("^.+@.+\\..+$", $email))	{ $error_email2 = 1; } 			else { 	$error_email2 = 0; } 
if($passwort1 !== $passwort2) 		{ $error_passwort = 1;} 		else {	$error_passwort = 0; }

//Überprüfen ob alle Pflichtfelder ausgefüllt worden sind
if(	$error_benutzername + 
	$error_vorname + 
	$error_nachname + 
	$error_jahr + 
	$error_email + 
	$error_geschlecht + 
	$error_passwort1 + 
	$error_passwort2 == 0)
	
	{
	// Alles in Ordnung!
		$error_gesamt1 == 0;
	}
	else
	{
	// Fehlermeldung ausgeben
		echo '<b>Bitte alle Pflichtfelder ausfüllen!</b><br>';
	}
	
	if($error_email2 == 1)
		{
			echo '<b>Bitte korrekte Email Adresse eingeben!</b><br>';
		}
	
	if($error_passwort == 1)
		{
			echo '<b>Die eingegbenen Passörter stimmen nicht überein!</b><br>';
		}
	
if($error_email2 == 0 AND $error_passwort == 0)
	{
		$error_gesamt2 == 0;
	}
	
	
	if($error_gesamt1 + $error_gesamt2 == 0)
		{
			// --> ALLES IN ORDNUNG --> IN DATENBANK EINTRAGEN
			
			$insert = mysql_query("INSERT INTO `benutzer` 
			(`benutzername`, `vorname`, `nachname`, `tag`, `monat`, `jahr`, `email`, `icq`, `gtalk`, `homepage`, 
			`wohnort`, `geschlecht`, `passwort`, `mobiltelefon1`, `mobiltelefon2`, `mobilsichtbar`, `about`, `time`, `gesperrt`, `aktiviert`, `status`)
			
			VALUES
			
			('$benutzername', '$vorname', '$nachname', '$tag', '$monat', '$jahr', '$email', '$icq', '$gtalk', '$homepage', '$wohnort', '$geschlecht',
			'$passwort_md5', '$mobiltelefon1', '$mobiltelefon2', '$mobilsichtbar', ' ', '$time', '0', '1', '1')")
			
			OR DIE(mysql_error());
			
			if($insert == true)
				{
					echo '<b>Daten wurde erfolgreich übernommen!</b>';
				}
				else
				{
					echo '<b>Es ist ein Fehler aufgetreten!</b>';
				}
			
		}

}

?>



<form action="" method="post">
  <table align="center" cellpadding="5">
    <tr>
      <td>
        <b>Benutzername: *</b>
      </td>
      <td>
        <input type="text" <?php if($error_benutzername == 1){ echo 'class="error_feld"'; } ?> name="benutzername" size="30" value="<?php echo $_POST['benutzername']; ?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>Vorname: *</b>
      </td>
      <td>
        <input type="text" <?php if($error_vorname == 1){ echo 'class="error_feld"'; } ?> name="vorname" size="30" value="<?php echo $_POST['vorname']; ?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>Nachname: *</b>
      </td>
      <td>
        <input type="text" <?php if($error_nachname == 1){ echo 'class="error_feld"'; } ?> name="nachname" size="30" value="<?php echo $_POST['nachname']; ?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>Passwort: *</b>
      </td>
      <td>
        <input type="password" <?php if($error_passwort1 == 1){ echo 'class="error_feld"'; } ?> name="passwort" size="30">
      </td>
    </tr>
    <tr>
      <td>
        <b>Passwort wiederholen: *</b>
      </td>
      <td>
        <input type="password" <?php if($error_passwort2 == 1){ echo 'class="error_feld"'; } ?> name="passwort2" size="30">
      </td>
    </tr>
    <tr>
      <td>
        <b>Geschlecht: *</b>
      </td>
      <td>
        <select name="geschlecht" <?php if($error_geschlecht == 1){ echo 'class="error_feld"'; } ?>>
          <option value="-">Bitte Auswählen</option>
          <option value="m" <?php if($_POST['geschlecht'] == 'm'){ echo 'selected'; } ?>>Männlich</option>
          <option value="w" <?php if($_POST['geschlecht'] == 'w'){ echo 'selected'; } ?>>Weiblich</option>
        </select>
      </td>
    </tr>   
    <tr> 
      <td>
        <b>Geburtsdatum: *</b>
      </td>
      <td> 
        <select name="tag"> 
          <option value="01" <?php if($_POST['tag'] == 01){ echo 'selected'; } ?>>1</option>
          <option value="02" <?php if($_POST['tag'] == 02){ echo 'selected'; } ?>>2</option>
          <option value="03" <?php if($_POST['tag'] == 03){ echo 'selected'; } ?>>3</option>

          <option value="04" <?php if($_POST['tag'] == 04){ echo 'selected'; } ?>>4</option>
          <option value="05" <?php if($_POST['tag'] == 05){ echo 'selected'; } ?>>5</option>
          <option value="06" <?php if($_POST['tag'] == 06){ echo 'selected'; } ?>>6</option>
          <option value="07" <?php if($_POST['tag'] == 07){ echo 'selected'; } ?>>7</option>
          <option value="08" <?php if($_POST['tag'] == 08){ echo 'selected'; } ?>>8</option>
          <option value="09" <?php if($_POST['tag'] == 09){ echo 'selected'; } ?>>9</option>

          <option value="10" <?php if($_POST['tag'] == 10){ echo 'selected'; } ?>>10</option>
          <option value="11" <?php if($_POST['tag'] == 11){ echo 'selected'; } ?>>11</option>
          <option value="12" <?php if($_POST['tag'] == 12){ echo 'selected'; } ?>>12</option>
          <option value="13" <?php if($_POST['tag'] == 13){ echo 'selected'; } ?>>13</option>
          <option value="14" <?php if($_POST['tag'] == 14){ echo 'selected'; } ?>>14</option>
          <option value="15" <?php if($_POST['tag'] == 15){ echo 'selected'; } ?>>15</option>

          <option value="16" <?php if($_POST['tag'] == 16){ echo 'selected'; } ?>>16</option>
          <option value="17" <?php if($_POST['tag'] == 17){ echo 'selected'; } ?>>17</option>
          <option value="18" <?php if($_POST['tag'] == 18){ echo 'selected'; } ?>>18</option>
          <option value="19" <?php if($_POST['tag'] == 19){ echo 'selected'; } ?>>19</option>
          <option value="20" <?php if($_POST['tag'] == 20){ echo 'selected'; } ?>>20</option>
          <option value="21" <?php if($_POST['tag'] == 21){ echo 'selected'; } ?>>21</option>

          <option value="22" <?php if($_POST['tag'] == 22){ echo 'selected'; } ?>>22</option>
          <option value="23" <?php if($_POST['tag'] == 23){ echo 'selected'; } ?>>23</option>
          <option value="24" <?php if($_POST['tag'] == 24){ echo 'selected'; } ?>>24</option>
          <option value="25" <?php if($_POST['tag'] == 25){ echo 'selected'; } ?>>25</option>
          <option value="26" <?php if($_POST['tag'] == 26){ echo 'selected'; } ?>>26</option>
          <option value="27" <?php if($_POST['tag'] == 27){ echo 'selected'; } ?>>27</option>

          <option value="28" <?php if($_POST['tag'] == 28){ echo 'selected'; } ?>>28</option>
          <option value="29" <?php if($_POST['tag'] == 29){ echo 'selected'; } ?>>29</option>
          <option value="30" <?php if($_POST['tag'] == 30){ echo 'selected'; } ?>>30</option>
          <option value="31" <?php if($_POST['tag'] == 31){ echo 'selected'; } ?>>31</option>
        </select>

        <select name="monat">

          <option value="01" <?php if($_POST['monat'] == 01){ echo 'selected'; } ?>>Januar</option>
          <option value="02" <?php if($_POST['monat'] == 02){ echo 'selected'; } ?>>Februar</option>
          <option value="03" <?php if($_POST['monat'] == 03){ echo 'selected'; } ?>>März</option>
          <option value="04" <?php if($_POST['monat'] == 04){ echo 'selected'; } ?>>April</option>
          <option value="05" <?php if($_POST['monat'] == 05){ echo 'selected'; } ?>>Mai</option>
          <option value="06" <?php if($_POST['monat'] == 06){ echo 'selected'; } ?>>Juni</option>

          <option value="07" <?php if($_POST['monat'] == 07){ echo 'selected'; } ?>>Juli</option>
          <option value="08" <?php if($_POST['monat'] == 08){ echo 'selected'; } ?>>August</option>
          <option value="09" <?php if($_POST['monat'] == 09){ echo 'selected'; } ?>>September</option>
          <option value="10" <?php if($_POST['monat'] == 10){ echo 'selected'; } ?>>Oktober</option>
          <option value="11" <?php if($_POST['monat'] == 11){ echo 'selected'; } ?>>November</option>
          <option value="12" <?php if($_POST['monat'] == 12){ echo 'selected'; } ?>>Dezember</option>

        </select>

        <input type="text" <?php if($error_jahr == 1){ echo 'class="error_feld"'; } ?> name="jahr" size="4" maxlength="4" value="<?php if(isset($_POST['jahr'])){ echo $_POST['jahr']; } else{ echo '19';}?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>E-Mail Adresse: *</b>
      </td>
      <td>
        <input type="text" <?php if($error_email == 1){ echo 'class="error_feld"'; } ?> name="email" size="40" value="<?php echo $_POST['email']; ?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>ICQ:</b>
      </td>
      <td>
        <input type="text" name="icq" size="10" value="<?php echo $_POST['icq']; ?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>Google-Talk:</b>
      </td>
      <td>
        <input type="text" name="gtalk" size="30" value="<?php echo $_POST['gtalk']; ?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>Homepage:</b>
      </td>
      <td>
        <input type="text" name="homepage" size="30" value="<?php if(isset($_POST['homepage'])){ echo $_POST['homepage']; } else{ echo 'http://'; } ?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>Wohnort:</b>
      </td>
      <td>
        <input type="text" name="wohnort" size="30" value="<?php echo $_POST['wohnort']; ?>">
      </td>
    </tr>
    <tr>
      <td>
        <b>Mobiltelefon:</b>
      </td>
      <td>
        <input type="text" name="mobiltelefon1" size="3" value="<?php echo $_POST['mobiltelefon1']; ?>">&nbsp;<input type="text" name="mobiltelefon2" szie="10" value="<?php echo $_POST['mobiltelefon2']; ?>">
      </td>
    </tr> 
    <tr>
      <td>
        <b>Mobiltelefon <br>für andere <br>Benutzer sichtbar:</b>
      </td>
      <td>
        <input type="radio" name="mobilsichtbar" value="ja">Ja<br>
        <input type="radio" name="mobilsichtbar" value="nein">Nein<br>
      </td>
    </tr>
    <tr>
      <td>
         * Pflichtfelder
      </td>
      <td>
        <input type="submit" name="submit" value="Speichern">
      </td>
    </tr>
  </table>
</form>

http://nopaste.easy-coding.de/922
 
Vermutlich sind die beiden Vergleiche („$error_gesamt1 == 0 und „$error_gesamt2 == 0“) daran schuld, die eigentlich Zuweisungen sein sollte.
 
Gumbo meint das:

PHP:
if(    $error_benutzername +  
    $error_vorname +  
    $error_nachname +  
    $error_jahr +  
    $error_email +  
    $error_geschlecht +  
    $error_passwort1 +  
    $error_passwort2 == 0) 
     
    { 
    // Alles in Ordnung! 
        $error_gesamt1 == 0; 
    }

Bei "Alles in Ordnung" machst du ein ==, was eigentlich die Prüfung auf Wahrheitsgehalt ist (is-equal-Operator), während eine Zuweisung so geht:

$error_gesamt = 0;

Das hast du insgesamt zwei mal gemacht.
 
Gumbo sagt das folgende Teile falsch sind:

PHP:
{
    // Alles in Ordnung!
        $error_gesamt1 == 0;
    }
PHP:
if($error_email2 == 0 AND $error_passwort == 0)
    {
        $error_gesamt2 == 0;
    }

Zwei == stellen einen Vergleich da, der true oder false zurückliefert.
Du willst aber zuweisen und da verwendet man nur ein =.
 
Zwei == stellen einen Vergleich da, der true oder false zurückliefert.
Du willst aber zuweisen und da verwendet man nur ein =.

Das ist so nicht ganz richtig. Grundsätzlich liefert folgendes auch ein true zurück:

PHP:
if($a = 1) {
  echo "blub";
}


Das interessante ist, das dort immer ein true zurück geliefert wird, weil eine Zuweisung eines Wertes zu einer Variablen in PHP immer erfolgreich ist.

Von Readonly-Variablen hab ich noch nichts gelesen, kann mich aber auch irren.
 
Das ist so nicht ganz richtig. Grundsätzlich liefert folgendes auch ein true zurück:

PHP:
if($a = 1) {
  echo "blub";
}

Habe ich auch nicht bezweifelt ;)
Deshalb war das was ich sagste schon korrekt.

Übrigens liegt das an dem (manchmal nützlichem) dynamischem Typecasting von PHP.

Folgende Zuweisung liefert false.

PHP:
if( (int) $a = "string" === true) echo "true";
else echo "false";
 
:offtopic:

Was mir grad auffällt:

PHP:
<?php

if( ((int) $a = "string") === false) echo "false";
else echo "true";
?>

Liefert "true" zurück.
Anscheinend gibt eine Zuweisung kein boolean false zurück?
Es kommt nur 0 oder 1 zurück, wobei nur die 1 als boolean true akzeptiert wird.
Warum die 0 nicht?
 
Zuletzt bearbeitet:
Zurück