Mailinglisten-Archive |
Hallo
> >Du musst erst mit einer Schleife die Ergebniszeilen aus deiner query
> >rausholen.
> Ich habe es jetzt mal so versucht:
[...]
> kann es sein, das ich dich missverstanden habe ?
Da der erste if-Teil ja nur max. einmal erfüllt ist, wird der else-Zweig immer
wieder ausgeführt und du erhälst diese Ausgabe eben x-mal.
Wie wärs denn damit:
include("lib/mysql.inc.php");
$abfrage = "
SELECT benutzername
FROM user
WHERE benutzername = $_POST[benutzername]";
$ergebnis = mysql_query($abfrage);
if (!mysql_num_rows($ergebnis)) {
$passwort = md5($passwort);
$eintrag = "INSERT INTO `user` (`benutzername`, `passwort`, `email`,
`geburtstag`, `wohnort`, `icq`, `msn`, `homepage`) VALUES
('$_POST[benutzername]', '$passwort', '$_POST[email]', '$_POST[geburtstag]',
'$wohnort', '$icq', '$msn', '$homepage')";
$eintragen = mysql_query($eintrag);
echo "Du wurdest erfolgreich registriert!";
} else {
echo 'Der Benutzernamen '.$_POST[benutzername].' ist bereits vergeben.';
echo 'Wähle bitte einen anderen Namen.<br>Zurück';
}
Übrigens sollte man, um Probleme mit Sonderzeichen zu vermeiden, die
eingegebenen Daten Escapen.
$eintrag = "
INSERT INTO `user`
(`benutzername`, `passwort`, `email`, `geburtstag`, `wohnort`, `icq`, `msn`,
`homepage`)
VALUES (addslashes($_POST[benutzername]), '$passwort',
addslashes($_POST[email]), addslashes($_POST[geburtstag]), ... usw.
Nach dem Auslesen der Werte ist dann auf die ausgelesenen Werte ein
stripslashes() anzuwenden.
--
Koala
php::bar PHP Wiki - Listenarchive