Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Formular angaben in einer Mysql Datenbank speichern

Sie befinden sich: Home > Php Tutorial > Formular angaben in einer M...

Formular angaben in einer Mysql Datenbank speichern


Eintrag am:  14.01.2010
Hits / Besucher:  43813
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Heute möchte ich in diesem Tutorial euch erklären wie man die Daten von ein Formular entgegennimmt und anschließend in einer MySQL Datenbank speichert. Um die Daten in einer MySQL Datenbank zu speichern, müssen wir als erstes eine Tabelle erstellen. Für unser Beispiel erstellen wir eine Tabelle mit zwei Feldern. Die Felder haben die Namen "Vorname" und "Name". Den Felder weisen wir den Feldtyp Varchar zu. Bei den Feldtyp Varchar ist es erforderlich dass man eine Länge definiert. Die maximale Länge sind 255 Zeichen. In unserem Beispiel verwenden wir 100 Zeichen, da es eigentlich kein Vor - und Nachname gibt, der länger als 100 Zeichen ist.

Zusätzlich benötigen wir ein drittes Feld, wo wir eine automatisch hoch zählende ID Nummer hinterlegen. Aus fachspezifischer Sicht legen wir einen Primary Key mit den Wert Auto_Incremet an. Mit der ID Nummer, können wir in unser Tabelle eine Zuordnung des Datensatz gestalten. Da der Primary Key ausschließlich aus Zahlen besteht, verwenden wir den Feldtyp Int.

Also fangen wir an... Nachfolgend findet ihr den SQL Code um über das Datenbankverwaltungs Tool "PhpMyAdmin" eine Tabelle zu erzeugen. Wenn ihr eine Tabelle mit diesen SQL Code erstellen möchtet, wählt ihr als erstes im linken Bereich bei den Dropdown Menü eure MySQL Tabelle aus, wo ihr die entsprechende Tabelle speichern möchtet. Sobald Ihr eine Datenbank ausgewählt habt, könnt ihr im rechten Bereich unter den Menüpunkt "SQL" in einen Formularfeld den SQL Code einfügen. Wenn ihr nun anschließend auf den "OK" Button klickt, wird automatisch die Tabelle angelegt.

Der SQL Code um die Tabelle anzulegen:

CREATE TABLE `user` (

`id` INT(10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,

    `vorname` VARCHAR(100 ) NOT NULL ,

    `name` VARCHAR(100 ) NOT NULL

) ENGINE = MYISAM ;

 

Sobald die Tabelle angelegt wurde, ist es möglich mit dem nachfolgenden Script, die Daten zu speichern. Damit das Script auch ordnungsgemäß die Daten speichern kann, muss man die MySQL Verbindungsdaten anpassen. Nachfolgend findet ihr, das Script was die Eingaben von Formular in der MySQL Datenbank speichert.

Code für das Script:

<?php

    
/*

    * Created on 14.01.2010 by Nico Schubert

    */

    /**

    * Der Host von der MySQL Datenbank, worauf ein

        Zugriff gemacht werden soll.

    */

    
$datenbank_host 'localhost';

    
/**

    * Der MySQL User womit eine Verbindung zur MySQL

        Datenbank hergestellt werden soll.

    */

    
$datenbank_user 'Username';

    
/**

    * Das entsprechende Datenbankpasswort, vom MySQL

        User.

    */

    
$datenbank_passwort 'Passwort';

    
/**

    * Der Name von der MySQL Datenbank

    */

    
$datenbank_name 'Datenbank_Name';

    
/**

    * Definieren von den Variablen

    */

    
if (!isset($_POST['senden'])) $_POST['senden'] =

        
'';

    if (!isset(
$_POST['vorname'])) $_POST['vorname'] =

        
'';

    if (!isset(
$_POST['name'])) $_POST['name'] = '';

    
/**

    * Prüfen, ob die Variablen einem Wert gespeichert

        haben. Wenn dies der Fall ist speichern wir

        den Eintrag in der MySQL Datenbank.

    */

    
if ($_POST['senden'] != '' AND $_POST['vorname']

        != 
'' AND $_POST['name'] != '') {

        
/**

        * Aufbau der MySQL Verbindung anhand der MySQL

            Verbindungsdaten, der Rückgabewert von

            der PHP Funktion mysql_connect() ist die

            Verbindungskennung. Die

            Verbindungskennung wird in der Variable

            $link gespeichert. Damit keine PHP

            Fehlermeldung ausgegeben wird, stellen

            die ein @ Zeichen vor die PHP Funktion.

        */

        
$link = @mysql_connect($datenbank_host,

            
$datenbank_user$datenbank_passwort);

        
/**

        * Prüfen ob eine Verbindungskennung in der

            Variable $link enthalten ist, wenn keine

            Verbindung aufgebaut werden konnte, steht

            in der Variable ein false, wofür man

            entsprechend eine Fehlermeldung ausgeben

            kann und anschließend das Script

            abbrechen kann.

        */

        
if (!$link) {

            die(
'keine Verbindung möglich: ' .

                
mysql_error());

        }

        
/**

        * Die Datenbank auswählen anhand der der

            Verbindungskennung, die PHP-Funktion

            mysql_select_db() gibt in Fehlerfall ein

            false zurück. Damit wir diesen Status

            überprüfen können, speichern wir den

            Rückgabewert in der Variable $db_selected.

        */

        
$db_selected =

            @
mysql_select_db($datenbank_name$link);

        
/**

        * Prüfen ob in der Variable $db_selected kein

            false steht, wenn ein false hinterlegt

            ist, wird automatisch mit der PHP

            Funktion die() das Script abgebrochen und

            entsprechend eine Fehlermeldung ausgegeben.

        */

        
if (!$db_selected) {

            die (
'Kann '.$datenbank_name.' nicht

                benutzen : ' 
mysql_error());

        }

        
/**

        * Nun speichern wir in der Variable

            $sql_insert unserer SQL Abfrage, die wir

            an die MySQL Datenbank stellen möchten.

            Zum speichern von neun Datensätzen müssen

            wir INSERT INTO angeben um einen neuen

            Datensatz zu speichern, nach INSERT INTO

            muss der Name der Tabelle folgen. In

            unserem Beispiel lautet der Name `user`.

            Anschließend geben wir in den ersten

            Klammerbereich an, für welche Felder

            entsprechende Daten im zweiten

            Klammerbereich liefern. Wir möchten einen

            Eintrag in den Feldern `vorname` und

            `name` machen, daher müssen wir diese im

            ersten Klammerbereich angeben.

        *

        * Im zweiten Klammerbereich übermitteln wir

            unsere entsprechenden Daten. Die Daten

            sind in den Variablen $_POST['vorname']

            und $_POST['name'] gespeichert. Bevor wir

            diese Daten in der Datenbank speichern

            können, sollte man mit der PHP Funktion

            mysql_escape_string() die Daten escapen,

            damit kein Fehler bei falsch eingegebenen

            Daten erfolgt.

        *

        * Hinweis: Bitte gewöhnen sie sich für die

            Zukunft an, alle Daten von den speichern

            oder updaten mit der PHP Funktion

            mysql_escape_string() zu escapen.

            Ansonsten ist es möglich ein so genannte

            SQL Injection zu machen. Mehr zu diesem

            Thema finden sie unter der Adresse:

            https://de.wikipedia.org/wiki/SQL-Injection

        */

        
$sql_insert "INSERT INTO `user`

            (`vorname`,`name`)

            VALUES('"
.mysql_escape_string($_POST['vorn

            ame'
])."',

            '"
.mysql_escape_string($_POST['name'])."');";

        
/**

        * Wenn wir nun unser SQL Statement

            zusammengesetzt haben, können wir dieser

            Anfrage mit der PHP Funktion

            mysql_query() an die MySQL Datenbank

            senden. Um die PHP-Funktion mysql_query()

            zu verwenden, geben wir im ersten

            Parameter die Variable $sql_insert an, wo

            unser SQL Statement darin gespeichert

            ist. Im zweiten Parameter geben wir

            unsere Verbindungskennung mit an. Somit

            wird unserer geöffnete Verbindung verwendet.

        *

        * Die PHP-Funktion mysql_query() liefert in

            Fehlerfall ein false zurück. Um dieses

            false abzufangen prüfen wir mit einer IF

            Anweisung, ob kein false zurückgeliefert

            wird. Zusätzlich stellen wir vor der

            Funktion mysql_query() ein @ Zeichen,

            damit keine PHP Fehlermeldung ausgegeben

            wird. Wenn sie ein neues PHP-Script

            entwickeln, sollten sie vorher das @

            Zeichen entfernen. Denn mit dieser

            Fehlermeldung kommt man sehr häufig den

            Fehler auf die Schliche.

        */

        
if (@mysql_query($sql_insert$link) != false) {

            
/**

            * Wenn kein Fehler aufgetreten ist, geben

                wir eine Meldung mit den Befehl echo

                aus, dass die Daten erfolgreich

                gespeichert wurden. Zusätzlich leeren

                wir die Variable $_POST['vorname']

                und $_POST['name'], damit das

                Formular automatisch wieder leer ist.

            */

            
echo 'Der Eintrag wurde gespeichert!';

            
$_POST['vorname'] = '';

            
$_POST['name'] = '';

        } else {

            
/**

            * Sollte ein Fehler beim Speichern des

                Eintrags aufgetreten sein, geben wir

                eine entsprechende Fehlermeldung aus.

            */

            
echo 'Der Eintrag wurde nicht

                gespeichert!'
;

        }

        
/**

        * Jetzt schließen wir die aktuelle Verbindung

            zur MySQL Datenbank mit dem Befehl

            mysql_close(), hierzu geben wir die

            aktuelle Verbindungskennung, die wir in

            der Variable $link gespeichert haben als

            ersten Parameter an.

        */

        
@mysql_close($link);

    }

    
/**

    * So zu guter letzt benötigen wir noch das

        Formular, was wir absenden möchten. Dies

        erstellen wir und geben dies mit Echo aus. Da

        dieses Formular dynamisch generiert wird und

        mehrere Variablen hat, trennen wir das

        Formular nicht von PHP Code.

    *

    * Als erstes benötigen wir bei unserem Formular,

        die Angabe wohin das Formular gesendet werden

        soll. Hierzu geben wir action="" die Adresse

        über die globale Servervariable

        $_SERVER['PHP_SELF'] an, dass die gleiche

        Adresse verwendet werden soll, wie das

        aktuelle Script aufgerufen wurde. Da man an

        dieser Stelle zum Beispiel Variablen an die

        Adresse hängen könnte, wandeln wir mit der

        PHP Funktion htmlspecialchars() alles

        Sonderzeichen in den entsprechenden HTML Code um.

    *

    * Nun müssen wir noch zusätzlich in form Tag die

        Übertragungsmethode angeben, dies machen wir

        mit method="post" und dadurch werden auch nur

        Postdaten an unser Script übermittelt. Als

        nächstes müssen wir noch zusätzlich die zwei

        Formularfelder ausgeben und den

        entsprechenden Absender Button, um das

        Formular abzusenden.

    */

    
echo '<form

        action="'
.htmlspecialchars($_SERVER['PHP_SELF'

        
]).'" method="post">';

    echo 
' Vorname: <input type="text" name="vorname"

        value="'
.htmlspecialchars($_POST['vorname']).'

        "/><br/>'
;

    echo 
' Name: <input type="text" name="name"

        value="'
.htmlspecialchars($_POST['name']).'"/>

        <br/><br/>'
;

    echo 
' <input type="submit" name="senden"

        value="absenden"/>'
;

    echo 
'</form>';

?>

Wenn man nun dieses PHP-Script aufruft, bekommt man ein ganz einfaches Formular angezeigt, wo man den Namen und Vornamen eingeben kann. Zusätzlich wird darunter ein Absendebutton angezeigt. Natürlich ist dieses Formular nicht unbedingt das schönste, es soll einfach zu Demonstration und Verständlichkeit dienen. Sollte eine Frage aufkommen, so würde ich mich sehr freuen, wenn ihr euch in unserem Forum anmeldet.

So wie gewohnt, noch die verwendeten PHP Funktionen, wofür wir bereits eine Anleitung geschrieben haben.

Echo - Text ausgeben mit PHP.
IF Anweisung - Erklärung was einer IF Anweisung ist.
GET und POST - Weitreichende Erklärung, wie man Daten an ein Formular übergibt.
isset() - Die Erklärung zu der PHP Funktion isset().

 

 

Tags:

 

Artikel hinzufügen bei: