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
 
Script Seite

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

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
http://www.Artfiles.de
Goneo.de
Bei diesen Anbieter bekommt man Webspace, Domains,...
http://www.Goneo.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:  38418
Sprache: Deutsch
Kategorie:  Experten Tutorials
Tutorial Art:  eigenes
 

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


 

Verlink uns, wenn Dir das Tutorial gefallen hat:
Artikel hinzufügen bei: