PHP Tutorials, PHP lernen, PHP Forum, PHP Community and more ... MyWebsolution.de!

Sidebar

Home News Tutorials Workshops Tipps Artikel Gästebuch Sitemap Pascal Landau

Suche

Members

Forum Login Registrierung

Statistik

Statistikbereich
Jetzt2
Heute206
Gestern271
Gesamt2389665

PHP/ MySQL Gästebuch Tutorial - Fehlerprüfung

Autor Flitze
Klicks 134902
Rating für PHP/ MySQL Gästebuch Tutorial
  4.1 von 10
Bewertungen133
Stand 05.07.2010
Keywords:
Gästebuch Tutorial, PHP Gästebuch erstellen, Guestbook, Gästebuch mit PHP und MySQL, Spamschutz für Gästebuch, Spam im Gästebuch, , Fehlerprüfung, Formular, fehlerhafte Eingaben

Amazon: PHP 5.3 und MySQL 5.1
Breadcrumb:
Tutorials » PHP/ MySQL Gästebuch Tutorial » PHP/ MySQL Gästebuch Tutorial - Fehlerprüfung
Seite : 1 2 3 4 5 6 7 Bewerten
Article Wizard - deutscher Article Spinner

4. Die Fehlerprüfung

[ADSENSE_LINE]
Die abgeschickten Daten müssen natürlich vor dem Speichern in der Datenbank noch geprüft werden. In diesem Fall bedeutet das folgende Prüfungen:

- existieren alle Felder?
- sind Nachricht und Name nicht leer?
- ist das 'Antispam'-Feld leer?
- wurde vor weniger als einer Minute bereits ein Eintrag hinterlassen?

Diese lassen sich so realisieren:
PHP:

<?php
    
if(isset($_POST['submit']) AND $_POST['submit']=='Eintragen'){
         
$errors = array();
         if(!isset(
$_POST['Name'], $_POST['Email']))
             
$errors[] = "Bitte benutzen sie unser Formular.";
         else{
                 if(
trim($_POST['Antispam']) != "")
                     
$errors[] = "No Spam, dude!\n";
                 if(
trim($_POST['Name'])=='')
                     
$errors[] = "Bitte geben Sie ihren Namen ein.";
                 if(
trim($_POST['Email'])=='')
                     
$errors[] = "Bitte geben Sie ihre Email-Adresse ein.";
         }
         
$sql "SELECT
                           IP
                  FROM
                           Gaestebuch_IP
                  WHERE
                           IP = '"
.$_SERVER['REMOTE_ADDR']."'
                  LIMIT
                           1
                 "
;
         
$result mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
         if(
mysql_num_rows($result))
                  
$errors[] = "Sie haben gerade einen Eintrag hinterlassen. Bitte haben Sie eine Minute Geduld.\n";
         if(
count($errors)){
                  echo 
"Sorry, ihre Daten konnten nicht bearbeitet werden.<br>\n".
                       
"<br>\n";
                  foreach(
$errors as $error)
                           echo 
$error."<br>\n";
         }
         else{
                  
// Daten speichern
?>


Das Prinzip der Fehlerprüfung wird in dem o.g. Basics - Formulare - Tutorial erklärt. Sollte jemand mit dem Aufbau Probleme haben, sollte er sich dort nochmal belesen ;)

PHP:
<?php
         $sql 
"SELECT
                           IP
                  FROM
                           Gaestebuch_IP
                  WHERE
                           IP = '"
.$_SERVER['REMOTE_ADDR']."'
                  LIMIT
                           1
                 "
;
         
$result mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
?>


Dieser Query frag die Datenbank ab, ob die IP des Users gespeichert ist. Ist dies der Fall, wird der Eintrag nicht gespeichert. Damit die IP jedoch nicht dauerhaft gespeichert bleibt, muss an anderer Stellen geprüft werden, wie lange die IP bereits in der Datenbank gespeichert ist, bzw. wie lange der letzte Eintrag dieses Users her ist. Da wir als Zeitspanne eine Minute festgelegt haben, müssen also alle gespeicherten IPs die älter als eine Minute sind aus der Datenbank gelöscht werden. Dazu verwendet man folgenden Query

PHP:
<?php
         $sql 
"DELETE FROM
                           Gaestebuch_IP
                 WHERE
                           Datum < DATE_SUB(NOW(), INTERVAL 1 MINUTE)
                "
;
         
mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
?>


Wo baut man das nun ein? Nun, dazu zeige ich nochmal die gaestebuch.php

PHP:
gaestebuch.php
--------------

<h1>.: Gästebuch :.</h1>

<?php
    error_reporting
(E_ALL);

    
// Wenn das Formular abgeschickt wurde
    
if(isset($_POST['submit']) AND $_POST['submit'] == 'Eintragen'){
         if(
fehler){
             
// Abbruch
         
}
         else {
             
// Eintrag speichern
         
}
    }
    
// Wenn die Seite 'per Link' aufgerufen wird
    
else {
         
$sql "DELETE FROM
                           Gaestebuch_IP
                 WHERE
                           Datum < DATE_SUB(NOW(), INTERVAL 1 MINUTE)
                "
;
         
mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());

         
$sql "SELECT
                           IP
                  FROM
                           Gaestebuch_IP
                  WHERE
                           IP = '"
.$_SERVER['REMOTE_ADDR']."'
                  LIMIT
                           1
                 "
;
         
$result mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());

         if(
mysql_num_rows($result)) {
                  echo 
"<p class=\"content\">\n".
                       
"Sie haben gerade einen Eintrag hinterlassen. Bitte haben Sie eine Minute Geduld.\n".
                       
"</p>\n";
         }
         else {
             
// Formular zum Eintragen zeigen
         
}
         
// bisherige Einträge anzeigen
    
}
?>


Allerdings ist euch mit Sicherheit aufgefallen, dass wir eigentlich noch überhaupt keinen MYSQL-Befehl zum Speichern der IP haben. Nun, dazu kommen wir jetzt beim Speichern in der Datenbank.

Zurück zur vorigen Seite:
PHP/ MySQL Gästebuch Tutorial - Das Formular
Weiter zur nächsten Seite:
PHP/ MySQL Gästebuch Tutorial - Speichern in der Datenbank

»» Zurück zum Menu

Suchmaschinenoptimierung

Suchmaschinenoptimierung (SEO - Search Engine Optimization)

Ranking

Tutorials (13)

8.6
8.4
8

Workshops (3)

8.8
8.7
7.6

Tipps (12)

7.2
6.7
6.5

Artikel (32)

8.4
8
7.2

RSS Feeds

Full Feed Tutorials Workshops Tipps Artikel

Twitter

Follow me on Twitter

Partner & Links


Valid HTML 4.01 Transitional
Valid CSS
nach oben

Diese Seiten unterstützen MyWebsolution:
 
© MyWebsolution.de
2006-2024