Ergebnis 1 bis 7 von 7

Thema: Gästebuch

  1. #1
    Matthias
    Gast

    Standard Gästebuch

    So, ich bin es schon wieder.

    Will ja ein Gästebuch schreiben und ahbe dazu eine Datenbank mit Tabelle angelegt.
    Kann die Datenbank auch ohne Probleme verbinden aber es werden keine Daten reingeschrieben.
    Habe eine form.htm und eine save.htm die dann die Daten aus der Form speichern soll. Die bereits eingetragenen Werte mit phpAdmin kann ich wunderbar abrufen.

    Die ersten Zeilen werden von save.php auch ausgeführt, so daß eine Verbindung zur DB besteht aber dann kommt eben die Fehlermeldung
    "Es ist ein Fehler aufgetreten, Ihr Eintrag konnte nicht hinzugefügt werden Versuchen Sie es bitte noch einmal oder schreiben Sie bitte eine E-Mail!"

    Habe bereits einen Thread geöffnet (Variablen werden nicht übergeben!) und diese Idee mit ($HTTP_POST_VARS) wollte ich übernehmen, aber weiß nicht wie?

    form.htm
    Code:
    <form action="ubung2.php" method="post" id="gb" name="gastebuch" >
          <table>
             <tr>
                 <td>
                     <font class="font">Vorname&#58;</font>
                 </td>
                 <td>
                      <input name="vorname" maxlength="64">
                 </td>
                 <td>
                     <font class="font">Nachname&#58;</font>
                 </td>
                 <td>
                     <input name="name" maxlength="64">
                 </td>
             </tr>
             <tr>
                 <td>
                     <font class="font">PLZ&#58;</font>
                 </td>
                 <td>
                     <input name="plz" maxlength="5">
                 </td>
                 <td>
                     <font class="font">Wohnort&#58;</font>
                 </td>
                 <td>
                      <input name="ort" maxlength="64">
                 </td>
             </tr>
             <tr>
                 <td>
                     <font class="font">eMail&#58;</font>
                 </td>
                 <td>
                     <input name="email" maxlength="128">
                 </td>
                 <td>
                     <font class="font">Datum&#58;</font>
                 </td>
                 <td>
                     <input name="date" maxlength="10">
                 </td>
             </tr>
             <tr>
                 <td colspan="1" >
                     
                 </td>        
                 <td colspan="3">
                     <textarea name="text" rows="10" cols="55">Dein Eintrag</textarea>
    	           </td>
             </tr>
             <tr>
                 <td colspan="4" align="right"><input type="submit" value="Absenden" name="gesendet"></td>
             </tr>
          </table>
    </form>


    save.php
    Code:
    <?php
    
              //Abfrage ob schon auf den Button "Absenden" geklickt wurde; erste if Anweisung
       if &#40;$gesendet&#41;
       &#123;
          require &#40;"../conf.inc/conf.inc.php"&#41;;   //einbinden der conf.inc-Datei
          $verbindung = mysql_connect&#40;"$sql&#91;'host'&#93;", "$sql&#91;'uid'&#93;", "$sql&#91;'pwd'&#93;"&#41;;    //Verbindung herstellen
    
                // Verbindungsbestätigung
           $datenbankname=$sql&#91;'db'&#93;;
           if &#40;$verbindung&#41;                        //Schleife für MySQL Datenbank-Verbindung
             &#123;
                    if &#40;mysql_select_db&#40;$sql&#91;'db'&#93;&#41;&#41;       //Schleife für Datenbankverbindung
                    &#123;
                      echo "<font class='font_php'>Datenbank <u>$datenbankname</u> wurde ausgewählt!</font>";
                    &#125;
                    else
                    &#123;
                       echo "Datenbank <u>$datenbankname</u> konnte nicht ausgewählt werden!";
                    &#125;
             &#125;
           else
              &#123;
                echo "Keine Verbindung zu MySQL-Datenbank möglich!";
              &#125;
              
          $sqlab = "insert into gb";
          $sqlab .= "&#40;'vorname', 'name', 'plz', 'ort', 'email', 'date', 'text'&#41; values";
          $sqlab .= "&#40;'$vorname', '$name', $plz, '$ort', '$email', '$date', '$text'&#41;";
    
          mysql_db_query&#40;"test", $sqlab&#41;;
    
          $num = "0";
          $num = mysql_affected_rows&#40;&#41;;
          if &#40;$num>0&#41;
             echo "Ihr Eintrag wurde gespeichert!
    
    ";
          else
          &#123;
             echo "Es ist ein Fehler aufgetreten, ";
             echo "Ihr Eintrag konnte nicht hinzugefügt werden.
    
    ";
             echo "Versuchen Sie es bitte noch einmal oder schreiben Sie bitte eine E-Mail!";
          &#125;
          mysql_close&#40;$verbindung&#41;;
       &#125;
        
    ?>
    Hoffe ich habe es verständlich erklärt. Habe übrigens noch keinen Webspace mit oho (der ist noch in der Anmeldephase) aber habe Apache etc auf meinem Rechner lokal installiert:

    Gruß

    Matze
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiser(in)
    Registriert seit
    03.06.2004
    Beiträge
    2.557
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    wieso wählst du zuerst die datenbank aus, und arbeitest nacher trotzdem mit mysql_db_query?

    obwohl, daran kannst ned liegn, da wie du sagst die daten reingeschrieben wurden

    ==> probiers so:

    Code:
    if &#40;mysql_query&#40;$sqlab&#41;&#41; &#123;
       echo "geht";
       &#125;
    else &#123;
       echo "geht ned";
       &#125;
    außerdem würd ich die codestruktur etwas überarbeiten. ist doch etwas verwirrend. und die eine oder andere zeile liese sich durch logisches mitdenken vermeiden

    mfg
    Rocco

  3. #3
    Matthias
    Gast

    Standard

    @ROCCO
    Die Daten werden eben [/u]nicht reingeschrieben.
    Wenn man eine Datenbankverbindung hat verwendet man mysql_db-query nicht, nur mysql_query oder läßt man das dann ganz weg?

    Matze

  4. #4
    Kaiser(in)
    Registriert seit
    03.06.2004
    Beiträge
    2.557
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    so sieht eine typische verbindung aus:

    [code]<?php
    $host="localhost";
    $user="minimundus";
    $pw="sehrklein";
    $db="minis_datenbank";
    mysql_connect($host,$user,$pw);
    mysql_select_db($db);

    #dann kommt schon z.b.

    $eintrag = "INSERT INTO tabelle (vorname, nachname) VALUES ('$vn', '$nn')";
    $set = mysql_querty($eintrag);

    #und schon stehn die datein drinnen
    ?>

  5. #5
    Matthias
    Gast

    Standard

    Werde mal versuchen es umzusetzen.
    Danke mal soweit

    Gruß

    Matze

  6. #6
    Matthias
    Gast

    Standard

    Das klappt und sieht deutlich einfacher aus wie der Quatsch den ich verwendet habe. Nur ein Problem habe ich jetzt...............
    ...........die Einträge werden doppelt geschrieben!

    Woran liegt daß?
    form.htm ist gleich und meine save.php sieht jetzt so aus

    Code:
    <?php
    
                      //Datenbankverbindung herstellen
    require &#40;"../conf.inc/conf.inc.php"&#41;;             //conf.inc.php einbinden
    $connection=mysql_connect&#40;"$sql&#91;'host'&#93;", "$sql&#91;'uid'&#93;", "$sql&#91;'pwd'&#93;"&#41;;   //Datenbankverbing herstellen
    
    mysql_select_db&#40;$sql &#91;'db'&#93;&#41;;          //Datenbank auswählen
    
    $eintrag = "INSERT INTO gb &#40;vorname, name, plz, ort, email, date, text&#41;";   //Datenbankfelder auswählen und denen...
    $eintrag .= "VALUES &#40;'$vorname', '$name', '$plz','$ort','$email','$date','$text'&#41;";  //...Variablen zuweisen
    
    mysql_query&#40;$eintrag&#41;;
    
                      //Ausgabe bei erfolgreichem Eintrag
    $ausgabe = "";
    $ausgabe.= "";
    $ausgabe.= "";
    $ausgabe.= "";
    $ausgabe.= "";
    $ausgabe.= "";
    
                      //Ausgabe bei nicht erfolgtem Eintrag
    $fehler = "";
    $fehler.= "";
    $fehler.= "";
    $fehler.= "";
    $fehler.= "";
    $fehler.= "";
    $fehler.= "";
    
                  //Abfrage ob Eintrag gesetzt und entsprechende Ausgabe
    if &#40;mysql_query&#40;$eintrag&#41;&#41;
       &#123;
        echo "$ausgabe";
       &#125;
    else
       &#123;
        echo "$fehler";
       &#125;
    mysql_close&#40;$connection&#41;;
    
    ?>
    Mal noch so nebenbei, warum zählt meine Spalte "id" in der Datenbank mit auto_increment trotz Datensätze die gelöscht sind nicht bei 2 oder 3 weiter sondern bei 30 (id des letzten Eintrages)?

    Suuuuuupervielendankmalsoweit

    Matze

  7. #7
    Matthias
    Gast

    Standard

    Hab mir den Quelltext nochmal genau durchgesehen, ich weiß immer noch nicht wieso die Einträge doppelt geschrieben werden?????

    Und meine ID zählt weiterhin hoch imzwischen habe ich zwei Einträge (selbst erstellt zum testen) und der nächste hat dann 46.

    Ein langer Weg bis man php schnallt

    Matze

Ähnliche Themen

  1. Gästebuch
    Von Barcelino im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 05.02.2007, 14:07
  2. Gästebuch und <div>
    Von malawi im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 26.02.2006, 23:33
  3. Gästebuch
    Von Rinchen im Forum HTML & CSS Forum
    Antworten: 22
    Letzter Beitrag: 28.04.2005, 14:49
  4. Gästebuch
    Von GAST im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 27.04.2005, 20:00
  5. gästebuch
    Von im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 04.03.2005, 14:26

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •