Einzelnen Beitrag anzeigen
  #6  
Alt 28.08.2007, 15:19:17
webgoddess webgoddess ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 7
AW: Weiterleitung nach mysql_error()

Na wenn's nur das ist... warum sagt er das denn nicht. Ich dachte dass Weiterleitung von php-Seiten nach sql error eine Standardanwendung ist. Bin mir nicht sicher, ob mein Quelltext hier weiterhilft. Aber hier isser:
PHP-Code:
$eingabefehler false;
    
$author $_POST["author_add"];
    
$name $_POST["name"];
    
$email $_POST["email"];
    
$password $_POST["password"];
    
$password2 $_POST["password2"];
    
    if(isset(
$author)){
        include(
'account_add.php');
    }
    
    echo <<<HTMLCODE
        <h3>Neuen Familienaccount erstellen</h3>
        <form action="$PHP_SELF" method="POST">
        <input type="hidden" name="author_add" value="1">
        <table border="0" width="600">
        <tr>
        <td width="25%" align="left">Familienname:&nbsp;</td>
        <td width="75%"><input type="text" name="name" value="$name" size="20" maxlength="100"></td>        
        </tr>
        <tr>
        <td width="25%" align="left">Email:&nbsp;</td>
        <td width="75%"><input type="text" name="email" value="$email" size="20" maxlength="50">
        </td>        
        </tr>
        <tr>
        <td width="25%" align="left">Passwort:&nbsp;</td>
        <td width="75%"><input type="password" name="password" value="$password" size="20" maxlength="20">
        </td>        
        </tr>
        <td width="25%" align="left">Passwort wiederholen:&nbsp;</td>
        <td width="75%"><input type="password" name="password2" value="$password2" size="20" maxlength="20">
        </td>        
        </tr>
        <td width="25%" align="right">&nbsp;</td>
        <td width="75%"><input type="submit" name="submit" value="Account anlegen">
        </td>        
        </tr>
        </table>
        </form>; 
Das ist die Datei mit dem Formular. Wenn das Formular abgeschickt wird, und author gesetzt ist, wird account_add.php aufgerufen.

Die siht so aus
PHP-Code:
//vorher sind Abfragen leere Felder usw. Wenn alles ausgefüllt ist kommt
if($eingabefehler == false)
{    
     
$name htmlentities($name);
     
$email htmlentities($email);
     
$password htmlentities($password);
     
$sql "INSERT INTO familie VALUES (0, '$name', '$email', '$password')";
    
mysql_query($sql) or die ("Insert-Fehler: " mysql_error());
    unset(
$author_add$name$email$password$password2);
    echo 
"<meta http-equiv='refresh' content='1;URL=member_new.php?name=$name'>";

Funktioniert auch einwandfrei. Wenn aber die übergebene Email schon in DB vorhanden ist (Feld ist Unique) bekomme ich die Fehlermeldung:
Zitat:
Insert-Fehler: Duplicate entry 'k@w.de' for key 2
Das ist auch noch richtig.
Jetzt das Problem. Ich möchte nicht dass der User, dem das passiert auf der Seite mit der Fehlermeldung hängen bleibt, sondern dass die Seite nach Erscheinen der Fehlermeldung wieder zurück auf die Formularseite umgeleitet wird.
Hoffe ich konnte das einigermaßen erklären.
Gibt's da irgendein Standardbefehl in PHP oder Mysql? Ich kenne leider keinen.
Gruß webgoddess
Mit Zitat antworten