Geht das nicht auch mit onfocusout? Es handelt sich ja um Input-Felder
Beiträge von Yamram
-
-
Hmm... Tut mir echt Leid, aber ich kann die Seite nicht aufrufen.
-
Okay, dann hätten wir das jetzt endlich geklärt
-
Roland: Das ist echt eine tolle Lösung. Kann ich die Musik dann irgendwie vielleicht auch stoppen oder vorspulen?? Das wäre noch besser...
-
@Basiii: Ja, man kann es natürlich direkt darein packen
-
Sören: Ja, keine Angst. Ich werde schon nicht jeden Part meines Projekt einzeln checken lassen. Aber ich finde halt einfach, dass der Punkt Usersystem ein sehr wichtiger ist, weil es, wie gesagt, die Basis bildet.
@drPHIP132: Das habe ich wohl wegen dem ganzen Stress verkackt. Danke
webmaster3000: Achso, also darf der User sich das Passwort doch aussuchen und sein Account wird dann erst durch einen Link, der in der eMail steht, aktiviert. Dann werde ich das mal so machen
EDIT - 19.01.2012 - 19:00 Uhr
Ich habe mir gedacht, dass ich ja einfach einen Code machen kann. Dieser könnte zum Beispiel das md5 verschlüsselte aktuelle Datum mit Uhrzeit sein. Was sagt ihr dazu?!EDIT - 19.01.2012 - 19:53 Uhr
Das mit dem Bestätigen des Accounts habe ich jetzt mal nach meiner Idee umgesetzt. Warum ich es nicht so mache, wie beim PHP Kurs? Weil ich MEINE Ideen benutzen willDer Registrierungscode ist nun ziemlich schwer zu knacken
Und noch mal alles zusammen:
Also, der Besucher gibt die Daten ein und die werden wie oben entsprechend überprüft. Wenn alles in Ordnung ist, wird versucht eine Email an die Adresse zu senden. Diese Email sieht in etwa so aus:Code
Alles anzeigenSehr geehrter Herr Mustermann, Sie haben sich für die Anwendung Cloud registriert. Um Ihre Registrierung abzuschließen, bestätigen Sie Ihre Registrierung mit folgendem Code: ******************************** oder rufen Sie folgenden Link auf: http://localhost/cloud/confirm.php?code=********************************** Hoffentlich funktioniert alles gut :) Mit freundlichen Grüßen, Ihr Cloud Service
So, was kann ich jetzt noch verbessern? Ist das jetzt sicher genug?
-
Heyho,
natürlich geht das. Machs einfach so:und dann natürlich entsprechend...
Du solltest dann vielleicht noch das Value-Attribut leeren, weil sonst ist das doof für den User
-
Sören:
Alles klar, das ist ja leicht zu realisierenJa, aber, wenn das Usersystem nicht sicher ist, dann ist ja eigentlich alles doof, weil die Basis ja durch das Loginsystem gebildet wird
Ja, werde es ändern, wenn du drauf bestehst
-
webmaster3000:
Endlich mal jemand, der konstruktiv antwortet
Okay, dann muss ich wohl doch die eMail Adresse abfragenMeinst du, es wäre dann sinnvoll, dass ich das Passwort einfach generieren lasse und dann in die eMail packe??
-
@Basiii: Das mit den Vollzitaten mache ich normalerweise auch nicht. Facebook kann es eigentlich wirklich egal sein, sie sind bekannt genug. Und, wenn irgendeiner feststellt, dass das Ganze in Teilen nicht valide ist, dann wird es die User auch jucken, so lange es funktioniert
@Laura: Ich schreibe ganz bestimmt eine Mail... Wie gesagt, es kann denen wirklich egal sein
-
@all: Okay, dann würde ich sagen: In Zukunft das action-Attribut einfach leer lassen.
-
Zitat von "Basiii"
Ihr sagt ihr habt euch nie einen Virus eingefangen.
Ich sage: Ihr lügt! :mrgreen:
Ihr habt sie nur noch nicht gefunden und sie arbeiten so dezent das ihr es gar nicht merkt
Jetzt frage ich mich zusätzlich noch warum man sich jetzt schon vergleichen muss?
In Sachen Validität sind wir vielleicht ein Stück weiter, aber warum sollte sich Facebook auch darauf konzentrieren das an ihren Bildern vielleicht mal ein alt Attribut fehlt? Bei Facebook geht es darum das es funktioniert und nicht darum das der Code möglichst modern, schick und valide ist.
Szenario: Werbeagentur sucht neuen Mitarbeiter im Webbereich, wen werden sie nehmen, Fritz B., ehemaliger Facebook Designer (3 Jahre Erfahrung), oder dich? Richtig, da hat Facebook die Nase wohl vorne, bzw. Herr B. :wink:
Naja, ich finde Validität auch bei Facebook wichtig...
-
Hey Leute,
als Fortsetzung auf den Thread "Sicherer Login" folgt jetzt natürlich "Sichere RegistrierungErstmal möchte ich ganz ohne Code wissen, was ihr denkt, was man beachten sollte? Das können zum
Beispiel Angaben zum Passwort sein oder so was...
Der Code ist natürlich auch wichtig. Falls es jemanden interessiert: Für diesen Code habe ich 15 Minuten gebraucht.
Code<span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /> include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"oben.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> if</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"c1l2o3u4d-userid"</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location:index.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> elseif</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"submit-register"</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"nickname"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"password"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"password2"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"firstname"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"surname"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> <br /><br /></span><span class="syntaxstring">""</span><span class="syntaxdefault"> AND $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"purpose"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> $connection </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_connect</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"localhost"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"yamram-dev"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"********"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">mysql_select_db </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"yamram-dev"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $connection</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> <br /> $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Ein Datenbankfehler ist aufgetreten. Wir werden uns schnellstmöglichst darum kümmern.<span class='result'>Bitte <br /><br />haben Sie Verständnis.</span></p>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> $nickname </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"nickname"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault"> $password </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"password"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault"> $password2 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"password2"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault"> $firstname </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"firstname"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault"> $surname </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"surname"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault"> $purpose </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"purpose"</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault"> $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"SELECT * FROM `user` WHERE `nickname` = '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nickname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"';"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> $result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">mysql_fetch_assoc</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$result</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Der Username ist schon vorhanden.<span class='result'>Bitte wählen Sie einen anderen <br /><br />Usernamen.</span></p>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> elseif</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$password </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> $password2</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"INSERT INTO `user` (`nickname`, `password`, `regdate`, `surname`, `firstname`) VALUES ('"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nickname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"', '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$password</span><span class="syntaxkeyword">).</span><span class="syntaxstring">"', <br /><br />CURRENT_TIMESTAMP , '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$firstname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"', '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$surname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"');"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Ein Problem mit der Datenbank ist aufgetreten.<span class='result'>Bitte haben Sie <br /><br />Verständnis.</span></p>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"SELECT * FROM `user` WHERE `nickname` = '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nickname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"';"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> $result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"INSERT INTO `logs` (`nickname`, `class`, `logdate`, `ip`) VALUES ('"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nickname</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"', 'register', CURRENT_TIMESTAMP, '"</span><span class="syntaxkeyword">.<br /><br /></span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"REMOTE_ADDR"</span><span class="syntaxkeyword">].</span><span class="syntaxstring">"')"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location:index.php?error=7"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Die Passwortbestätigung entspricht nicht dem Passwort.<span class='result'>Bitte versuchen Sie es noch <br /><br />einmal.</span>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> $string </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $string</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<p class='error'>Sie konnten nicht registriert werden, weil Sie nicht alle Daten eingegeben haben.<span class='result'>Bitte versuchen Sie es <br /><br />noch einmal.</span></p>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">?><br /></span><h2>Registrieren</h2><br /><span class="syntaxdefault"><?php echo $string</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?><br /></span><p>Hier können Sich registrieren. Dafür müssen Sie einfach alle Felder ausfüllen:</p><br /><form method="post" action=""><br /> <label for="nickname">Username</label> <input type="text" name="nickname" value="<span class="syntaxdefault"><?php echo </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"nickname"</span><span class="syntaxkeyword">];</span><span class="syntaxdefault"> ?></span>" /><br /> <label for="password">Passwort</label> <input type="password" name="password" value="" /><br /> <label for="password2">Password bestätigen</label> <input type="password" name="password2" value="" /><br /> <label for="firstname">Vorname</label> <input type="text" name="firstname" value="<span class="syntaxdefault"><?php echo </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"firstname"</span><span class="syntaxkeyword">];</span><span class="syntaxdefault"> ?></span>" /><br /> <label for="surname">Nachname</label> <input type="text" name="surname" value="<span class="syntaxdefault"><?php echo </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"surname"</span><span class="syntaxkeyword">];</span><span class="syntaxdefault"> ?></span>" /><br /> <label for="purpose">Zweck</label><br /> <select name="purpose"><br /> <option value="business">geschäftlich</option><br /> <option value="private">privat</option><br /> </select><br /> <input type="submit" value="registrieren" name="submit-register" /><br /></form><br /><span class="syntaxdefault"><?php include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"unten.php"</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> ?><br /></span></span>
So, was kann ich an diesem Code besser machen? Auf Empfehlung von drPHIP132 habe ich jetzt direkt mysql_real_escape_string() eingebaut. Das schützt vor SQL Injection habe ich erfahren. Wie
ihr vielleicht schon gesehen habt, braucht der User nicht mal eine eMail Adresse angeben. Wer sagt, dass das eine doofe bzw. schlechte Idee ist, der soll direkt Bescheid sagen und natürlich auch
warum.
Mit freundlichen Grüßen,
Philipp E.PS: Das Projekt macht echt Fortschritte. Bald habe ich das komplette Usersystem fertig und fange mit dem Uploadsystem an O.o
-
@all:
Code<span class="syntaxhtml"><br /><span class="syntaxdefault"><?php </span><span class="syntaxkeyword">echo </span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"PHP_SELF"</span><span class="syntaxkeyword">] </span><span class="syntaxdefault">?><br /></span></span>
Was soll daran denn unsicher sein? O.o Was soll man denn da anhängen? Man kann doch eh nur GET-Sachen anhängen oder nicht?
Aber trotzdem Danke...
-
Du kannst cdcol auf jeden Fall löschen, das ist nur eine Beispieltabelle. Bei den anderen bin ich mir nicht sicher
-
Hey,
stellt euch folgendes vor. Ihr habt zwei PHP-Dateien. In der einen kann man sich registrieren, diese Datei nennt sich register.php. Dort befindet sich sowohl das Formular als auch die Auswertung des Formulars. Ich habe das action-Attribut also einfach auf "#" gesetzt. Wenn bei der Auswertung alles gut gelaufen ist, wird weitergeleitet auf index.php?success=2. Aber irgendwie steht dann im Browser immer ...index.php?success=2#. Wie kann ich das ändern? O.oMit freundlichen Grüßen,
Philipp E. -
Also, kann ich sagen, dass man für diese Anwendung ein wenig Erfahrung am PC braucht?
-
Kannst du wieder gut machen, indem du die Frage beantwortest
-
Zitat von "drPHIP132"
Habe ich jetzt eine Frage überlesen, oder hast du einfach frei aus dem Bauch geredet?
Muss ich das jetzt verstehen?!
-
Ich mein ja nur -.-