Registrierung Problem x.x

  • [FONT="Arial"][COLOR="DeepSkyBlue"][SIZE="2"]Hallo M-core

    Ich versuche seit zwei Tagen vergeblich in mein Register Script E-Mail und Geburtsdatum einzubauen , naja es ist drin aber es wird nichts in den Mysql Tabeln eingetragen auser
    User Passwort und welches AccLevel er hat . Ich bin mit mein wissen am Ende.
    Ich hoffe ihr könnt mir helfen.

    Hier ist der PhP Code:

    PHP
    <?phpif (isset($_POST['submit'])) {    if (!$_POST['pass1'] == $_POST['pass2']) {        die("<h1>Registrierung Fehlgeschlagen</h1>Pass&ouml;rter stimmen nicht &uuml;berein.<br /><a href='javascript:history.back()'>ZUr&uuml;ck</a>");    }    include('includes/mysql.php');    $post_user = _mysql_ist_sicher($_POST['user']);    $post_pass = _mysql_ist_sicher($_POST['pass1']);    $post_pass = md5("DooM".$post_pass);    $Query = "SELECT * FROM user WHERE username = '$post_user' AND password = '$post_pass'";    $exec = mysql_query($Query) or die(mysql_error());    if (mysql_num_rows($exec) >=1) {        die('<h1>Registrierung fehlgeschlagen</h1>User '.$post_user.' existiert bereits.');    }    $date = Date("d.m.Y h:i");    $mail = "";    $bday = ("d.m.Y");    $Query = "INSERT INTO user VALUES ('','$post_user','$post_pass','$date','$mail','$bday','member')" ;    mysql_query($Query) or die(mysql_error());    echo '<h1>Registration komplett</h1>Registration komplett.<br />Du kannst dich nun einloggen.';}else {    echo'<table align="center">';    echo'<form action="reg.php" method="post">';    echo'<tr> ';    echo'<td>Accountname:</td> ';    echo'<td align="right"><input type="text" name="Username" /></td>   ';    echo'</tr> ';    echo'<tr> ';    echo'<td>Passwort:</td> ';    echo'<td align="right"><input type="password" name="pass1" /></td>   ';    echo'</tr> ';    echo'<tr> ';    echo'<td>Passwort wiederholen:</td> ';    echo'<td align="right"><input type="password" name="pass2" /></td>   ';    echo'</tr> ';    echo'<td>E-mail:</td> ';    echo'<td align="right"><input type="text" name="mail" /></td>   ';    echo'</tr> ';    echo'<td>Geburtsdatum:</td> ';    echo'<td align="right"><input type="text" name="bday" /></td>   ';    echo'</tr> ';    echo'<td><input  type="reset" value="Zur&uuml;cksetzen"/></td>';    echo'<td align="right"><input type="submit" name="submit" value="Registrieren"></td>';    echo'</tr>';    echo'</table>';}  ?>

    Mfg DooM[/SIZE][/COLOR][/FONT]

    [CENTER]

    Zitat

    Niveau wo bist du ?
    Captain Niveau, wir sinken!


    [/CENTER]

  • Hab jetzt leider keine Zeit.. aber du musst eig nur vorhandene scripts kopieren den inhalt ändern(also statt Accountname halt Email oder so) und dann noch den passenden php script der mit der Datenbank verbunden ist dazu anpassen(auch kopiert ) :o


    MFG

    [CENTER]


    [/CENTER]

  • Das Zauberwort heißt in diesem Falle, Fehlerbehandlung.
    Lass dir MySQL Errors ausgeben, PHP stellt hierfür eine nette Funktion bereit:
    PHP: mysql_error - Manual

    Noch ein paar Dinge, die dich selbst zum denken anregen sollen:
    1. mysql_ist_sicher xD - XSS nicht...
    2. Feldnamen kommen bei Queries generell in `` (bsp: `feldname`). Es kann sein, dass MySQL eine Funktion hat, die den selben Namen besitzt wie dein Feldname. In diesem Falle liegt MySQL`s Priorität bei der Funktion. Da sie aber in diesem Zusammenhang nichts anzufangen weiß, spuckt er Errors.
    3. Du übergibst als E-Mail einen leeren String
    4. Also Geburtstag übergibst du "d.m.Y". Wenns dir passt das alle User an "d.m.Y" Geburtstag haben, dann ist das okay :)

    Das sollte dich ne Weile beschäftigen =)
    ~Luna

  • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="3"] LuNa
    Nurmal so, das ist eh mein registerscript, das ich ihm überlassen ahbe.
    Verstehe nur nich, warum er soviel geändert hat, immerhin ging es ja bevor er es hatte.
    Hinzufügen ja, aber sonst so wie das jetzt aussieht habe ichs nich getan, allein schon die vielen echo() hintereinander für jede Zeile HTMl ein neues Echo >.<
    mysql_error() - nutze ich schon ewig, ist auch in diesem Script enthalten gewesen, laut Doom kommt kein error garnix.
    _mysql_ist_sicher() - XSS auch^^
    Dies ist lediglich eine selbstdefinierte Funktion meines Scripts, damit ich die absicherung ncih 10xxx mal schreiben muss.
    Wäre sonst zu umständlich.

    Geburtstag - er benutzt kein date, mehr is da nich xD
    Verstehe nich, was aus meinem Script geschehen ist.
    Feldnamen mache ich generell eig wenig in '', da mysql ja glaube keine funktion username() hat oder so^^
    Jedenfalls, ist imernoch mein Script, welches ich ihm zu nem Zweck gab, welchen weiß ich nimmer.
    Und es wurd verunstaltet >.<[/SIZE][/COLOR][/FONT]

  • Zitat

    mysql_ist_sicher() - XSS auch^^


    Okay sorry =) Der Funktionsname ist eben ein bisschen ungünstig gewählt.

    Zitat

    Feldnamen mache ich generell eig wenig in ''


    Solltest du dir aber angewöhnen =) Felder die `date` heißen (z.B.) braucht man desöfteren.

    ~Luna

  • [FONT="Arial"][COLOR="DeepSkyBlue"][SIZE="2"]

    Hab eigentlich nicht viel verändert!
    hab nur Tabele gemacht und Versucht nur E-mail und Geburtsdatum hinzu zufügen
    mehr habe ich da nicht gemacht Orginal habe ich noch x.x !!!!!.

    mfg DooM[/SIZE][/COLOR][/FONT]

    [CENTER]

    Zitat

    Niveau wo bist du ?
    Captain Niveau, wir sinken!


    [/CENTER]

  • [FONT="Comic Sans MS"][COLOR="DeepSkyBlue"][SIZE="3"]

    Zitat von Lunatic;111615

    Okay sorry =) Der Funktionsname ist eben ein bisschen ungünstig gewählt.


    Solltest du dir aber angewöhnen =) Felder die `date` heißen (z.B.) braucht man desöfteren.

    ~Luna


    is ja kein Problem =)
    Ja mit dem Funktionsnamen, da war ich noch unerfahren.
    Ausserdem hatte ich den Namen per Xfire mal bekommen und hattes mir halt auch eingerichtet^^
    Jedenfalls, mittlerweile programmiere (scripte) ich anders.
    Ich nutze für variablen gerne Namen wie $exec für ein mysql query zum ausführen oder auch mal $data, wenns ums verarbeiten geht.
    und auch so habe ich einiges anderes gemacht, von daher
    Mit den '' mal sehen, ich wähle meine felder eh immer komisch, zB createdate (what a f***) xD


    DooM
    das ganze is doch eig einfach, du änderst in meinen Seiten die es betrifft nur 2 kleine Dinge.
    Einmal die seite die das formular hat, da fügste 2 sachen und vergisst den "name" tag nich (Häufiger fehler, wenn man den vergisst, da ja dann die formulardaten nich verwendet werden können)
    und die andere seite mit der verarbeitung, da machste in mysql 2 palten dabei und fügst deine Variable mit den abgesicherten formulardaten einfach dazwischen, so dass spalte auf spalte gleicht.
    also die gleiche reihenfolge im query hat wie in mysql[/SIZE][/COLOR][/FONT]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!