regististrierungs problem ... need help

Status
Nicht offen für weitere Antworten.

Murphy_A

Grünschnabel
hi ... vllt. könnt ihr mir ja helfen ... verzeifel schon voll... meine finger sind schon blau gegooglt... komme einfach nicht weiter =(

hier mein code zu registrieren :
PHP:
<?php 

    include_once 'system/mysql.inc.php';
    include_once 'system/function.inc.php';


if(!$_POST['register']) {

eval ("dooutput(\"".gettemplate("register")."\");");

} else {

$error = "";
if (empty($_POST['username']) || empty($_POST['email'])) {
$error .= "<br>Es muessen beide Felder ausgefüllt werden";
}
if (!eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}",$_POST['email'])) {
$error .= "<br>Die Email Adresse ist nicht korrekt";
}

mysql_select_db("$db_name");
$check_name = mysql_query("SELECT COUNT(*) AS total FROM $usr WHERE name= '".$_POST['username']."'");


list ($total) = mysql_fetch_row($check_name) or die(mysql_error());

if ($total != "0") {
$error .= "<br>Den Benutzernamen gibt es schon";
}

if ($error != "") {
echo $error;

} else {

$reg_pw = "";
settype($reg_pw, "string");
$reg_pw = chr(rand(97,122));
$reg_pw .= chr(rand(97,122));
$reg_pw .= chr(rand(48,57 ));
$reg_pw .= chr(rand(97,122));
$reg_pw .= chr(rand(97,122));
$reg_pw .= chr(rand(48,57 ));
$reg_pw .= chr(rand(97,122));
$reg_pw .= chr(rand(97,122));

mysql_query("INSERT INTO $usr (id, name, pwd, email, flogged) 
VALUES('', '".$_POST['name']."', '$reg_pw', '".$_POST['email']."',' ')");

$content = "Zugangsdaten:\n Name: ".$_POST['name']." \n Password: $reg_pw ";
$betreff = "Ihre Zugangsdaten";
$empfaenger = $_POST['email'];
$extras = "From: webmaster@test.de";

mail($empfaenger, $betreff, $content, $extras);

echo "Erfolgreich Registriert. Es wurde eine Email mit den Zugangsdaten geschickt.";
}
}
?>

und das gibt er mir aus

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in J:\xampp\xampp\htdocs\tmpsystem\register.php on line 25
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE name= ''' at line 1

danke im vorraus =D
 

Dr Dau

ich wisch hier durch
Hallo!

$_POST['username'] wird aber übergeben?

Und so?
PHP:
$check_name = mysql_query("SELECT COUNT(*) AS `total` FROM `".$usr."` WHERE `name`= '".mysql_real_escape_string($_POST['username'])."'");
Gruss Dr Dau
 

Murphy_A

Grünschnabel
danke für deine antwort aber der fehler lag an der difinition von $usr =/ aber das war ja klar ...

wegen dem fehler
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in J:\xampp\xampp\htdocs\tmpsystem\register.php on line 25

damit war diese zeile gemeint


list ($total) = mysql_fetch_row($check_name) or die(mysql_error());

ein @ wirkt da wahre wunder


list ($total) = @mysql_fetch_row($check_name) or die(mysql_error());

jetzt funktioniert alles ...

aber eins möchte ich noch frage ich möchte gerne das registrierung datum+zeit in der mysql speichern ..

kann mir jemand sagen wie ich das machen muss ?

wäre nett danke !



 

RS9999

Erfahrenes Mitglied
Arbeite am besten mit der Funktion "time()".
Diese gibt den aktuellen UNIX-Zeitstempel zurück.
Diesen kannst Du später beim auslesen der Daten
dann auch wieder einfach weiter verarbeiten.
 
Zuletzt bearbeitet:

Murphy_A

Grünschnabel
time() hört sich gut an aber wie soll die spalte sein und welche attribute soll die bekommen ....

und mit welchen befehl kann ich dann time() in der datenbank speichern ?
 

Irgendjemand_1

Erfahrenes Mitglied
Murphy_A hat gesagt.:
danke für deine antwort aber der fehler lag an der difinition von $usr =/ aber das war ja klar ...

wegen dem fehler


damit war diese zeile gemeint




ein @ wirkt da wahre wunder




jetzt funktioniert alles ...

aber eins möchte ich noch frage ich möchte gerne das registrierung datum+zeit in der mysql speichern ..

kann mir jemand sagen wie ich das machen muss ?

wäre nett danke !


Ähm, ein @ unterdrückt nur die Fehlermeldung, der Fehler besteht weiterhin.
Und es stimmt, dass sich die Fehlermeldung auf die von dir gepostete Zeile bezieht, jedoch solltest du bedenken, dass der Fehlerursprung nicht dort ist. Die Funktion mysql_fetch_row hat ein ungültiges Argument, das heißt, der Fehler liegt im mysql_query.
Das MySQL-Query sollte jetzt eigentlich gar nichts zurückgeben, sofern du den Fehler nicht ordentlich beseitigst. Deswegen zweifle ich mal stark an, dass jetzt alles klappt, nur weil du die Fehlermeldung unterdrückst ...
 

Murphy_A

Grünschnabel
naja @ hin oder her bei mir speichert er jetzt alles so wie es sein sollte er generiert ein passwort und speicher denn wert auch da ab wo es sein sollte ....

jetzt besteht nur ein problem mit der speicherung des registrierungs zeitpunkt :confused:
 

Irgendjemand_1

Erfahrenes Mitglied
Naja gut, dann funktionierts halt *immer noch skeptisch :D*

Jedenfalls zum time-Problem:
Wie schon gesagt, benutze die funktion time().
Und die Spalte sollte vom Typ her int sein (je nach Anforderungen an die time-spalte, kann man auch den typ TIMESTAMP oder gleich ein Datum (DATE) benutzen, aber hier ist int eindeutig am Besten).
 

RS9999

Erfahrenes Mitglied
Beispiel zum speichern in die Datenbank.

PHP:
<?php 

     $sql = 'INSERT 
                   INTO 
                        `deine_tabelle` 
                   SET
                        `time` = "'.time().'"
            ';
            
?>
Irgendjemand_1 hat Recht, Du solltest den Fehler unbedingt analysieren und korrigieren.
 

Irgendjemand_1

Erfahrenes Mitglied
RS9999 hat gesagt.:
Beispiel zum speichern in die Datenbank.

PHP:
<?php 

     $sql = 'INSERT 
                   INTO 
                        `deine_tabelle` 
                   SET
                        `time` = "'.time().'"
            ';
            
?>
Irgendjemand_1 hat Recht, Du solltest den Fehler unbedingt analysieren und korrigieren.
Find ich auch :) Aber er scheint den Fehler jedenfalls irgendwie korrigiert zu haben, sonst würde es ja nicht funktionieren.
Allerdings stimme ich mit deinem Query nicht überein ;)
Du hast da wohl grad UPDATE und INSERT etwas gemixt :D
 
Status
Nicht offen für weitere Antworten.