//Errors - Array erstellen. In diesem werden alle Fehler gespeichert $errors = array();
//Überprüfen, ob alles ausgefüllt ist if(empty($_POST['email'])){ array_push($errors,'Keine Email angegeben!'); } if(empty($_POST['name'])){ array_push($errors,'Kein Name angegeben!'); } if(empty($_POST['subject'])){ array_push($errors,'Kein Betreff angegeben!'); } if(empty($_POST['message'])){ array_push($errors,'Keine Nachricht angegeben!'); } //Email Syntax überprüfen if(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§',$_POST['email'])){ array_push($errors,'Keine gültige Email!'); } //Spam-Bot Überprüfung if(time() - $_SESSION['time'] < 10){ array_push($errors,'Fehler beim Ausfüllen!'); } //Überprüfung, ob in der letzten Stunde schon eine Email geschickt wurde if(time() - $_SESSION['saved'] < 3600){ array_push($errors,'Du musst mindestens 1h warten, bis du erneut senden kannst!'); }
PCFreund du schreibst unsinn... das was du tust ist "rumkopiererei". man kann ruhig die array $_POST etc. direkt nutzen statt alles erst in eine extra variable zu packen. d.h. das geht theoretisch auch:
allerdings gibt es dort einen entscheidenen Fehler: die If-Abfrage wird auch zutreffen, wenn "send" zwar übermittelt wurde, aber ein leerer string oder eine 0 als zahl oder der boolsche wert "false" übermittelt wurde. Um zu überprüfen ob ein bestimmtes Formular-Element (in diesem Fall 'send') übermittelt wurde, ist weder der not-operator ("!") nocht die empty() funktion geeignet. Viel besser klappt es mit der isset() funktion welche überprüft ob der Key 'send' im array $_POST vorhanden ist:
Registriert: Mi 30. Sep 2009, 13:31 Beiträge: 107 Themen: 7 Wohnort: Barsinghausen Danke abgegeben: 2 mal Danke erhalten: 3 mal
Ich hab mir das Script jetzt mal auf deiner Seite angesehen, hier war mir das etwas zu klein (die Code-Box)
Also ich find das Script richtig gut. (wobei ich wahrsceinlich das Formular aus em PHP-Block rausnemen würde, aber das ist jedem selbst überlassen)
Nur fehlt mir persöhnlich eine genauere Beschreibung, Kommentare sind super, doch für ein Tutorial hätt ich mir ein wenig mehr gewünscht
Was mir sonst positiv auffällt ist das dein Script ein wenig auf Sicherheit achtet, zumindest ein Minimum an Sicherheit ist gegeben (ausbau fähig ist sowas ja immer)
Kleine Änderung: statt empty() rinfach isset(). Edit: da war wohl jemand schneller
Im großen und ganzen gibt es von mir: von 5 möglichen
Zitate :Älter werden ist unvermeidbar - Erwachsen werden dagegen optional.Autor Unbekannt Das Chaos besiegt die Ordnung, weil es besser organisiert ist.Terry Pratchett
Prozessor (CPU): AMD Athlon(tm) 64 Processor 3500+ ~2.2GHz Grafikkarte (GPU): ATI Radeon HD 4800 Series (4850) 512MB Arbeitsspeicher (RAM): 3072MB RAM (1xCorsair,2xOCZ) Mainboard (MB): ASUS A8N32-SLI Series Festplatte (HDD): ges.:190GB Betriebssystem (OS): Windows XP Professional SP2 Andere (Bildbearbeitung, Audio-Player): PHP-Editor: Waterproof PHPEdit 3.4
Registriert: So 15. Nov 2009, 22:27 Beiträge: 27 Themen: 3 Danke abgegeben: 0 mal Danke erhalten: 1 mal
Falls die Variable 0 ist, geht etwas nicht mit rechten Dingen zu, d.h. es wurde nicht durch diese Formularmaske gesendet. Logischerweise leite ich dann zurück zum Formular. Das mit den Erklärungen... Ich habe im Moment nicht vor, die Webseite weiter zu entwickeln. Natürlich freue ich mich trotzdem über die positive Kritik. Als ich dieses Tut geschrieben habe, hatte ich immer empty() benutzt, da es erstens leichter erkennbar ist als ein kleines !, und für mich als Anfänger erschien das auch immer logischer...aber jedem das Seine. Ich hatte auch irgendwo mal erklärt, dass es verschiedene Wege gibt, diesen Teil hab ich aber rausgenommen.
@PCFreund: Die (gesamte) Seite soll den einfachen, aber gezielten Einsatz von PHP zeigen. Daher ist dein Beispiel nicht geeignet. Des weiteren steckt hinter jeder Zeile Code, der auf der Seite angezeigt wird, fast doppelt soviel Arbeit, als man sieht. Es müssen schließlich auch Zeilenumbrüche eingefügt werden. Ich arbeite von daher auch in meinem Sinn.
Registriert: So 15. Nov 2009, 22:27 Beiträge: 27 Themen: 3 Danke abgegeben: 0 mal Danke erhalten: 1 mal
Also ich wüsste nicht wieso ich ein Captcha einbauen sollte. Das ist auch nicht der Sinn der Übung. Wäre sowieso ein extra Tutorial gekommen, aber die Seite ist inzwischen 'ne Leiche. Wenn der vorhandene Spamschutz nicht ausreicht, kann das im passenden Forum diskutiert werden Ne im Ernst. Man könnte auch noch ne Fake-Email-Eingabe versteckt einbauen. Muss doch nicht immer ein Captcha sein. Das wird nict lange dauern, bis die alle Massenweise geknackt werden, weil viele sie verwenden.
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.