tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
27
ZUGRIFFE
1920
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Schniko Schniko ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    17
    Hallo zusammen,

    da ich nun schon unzählbare Foren durchkämmt und viel an meinem Quellcode rumprobiert habe, poste ich mein Problem nun einfach mal selbst und hoffe, dass ich so eine Lösung finde...

    Aktueller Stand:
    Es geht darum, dass ich für eine Website ein Gästebuch erstellt habe. Dazu gibt es ein Formular mit den Feldern Name, Email und Beitrag. Unter dem Formular gibt es noch den Button "speichern".
    Wenn ich in alle Felder etwas eintrage, klappt das mit dem Speichern auch alles einwandfrei.

    Das Problem:
    Das Problem ist jetzt aber, dass die Eingabe nicht gespeichert wird, sobald ein Feld leer bleibt. Das Formular wird nach dem Klicken auf "speichern" ohne die vorher getätigten Einträge erneut angezeigt.
    Deshalb möchte ich gerne beim Klick auf "speichern" überprüfen, ob in alle Felder etwas eingetragen wurde. Falls ein Feld leer ist, soll eine Fehlerausgabe erscheinen, welche z.B. ausgibt "Bitte geben Sie Ihren Namen ein.".
    Der evtl. schon eingegebene Text in den anderen Feldern soll dabei nicht gelöscht, sondern weiter angezeigt werden, damit der User nicht noch ein mal von vorne anfangen muss.

    Ein Auszug vom Quellcode:
    Um das Ganze kurz zu verdeutlichen...

    PHP-Code:
    <?php 
    if ( $_POST['Name'] != "" && $_POST['Email'] != "" && $_POST['Beitrag'] != "")
    {

    $sql .= " INSERT INTO gbuch ";
    $sql .= " SET ";
    $sql .= " Name ='"$_POST['Name'] ."', ";
    $sql .= " Email ='"$_POST['Email'] ."', ";
    // UTC Zeit festlegen:
    date_default_timezone_set('Europe/Berlin'); 
    $sql .= " Datum ='"date("Y-m-d H:i:s") ."', "
    $sql .= " Beitrag='"$_POST['Beitrag'] ."' "

    echo 
    "<h2>Eintrag gespeichert</h2>";

    //Zugriff auf die MySQL Datenbank:
    //...

    // ausführen des mysql-Befehls/Speichern der Daten
    //...
    // if-Bedingung zu Ende

    //Falls ein Feld leer ist und vorher schon mal auf speichern gedrückt wurde, Fehlerausgabe...
    else

    {
    if (
    $_POST['schon_mal_gespeichert'] == "submit" )
    {


    if ( 
    $_POST['Name'] == "" )
    {
    echo 
    "Bitte geben Sie Ihren Namen ein!";
    }

    if ( 
    $_POST['Email'] == "" )
    {
    echo 
    "Bitte geben Sie Ihre Email-Adresse ein!";
    }

    if ( 
    $_POST['Beitrag'] == "" )
    {
    echo 
    "Bitte geben Sie einen Text ein!";
    }
    }
    Da ich ein blutiger Anfänger bin und noch nicht so wirklich durchblicke, weiß ich nicht, ob der letzte Teil (das was nach dem else kommt) überhaupt richtig ist... Ich habe einfach mal versucht, es irgendwie logisch anzugehen...

    Ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte!
    Vielen Dank schon mal im voraus für eure Mühe!

    Liebe Grüße!
     

  2. #2
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Du könntest in die Inputfelder folgendes machen:

    HTML-Code:
    <input type="text" name="feld" value="<?php echo (isset($_POST['feld'])?$_POST['feld']:''; ?> />
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  3. #3
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Also für die Prüfung der Felder teile ich das immer auf:

    PHP-Code:
    $fehler 0;
    $fehlertext "";

    If (!isset(
    $_POST['Name']) Or Trim($_POST['Name']) == "") {
      
    $fehler 1;
      
    $fehlertext "Bitte geben Sie Ihren Namen an.<br>";
    }

    If (!isset(
    $_POST['Email']) Or Trim($_POST['EMail']) == "") {
      
    $fehler 1;
      
    $fehlertext = ."Bitte geben Sie Ihre EMail Adresse an.<br>";
    }

    If (!isset(
    $_POST['Beitrag']) Or Trim($_POST['Beitrag']) == "") {
      
    $fehler 1;
      
    $fehlertext = ."Bitte geben Sie einen Beitrag ein.<br>";
    }

    If (
    $fehler == 0) {
      
    $sql .= " INSERT INTO gbuch ";
      
    $sql .= " SET ";
      
    $sql .= " Name ='"$_POST['Name'] ."', ";
      
    $sql .= " Email ='"$_POST['Email'] ."', ";
    // UTC Zeit festlegen:
      
    date_default_timezone_set('Europe/Berlin');
      
    $sql .= " Datum ='"date("Y-m-d H:i:s") ."', ";
      
    $sql .= " Beitrag='"$_POST['Beitrag'] ."' ";

    Wobei dieser Code natürlich nur ausgeführt wird, wenn vorher der Submit Button gedrückt wurde.

    <input type="text" name="feld" value="<?php echo (isset($_POST['feld'])?$_POST['feld']:''; ?> />
    Zum Prüfen bin ich immer "zu faul". Ich schreib einfach immer nur:

    HTML-Code:
    <input type="text" name="feld" value="<?php echo @$_POST['feld'];" ?> />
    Gruß Thomas
    Geändert von tombe (28.06.10 um 08:55 Uhr)
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  4. #4
    Crawler Skiline Crawler Skiline ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    47
    Nach dem submit einfach vor dem einspeichern in die Datenbank mit
    einem if überprüfen ob die variablen übergeben wurden bzw ob etwas
    reingeschrieben wurde.

    Wenn nicht Fehlermeldung ausgeben, wenn alles ausgeführt wurde
    weiter fortfahren wie geplant.

    Normalerweise ist das die einfachste (vll. nicht schönste) Methode.
     
    Man steckt immer im "Misthaufen", nur die Tiefe ändert sich.

  5. #5
    Schniko Schniko ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    17
    Hallo!

    Erst ein mal vielen Dank für die schnelle Hilfe und vor allem den Quellcode!

    Ich habe jetzt mal probiert, alles einzufügen, aber ich bekomme bzgl. des Inputs noch eine Fehlermeldung...
    Diese HTML Zeile habe ich auf das jeweilige Feld angepasst:

    HTML-Code:
     <input name="Name" value="<?php echo (isset($_POST['Name'])?$_POST['Name']:' ' ;?>" size="50" maxlength="150" type="text">
    Aber es kommt die Fehlermeldung:
    Parse error: syntax error, unexpected ';' in /Applications/XAMPP/xamppfiles/htdocs/gaestebuch-eintrag2.php on line 30

    Irgendwas in der Syntax muss da glaube ich falsch sein, oder ich hab das einfach falsch eingefügt

    LG

    Ich habe es noch mal so ausprobiert:
    <input name="Name" value="<?php echo @$_POST['Name']; ?>" size="50" maxlength="150" type="text">

    Dann wird das Formular zwar wieder angezeigt, aber es kommt keine Fehlermeldung, wenn ich nichts eintrage und auf speichern klicke...

    Könnte mir jemand vielleicht den kompletten Code geben?
    Ich blicke irgendwie nicht, wo ich was eintragen muss...
     

  6. #6
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Das vorangestellte "@" verhindert die Fehlermeldung wenn es die Variable $_POST["xyz"] nicht gibt.

    Sie verhindert nicht das eine "selbsterstellte" Fehlermeldung wie z.B. "Bitte geben Sie Ihren Namen ein" ausgegeben wird.

    Zeig du mal deinen kompletten Code dann findet sich der Fehler sicher schnell.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  7. #7
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Hupps
    da hab ich wohl eine Klammer vergessen
    HTML-Code:
     <input name="Name" value="<?php echo (isset($_POST['Name']))?$_POST['Name']:'Bitte etwas eingeben' ;?>" />
    Den Wert zu prüfen find ich allerdings schöner als einfach nur die Fehler zu überdecken bzw gar nicht anzeigen zu lassen. Das ist für mich faul programmiert
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  8. #8
    Schniko Schniko ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    17
    ah ok...das "@" habe ich übersehen...

    Hier ist mein Code:

    PHP-Code:
    <!-- Formular Darstellung -->
    <form name="" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="text/html">
    <p>Name:<br>
    <input name="Name" value="<?php echo $_POST['Name']; ?>" size="50" maxlength="150" type="text">
    </p>
    <p>E-Mail-Adresse:<br>
    <input name="Email" value="" size="50" maxlength="150" type="text">
    </p>
    <p>Beitrag:<br>
    <textarea name="Beitrag" rows="10" cols="50"></textarea>
    </p>
    <input name="" value="speichern" type="submit">
    </form>

    <!-- Daten speichern, wenn alle Felder ausgefüllt wurden-->
    <?php 
    $fehler 
    0;
    $fehlertext "";

    If (!isset(
    $_POST['Name']) Or Trim($_POST['Name']) == "") {
      
    $fehler 1;
      
    $fehlertext "Bitte geben Sie Ihren Namen an.<br>";
    }

    If (!isset(
    $_POST['Email']) Or Trim($_POST['EMail']) == "") {
      
    $fehler 1;
      
    $fehlertext "Bitte geben Sie Ihre EMail Adresse an.<br>";
    }

    If (!isset(
    $_POST['Beitrag']) Or Trim($_POST['Beitrag']) == "") {
      
    $fehler 1;
      
    $fehlertext "Bitte geben Sie einen Beitrag ein.<br>";
    }

    If (
    $fehler == 0) { 

    $sql .= " INSERT INTO gbuch ";
    $sql .= " SET ";
    $sql .= " Name ='"$_POST['Name'] ."', ";
    $sql .= " Email ='"$_POST['Email'] ."', ";
    // UTC Zeit festlegen:
    date_default_timezone_set('Europe/Berlin'); 
    $sql .= " Datum ='"date("Y-m-d H:i:s") ."', "
    $sql .= " Beitrag='"$_POST['Beitrag'] ."' "

    echo 
    "<h2>Eintrag gespeichert</h2>";

    //Zugriff auf die MySQL Datenbank:
    define 'MYSQL_HOST''localhost' );
    define 'MYSQL_BENUTZER''root' );
    define 'MYSQL_KENNWORT''' );
    define 'MYSQL_DATENBANK''gaestebuch' );

    $db_link = @mysql_connect (MYSQL_HOSTMYSQL_BENUTZERMYSQL_KENNWORT);
    if ( ! 
    $db_link )
    {
    die(
    'keine Verbindung zur Zeit m&ouml;glich - sp&auml;ter probieren ');
    }
    $db_sel mysql_select_dbMYSQL_DATENBANK )
    or die(
    "Auswahl der Datenbank fehlgeschlagen");

    // ausführen des mysql-Befehls/Speichern der Daten
    $db_erg mysql_query$sql );
    if ( ! 
    $db_erg )
    {
    die(
    'Ung&uuml;ltige Abfrage: ' mysql_error());
    }
    if(
    $sql && mysql_affected_rows() > 0)
    {
    ?>
    <p>Vielen Dank f&uuml;r Ihren Eintrag!<br>
    <?php 
    }

    ?>
    </p>
    <p>Beim Eintragen ist ein Fehler aufgetreten.<br>
    <?php }
    echo 
    '<p><a href="gaestebuch.php">G&auml;stebuch anzeigen</a></p>';
    exit;
    exit;
    ?>
     

  9. #9
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    @timestamp:
    Das ist nicht faul programmiert sondern es ist notwendig.
    Mit dem vorangestellten "@" vor der POST-Variablen wird nur verhindert das ein Fehler angezeigt wird weil die Variable nicht gesetzt ist. Dies ist immer dann der Fall wenn das Formular zum erstem Mal aufgerufen wird.

    Es wäre ziemlich blöd wenn man die Meldung "Bitte geben Sie Ihren Namen ein!" anzeigt nur weil die Seite erstmals angezeigt wird.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  10. #10
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Zitat Zitat von tombe Beitrag anzeigen
    Es wäre ziemlich blöd wenn man die Meldung "Bitte geben Sie Ihren Namen ein!" anzeigt nur weil die Seite erstmals angezeigt wird.
    Die Meldung lässt sich auch ganz einfach entfernen.... Warum das jetzt "blöd" sein soll weiß ich nicht, aber ein netter Umgangston sieht für mich anders aus
    Und was das @-Zeichen macht weiß ich wohl, steht eigentlich auch in meinem vorherigen Post
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  11. #11
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    So müsste es gehen:

    PHP-Code:
    <!-- Formular Darstellung --> 
    <form name="" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="text/html"> 
    <p>Name:<br> 
    <input name="Name" value="<?php echo @$_POST['Name']; ?>" size="50" maxlength="150" type="text"> 
    </p> 
    <p>E-Mail-Adresse:<br> 
    <input name="Email" value="<?php echo @$_POST['Email']; ?>" size="50" maxlength="150" type="text"> 
    </p> 
    <p>Beitrag:<br> 
    <textarea name="Beitrag" rows="10" cols="50"><?php echo @$_POST['Beitrag']; ?></textarea> 
    </p> 
    <input name="" value="speichern" type="submit"> 
    </form> 

    <!-- Daten speichern, wenn alle Felder ausgefüllt wurden--> 
    <?php  
    $fehler 
    0
    $fehlertext ""
    If (isset[
    $_POST["Speichern"])) {

    If (!isset(
    $_POST['Name']) Or Trim($_POST['Name']) == "") { 
      
    $fehler 1
      
    $fehlertext "Bitte geben Sie Ihren Namen an.<br>"


    If (!isset(
    $_POST['Email']) Or Trim($_POST['EMail']) == "") { 
      
    $fehler 1
      
    $fehlertext "Bitte geben Sie Ihre EMail Adresse an.<br>"


    If (!isset(
    $_POST['Beitrag']) Or Trim($_POST['Beitrag']) == "") { 
      
    $fehler 1
      
    $fehlertext "Bitte geben Sie einen Beitrag ein.<br>"


    If (
    $fehler == 0) {  

    $sql .= " INSERT INTO gbuch "
    $sql .= " SET "
    $sql .= " Name ='"$_POST['Name'] ."', "
    $sql .= " Email ='"$_POST['Email'] ."', "
    // UTC Zeit festlegen: 
    date_default_timezone_set('Europe/Berlin');  
    $sql .= " Datum ='"date("Y-m-d H:i:s") ."', ";  
    $sql .= " Beitrag='"$_POST['Beitrag'] ."' ";  

    echo 
    "<h2>Eintrag gespeichert</h2>"

    //Zugriff auf die MySQL Datenbank: 
    define 'MYSQL_HOST''localhost' ); 
    define 'MYSQL_BENUTZER''root' ); 
    define 'MYSQL_KENNWORT''' ); 
    define 'MYSQL_DATENBANK''gaestebuch' ); 

    $db_link = @mysql_connect (MYSQL_HOSTMYSQL_BENUTZERMYSQL_KENNWORT); 
    if ( ! 
    $db_link 

    die(
    'keine Verbindung zur Zeit m&ouml;glich - sp&auml;ter probieren '); 

    $db_sel mysql_select_dbMYSQL_DATENBANK 
    or die(
    "Auswahl der Datenbank fehlgeschlagen"); 

    // ausführen des mysql-Befehls/Speichern der Daten 
    $db_erg mysql_query$sql ); 
    if ( ! 
    $db_erg 

    die(
    'Ung&uuml;ltige Abfrage: ' mysql_error()); 

    if(
    $sql && mysql_affected_rows() > 0

    ?> 
    <p>Vielen Dank f&uuml;r Ihren Eintrag!<br> 
    <?php  


    ?> 
    </p> 
    <p>Beim Eintragen ist ein Fehler aufgetreten.<br> 
    <?php 
    echo 
    '<p><a href="gaestebuch.php">G&auml;stebuch anzeigen</a></p>'
    exit; 
    exit; 
    }
    ?>
    Übrigens: Dein Formular und der Button selber haben keinen Namen. Das kann auch zu Problemen führen !
    Geändert von tombe (28.06.10 um 13:05 Uhr)
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  12. #12
    Schniko Schniko ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    17
    Ich habe dem Formular jetzt einen Namen gegeben und den Quellcode so wie oben eingefügt.

    Es treten aber folgende Probleme auf:
    - wenn nichts in die Felder engetragen wurde und ich auf speichern klicke, passiert nichts, ausser dass der link "Gästebuch anzeigen" unter dem Formular erscheint
    => es wird keine Fehlermeldung ausgegeben
    - wenn in alle Felder etwas eingetragen wurde und ich auf speichern klicke, kommt nicht mehr die Ausgabe "Vielen Dank für ihren EIntrag" und die Daten werden auch nicht im Gästebuch gespeichert..

    Jetzt bin ich total verwirrt...wieso geht das auf ein mal nicht mehr^
     

  13. #13
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Dazu bleibt nur zu sagen, dass die Verwendung von $_SERVER["PHP_SELF"] ziemlich unsicher ist und vermieden werden sollte. Wer möchte, kann ja mal folgendes bei sich lokal ausprobieren.

    HTML-Code:
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    <input type="submit" />
    </form>
    und das dann mit folgender URL aufrufen:
    Code :
    1
    
    http://localhost/pfadZurDatei/index.php/"></form><script type="text/javascript">alert("you got XSS'ed");</script><form>
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  14. #14
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    So funktioniert das bei mir. Ich hab den Code mal nebenbei etwas formatiert, damit er besser lesbar ist

    HTML-Code:
    <?php
    error_reporting(E_ALL);
    ?>
    <!-- Formular Darstellung -->
    <form action="./" method="post">
    <p>Name:<br>
    <input name="Name" value="" size="50" maxlength="150" type="text">
    </p>
    <p>E-Mail-Adresse:<br>
    <input name="Email" value="" size="50" maxlength="150" type="text">
    </p>
    <p>Beitrag:<br>
    <textarea name="Beitrag" rows="10" cols="50"></textarea>
    </p>
    <input name="speichern" value="speichern" type="submit">
    </form>
    
    <!-- Daten speichern, wenn alle Felder ausgefüllt wurden-->
    <?php
    $fehler = 0;
    $fehlertext = "";
    if (isset($_POST["speichern"])) {
    
      if (!isset($_POST['Name']) Or Trim($_POST['Name']) == "") {
        $fehler = 1;
        $fehlertext = "Bitte geben Sie Ihren Namen an.<br>";
      }
    
      if (!isset($_POST['Email']) Or Trim($_POST['Email']) == "") {
        $fehler = 1;
        $fehlertext = "Bitte geben Sie Ihre EMail Adresse an.<br>";
      }
    
      if (!isset($_POST['Beitrag']) Or Trim($_POST['Beitrag']) == "") {
        $fehler = 1;
        $fehlertext = "Bitte geben Sie einen Beitrag ein.<br>";
      }
    
      if ($fehler == 0) {
    
        $sql = " INSERT INTO gbuch ";
        $sql .= " SET ";
        $sql .= " Name ='". $_POST['Name'] ."', ";
        $sql .= " Email ='". $_POST['Email'] ."', ";
        // UTC Zeit festlegen:
        date_default_timezone_set('Europe/Berlin');
        $sql .= " Datum ='". date("Y-m-d H:i:s") ."', ";
        $sql .= " Beitrag='". $_POST['Beitrag'] ."' ";
    
        echo "<h2>Eintrag gespeichert</h2>";
    
        //Zugriff auf die MySQL Datenbank:
        define ( 'MYSQL_HOST', 'localhost' );
        define ( 'MYSQL_BENUTZER', 'root' );
        define ( 'MYSQL_KENNWORT', '' );
        define ( 'MYSQL_DATENBANK', 'gaestebuch' );
    
        $db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
        if ( ! $db_link ){
          die('keine Verbindung zur Zeit m&ouml;glich - sp&auml;ter probieren ');
        }
        $db_sel = mysql_select_db( MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");
    
        // ausführen des mysql-Befehls/Speichern der Daten
        $db_erg = mysql_query( $sql );
        if ( ! $db_erg ){
          die('Ung&uuml;ltige Abfrage: ' . mysql_error());
        }
        if($sql && mysql_affected_rows() > 0){
          ?>
          <p>Vielen Dank f&uuml;r Ihren Eintrag!<br>
          <p><a href="gaestebuch.php">G&auml;stebuch anzeigen</a></p>
          <?php
        }
        ?>
        </p>
        <p>Beim Eintragen ist ein Fehler aufgetreten.<br>
        <?php
      }
      else
        echo $fehlertext;
    }
    ?>
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  15. #15
    Schniko Schniko ist offline Mitglied
    Registriert seit
    Jun 2010
    Beiträge
    17
    Also bei mir funktioniert das nicht.....
    Jetzt werde ich beim Klick auf speichern immer auf die Index Seite zurückgeleitet....
     

Ähnliche Themen

  1. GET-Eingabe überprüfen
    Von Dörti.Hermi im Forum PHP
    Antworten: 4
    Letzter Beitrag: 08.02.08, 17:56
  2. Formularfelder überprüfen
    Von FLASHStyler im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 05.10.07, 08:02
  3. GET eingabe auf URL überprüfen
    Von kase im Forum PHP
    Antworten: 13
    Letzter Beitrag: 11.08.07, 15:57
  4. Formularfelder überprüfen!
    Von soa im Forum PHP
    Antworten: 3
    Letzter Beitrag: 20.06.05, 00:24
  5. 3 Formularfelder überprüfen
    Von stefanrichardmueller im Forum PHP
    Antworten: 2
    Letzter Beitrag: 25.07.04, 23:37

Stichworte