Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Funktion [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Funktion


 
kerbstone
04-05-2006, 15:28 
 
Ich habe eine kleine Funktion geschrieben, mit der ich
User registrieren lassen möchte.
Allerdings wird trotz Prüfung, ob ein Username schon
vorhanden ist, die Funktion immer erfolgreich ausgegeben.
Meine Fehlerausgabe steht auf error_reporting(E_ALL);
und die SQL-Query hat mysql_error(); angehangen bekommen,
aber es erscheint keinerlei Meldung.

Meine Funktion sieht so aus:

if (isset($_POST['action']) && $_POST['action']=='register')
{
$username = (isset($_POST['username'])) ? $_POST['username'] : '';
$password = (isset($_POST['password'])) ? $_POST['password'] : '';
$email = (isset($_POST['email'])) ? $_POST['email'] : '';
RegisterUser ($username, $password, $email);
}

function RegisterUser ($username, $password, $email) {
$result = mysql_query("SELECT id,username,email FROM user
WHERE username='$username' OR email='$email'") or mysql_error();
$row = mysql_fetch_array($result);

if ( mysql_num_rows($result) == 1 )
{
header("Location: index.php?action=signup&status=failed");
}
else
{
header("Location: index.php?action=signup&status=okay");
}
}


Fällt jemandem auf, warum bei einem doppeltem Usernamen
keine Weiterleitung zu failed stattfindet?

 
Alrik
04-05-2006, 15:45 
 
Hi,

Vielleicht hilft es, wenn du die Variablen richtig aus dem String nimmst.

$result = mysql_query("SELECT id,username,email FROM user
WHERE username='".$username."' OR email='".$email."'") or mysql_error();


Und lass dir username und email einmal ausgeben!

Gruß Thomas

 
Quetschi
04-05-2006, 15:50 
 
und mach zusätzlich mal var_dump($row);ich glaub irgendwie, dass du evtl. mehr als einen Datensatz zurückkriegst und dein if entsprechend schaltet.

 
kerbstone
04-05-2006, 15:56 
 
Danke für die schnellen Antworten :)

Woran es letztlich lag war, dass ich die Spalte Email noch nicht
in der MySQL Tabelle erstellt hatte.
Dies habe ich herausbekommen, indem ich mir meine
Variablen auslesen lies. Dies geschah jedoch nicht, da vorher
ein row Fehler kam.

Nochmals danke für die Hilfe.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:50 Uhr.