Registrierungsformular+mysql eintrag wird nicht angesprochen

xlanhackerx

Mitglied
Hallo liebe Community.
Ich arbeite im Moment an einem Regestrierungsformular welches ich mit index.php?action=register aufrufe. Ich hatte erst im form tag
PHP:
<?php echo $_SERVER['PHP_SELF']; ?>
stehen, allerdings bin ich dann komischerweise auf die index.php weitergeleitet worden, obwohl das ja eigentlich nicht passieren darf.
Naja und nun verwende ich den gleichen Pfad wie die URL die ich aufrufe um das formular zu starten !!
Hier mein Regestrierungsscript, welches eigentlich auch funktioniert, jedoch schreibt er anscheinend nicht in die Datenbank, es kommt immer " Fehler beim Anlegen ihres Benutzerkontos." was ich irgentwie nicht verstehen kann. Vielleicht könnt ihr ja mal drüber schauen !!

PHP:
<center>
<table border="0" cellpadding="0" cellspacing="0">
<?php
 // Aufbau der Datenbankverbindung 
$connectionid  = mysql_connect ("localhost", "XXXXX", "XXXX"); 
if (!mysql_select_db ("XXXX", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 
// Session starten
session_start();

// Variablen initialisieren
$NameFehler = $EmailFehler = $passwortFehler = $CaptchaFehler = FALSE;
$Fehlerfrei = TRUE;
$Nickname  = trim($_POST['name']); 
$Kennwort  = trim($_POST['passwort']); 
$email  =    trim($_POST['email']); 

// Formular wurde abgeschickt
if (isset( $_POST['senden'] ))
{
	// Felder auf Inhalt pruefen
	if (strlen( trim( $_POST['name'] ) ) < 3)
	{
		$Fehlerfrei = FALSE;
		$NameFehler = TRUE;
	}
	if (strlen( trim( $_POST['email'] ) ) < 3)
	{
		$Fehlerfrei = FALSE;
		$EmailFehler = TRUE;
	}
	if (strlen( trim( $_POST['passwort'] ) ) < 3)
	{
		$Fehlerfrei = FALSE;
		$passwortFehler = TRUE;
	}
	if (md5( $_POST['sicherheitscode'] ) != $_SESSION['captcha_code'])
	{
		$Fehlerfrei = FALSE;
		$CaptchaFehler = TRUE;
	}
	$sql1 = "SELECT Nickname FROM benutzerdaten WHERE Nickname = '$Nickname'";
	mysql_query ($sql1); 

  if (mysql_affected_rows ($connectionid) > 0) 
  {  
		echo '<tr>';
		echo '<td>Es ist bereits ein anderer Benutzer mit diesem Nickname registriert.</td>';
		echo '</tr>';
	}
	$sql2 = "SELECT email FROM benutzerdaten WHERE email = '$email'";
	mysql_query ($sql3); 

  if (mysql_affected_rows ($connectionid) > 0) 
  {  
	    echo '<tr>';
		echo '<td>Es ist bereits ein anderer Benutzer mit dieser E-Mail Adresse registriert.</td>';
		echo '</tr>';
	}
	
	// Wenn alle Felder ausgefuellt wurden und der CAPTCHA-Code korrekt war
	if ($Fehlerfrei)
	{
	// Zufallszahl generieren für AktivierungsCode
	$i=0;
		while($i < 30)
		{
			$i++;
			$zufallszahl .= rand(0,9);
		}
	 $sql3 = "INSERT INTO benutzerdaten 
	 (email,Nickname,Kennwort,Code,Aktiviert,regdate) VALUES ('".$email."','".$Nickname."','".md5 ($Kennwort)."','".$zufallszahl."','N','".time()."')";  
  mysql_query ($sql3); 

  if (mysql_affected_rows ($connectionid) > 0) 
  {  
    echo "Sie wurden erfolgreich angelegt.<br>";
       
    } 
  else 
  { 
   echo '<span style="color:#F00">Fehler beim Anlegen ihres Benutzerkontos.<br></span>'; 
  } 
	}
	}
?>
<tr>
<td align="center"><h3>Regestrierungsformular</h3></td>
</tr>
<tr><td>&nbsp;</td></tr>
</tr>
<form id="kontaktformular" action="index.php?action=register" method="post">
<tr>
<td><?php echo $NameFehler ? '<span style="color: #FF0000;">Ihr Name:</span>' : 'Ihr Name:'; ?></td>
<td><input name="name" id="name" type="text" value="<?php echo $_POST['name']; ?>" /></td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td> <?php echo $EmailFehler ? '<span style="color: #FF0000;">Ihre Email:</span>' : 'Ihre Email:'; ?></td>
<td><input name="email" id="email" type="text" value="<?php echo $_POST['email']; ?>" /> </td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td><?php echo $passwortFehler ? '<span style="color: #FF0000;">Ihr Passwort:</span>' : 'Ihr Passwort:'; ?></td>
<td><input name="passwort" id="passwort" type="password" value="<?php echo $_POST['passwort']; ?>" /> </td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>Sicherheitsgrafik:</td>
<td align="center"><img src="content/captcha/captcha.php" alt="Sicherheitscode" title="Sicherheitscode" width="80" height="25" /></td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td><?php echo $CaptchaFehler ? '<span style="color: #FF0000;">Sicherheitscode eingeben:</span>' : 'Sicherheitscode eingeben:'; ?></td>
<td><input name="sicherheitscode" id="sicherheitscode" type="text" /></td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>&nbsp;</td>
<td align="center"><input name="senden" id="senden" type="submit" value="Absenden" class="button" /></td>
	</tr>
</form>

</table>
</center>

Danke schonmal..

Mfg. Oliver
 
Hi,

mach mal aus dem mysql_query($sql3); ein mysql_query($sql3) or die(mysql_error() . "<br/>" . $sql3);
Dann sieht man auch, was schiefläuft.
Außerdem prüfst Du weiter oben nach SELECTs mit mysql_affected_rows auf Treffer. Das ist falsch. Bei einem Select musst Du das Ergebnis speichern, z.B. in $result und mit mysql_num_rows($result) die Anzahl Treffer abfragen.

LG
 
Ok danke das hat mir sehr geholfen, ich habe die mysql abfrage wie folgt geändert:
PHP:
}
	$sql1 = "SELECT Nickname FROM benutzerdaten WHERE Nickname = '$Nickname'";
	$result1 = mysql_query($sql1);
	if(mysql_num_rows($result1) > 0)
	{
		echo '<tr>';
		echo '<td>Es ist bereits ein anderer Benutzer mit diesem Nickname registriert.</td>';
		echo '</tr>';
	}
	$sql2 = "SELECT email FROM benutzerdaten WHERE email = '$email'";
	$result2 = mysql_query($sql2);
	if(mysql_num_rows($result2) > 0)
	
  {  
	    echo '<tr>';
		echo '<td>Es ist bereits ein anderer Benutzer mit dieser E-Mail Adresse registriert.</td>';
		echo '</tr>';
	}

Sowie mit der Errormeldung festgestellt das ich ein komplett falsches wort verwendet habe. Anstatt dem alten Code muss aktivierungscode stehen. Nagut jetzt funktioniert auch alles wunderbar !!

Danke nocheinmal

Mfg. Oliver
 

Neue Beiträge

Zurück