Datenbank eingabe format (php/mysql)



  • Entschuldige falls das ganze jetzt im falschen bereich ist.. Webzeugs und Datenbanken benutz ich in diesem beitrag ja beides.. deswegen weiss ich nicht wo genau ichs reinpacken sollte. ich bitte dies zu entschuldigen und das thema zu verschieben, wenn erforderlich. danke!

    Aaaalso.. meine Frage ist wie ich Effektiv ein eingabeformat in SQL/PHP für zb emails einsetzen

    also dass ein Textfeld folgende dinge erfüllen soll:
    -keine in email verbotenenen sonderzeichen
    -mindestens 2 zeichen VOR dem @
    -halt ein @ an sich xD
    -mindestens 2 zeichen NACH dem @
    -Ein punkt das nach dem @ kommt
    -mindestens 2 zeichen als addressendung

    halt eine simple email. müsste klar sein was genau gesucht ist (hab das aufgezählt was mir so eingefallen ist, will euch nicht für blöd halten XD)

    Da ich SQL nahezu garnicht kann (bin halt eig Fortgeschrittener C++ coder der sich neulich in PHP/MySQL versucht.) wäre ein vorschlag der ausbesserung sehr nett. Bzw wenns in SQL geregelt werden sollte (gibt ja sowas wie "NOT LIKE" oder so glaub ich!?) wäre auch nett wenn man mir erläutert wie man dass in PHP "auffängt" dass es nicht funktioniert wenn man sich zb mit ",bernd123,@zuhause" also mit diversen fehlern abschickt.

    Ich hab mich etwas im text verhaspelt, hoffendlich wurde ich aber dennoch verstanden wurde und das man mir helfen kann danke im voraus!



  • Ich weiß nicht ob man das durch irgenwelche fiesen Constraints in der Datenbank abfangen könnte, aber dank "Regular Expression" bzw. "Reguläre Ausdrücke" kann php das ganz wunderprächtig.
    Im Netz sollten sich eigentlich ausreichend Beispiele für genau dein Problem finden lassen.

    mfg
    xXx



  • seh ichs also richtig dass es am ende so aussehen müsste:

    ^([A-Za-z0-9._\!#\$%&\'*\+\-/=\?\^\`{|}~]{2,})@([A-Za-z0-9_\!#\$%&\'*\+\-/=\?\^\`{|}~]{2,}).([A-Za-z]{2,})$
    

    ?



  • google doch einfach mal nach "email regex". Da gibt es doch schon ne Menge lösungen und Du wunderst Dich dann auch nicht warum ungültige Zeichen kommen weil Du den Punkt nicht mit einem Auswertungsschutz versehen hast.



  • ah kay

    ^[^@]+@[^@]{3,}\.[^\.@0-9]{2,}$
    

    hab ich da jetzt mal so schnell gefunden. Jetzt noch eine Noobfrage. Kann ich das Überall einfügen? ich lese meine Daten in einer HTML Form ein, übergebe sie an die gleiche datei und les es dann in die datenbank ein.

    quellcode:

    <FORM METHOD="post" ACTION="register.php">
    	<table border="1" width=35%>
    		<tr>
    			<td width=60%><b>Username:</b></td>
    			<td width=30%><input type="text" name="username"></td>
    		</tr>
    		<tr>
    			<td><b>Password:</b></td>
    			<td><input type="password" name="userpass"></td>
    		</tr>
    		<tr>
    			<td><b>Password verifizieren:</b></td>
    			<td><input type="password" name="userveri"></td>
    		</tr>
    		<tr>
    			<td><b>Email:</b></td>
    			<td><input type="text" name="usermail"></td>
    		</tr>
    		<tr>
    			<td colspan="2" align="center"><input type="submit" name="Button" value="Anmelden"></td>
    		</tr>
    	</table>
    </FORM>
    

    das ist die form am ende und der php code am anfang:

    $username = $_POST["username"];
    $userpass = MD5($_POST["userpass"]);
    $usermail = $_POST["usermail"];
    $userveri = MD5($_POST["userveri"]);
    
    $sql = "INSERT INTO `yamisparrow`.`users`
    			(
    				`userName`, `userPass`, `userMail`
    			)
    			VALUES
    			(
    				'$username', '$userpass', '$usermail'
    			)";
    		mysql_query($sql);
    

    hab noch diverse abfragen von wegen "if($userpass != $userveri)"

    dazwischen.. aber ich hab das jetzt mal simpel weggelassen..



  • Du könntest auch alternativ die EMail-Validierung mit Javascript machen: Wenn der User auf Abschicken klickt wird die Adresse geprüft, ist sie ungültig, kommt eine Fehlerbox, im anderen Fall wird mit submit() das Form abgeschickt.
    http://www.randomsnippets.com/2008/04/01/how-to-verify-email-format-via-javascript/



  • Würd ehrlich gesagt lieber bei der standard methode bleiben an die ich jetzt gerade erstmal rangekommen, anstatt irgendwelche ganz anderen java methoden einzubaun..



  • ich würd noch ein paar vorsichtmaßnahmen einbauen mit addslashes und/oder mysql_real_escape_string, je nach php version 😉


Anmelden zum Antworten