Loading...   Upload Image

Tutorial GästebuchForum » Tutorials » Help » Tutorial Gästebuch

Neues Thema verfassen Neues Thema

  • Cid03User ist offline
    Newbie



    Registriert: 22.01.2011
    Beitraege: 7

    22.01.2011 um 16:21 Uhr

    Hallo

    Ist mein erster Eintrag im Forum und ich wusste nicht ob ich jetzt wo anders zu einem Thema dazu posten sollte oder der bersicht halber lieber ein eigenes Thema aufmachen soll.

    Ich hab mich fr ein neues Thema entschieden^^

    Hier mein anliegen:

    Ich habe zum ben mir das Tutorial Gstebuch mal durchgesehen und so umformatiert, dass ich es auch gleich besser verstehe.

    Beim ersten Test hat alles gleich wunderbar funktioniert, leider wenn ich einen Gstebuch Eintrag machen will (egal ob als Admin oder als Gast) schreibt er mir immer

    Das schreiben ist gescheitert!

    Jetzt denke ich mir natrlich, dass es was mit der Datenbank zutun hat, aber was?

    Ich habe den Quellcode nicht verndert und habe die Datenbank so wie beschrieben angelegt.

    Hier der Quelltext der auf die Datenbank schreiben soll:

    $schreiben = "INSERT INTO gb (id, name, email, hp, msg, ip, date, time)
    VALUES ('', '$name', '$email', '$hp', '$msg', '$ip', '$datum', '$zeit';)";
    $results= mysql_query ($schreiben) or die ("Das Schreiben ist gescheitert!";);

    Was kann ich da noch vergessen haben?

    Mfg
    Cid



    Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 22.01.2011 um 17:00 Uhr ...
  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    23.01.2011 um 03:10 Uhr

    Hallo Cid,

    hast du den Code aus dem Tutorial genommen, oder hast du dir die dort angeboteten Dateien heruntergeladen?

    Die Zip-Datei enthaelt naemlich eine von mir etwas ueberarbeitet Form des Gaestebuchscriptes, die vom Inhalt des eigentlichen Tutorials von jamdesigns abweicht.

    Kann es vielleicht sein, dass du dich bei der Angabe der Zugangsdaten der DB etwas vertan hast?

    Eigentlich muessten beide Varianten funktionisfaehig sein, kann also nur an der DB bzw. den Zugangsdaten liegen ...

    Liebe Gruesse
    Alice



    ... { signatur } ...
  • Cid03User ist offline
    Newbie



    Registriert: 22.01.2011
    Beitraege: 7

    23.01.2011 um 12:52 Uhr

    Mahlzeit

    Ich habe den Code direkt aus der Beschreibung geholt, damit ich ihn selber durcharbeiten konnte, sonst htte ich mich mit dem Quellcode nicht so schnell zurecht gefunden. ;)

    Ich habe mir jetzt eine kleine Test PHP Datei geschrieben umd die Datenbank zu testen.

    Ich danke mal fr die Antwort und melde mich nochmal wenn ich rausgefunden habe woran es scheiter.

    Die Datei werd ich auch mal ausprobieren.

    Lg Cid



  • Cid03User ist offline
    Newbie



    Registriert: 22.01.2011
    Beitraege: 7

    23.01.2011 um 15:02 Uhr

    So ich habe jetzt eine Test Verbindung gemacht und habe folgendes Problem.

    Zuerst hat die Verbindung zum eintragen gut funktioniert, und auf einmal nicht mehr?!
    (Ohne das ich was verndert htte)

    Hier mal der Quellcode:

    
    <?php include("dbconnect.php"); ?>
    
    <?php
    
    if (isset($_POST["submit"]))
             {
             $name=$_POST["name"];
             $email=$_POST["email"];
             $msg=$_POST["msg"];
    
             $eintrag = "INSERT INTO testdb (id, name, email, msg) VALUES ('$name', '$email', '$msg')";
             $eintragen = mysql_query($eintrag) or die ("Eintrag wurde nicht gemacht");
             }
    
    $abfrage = "SELECT * FROM testdb";
    $ergebnis = mysql_query($abfrage);
    
    while($row = mysql_fetch_array($ergebnis))
    {
      echo $row['name']."<br />";
    }
    
    
    
    ?>
    
    <html>
    <head>
    <title>Test Script PHP MySql</title>
    </head>
    
    <body>
    
    <form action="test.php" method="POST">
    
    <b>Vorname:</b>
    <input type="text" name="name" size="30" maxlength="20" value=""><br>
    <b>E-Mail:</b>
    <input type="text" name="email" size="30" maxlength="20" value=""><br>
    
    <textarea cols="55" rows="10" value="" name="msg"></textarea>
    
    </p>
    
    <input type="submit" value="Abschicken" title="Eintrag machen" name="submit" />&nbsp;
    <input type="reset" value="Zuruecksetzen" title="Felder leeren" name="reset" /></td>
    <br/>
    
    <br/><br/>
    </form>
    
    </body>
    </html>
    
    


    Als ausgabe bekomme ich aber die Namen ausgegeben:

    --------------------------------------------
    while($row = mysql_fetch_array($ergebnis))
    {
    echo $row['name']."<br />";
    }
    --------------------------------------------

    Also gehe ich davon aus das die Verbingung da ist.

    Wenn ich jetzt auf die phpmyadmin Seite gehen will bekomme ich folgende meldung:

    Die Sitzung konnte nicht ohne Fehler gestartet werden, schauen Sie bitte in das Fehlerprokoll von PHP und/oder Ihres Webservers und konfigurieren Sie PHP entsprechend (session.save_path, Schreibrechte).

    Frage 1.
    Was kann den da jetzt aufeinmal umgestellt sein, mir kommt vor wenn ich Daten in eine Datenbank hineinspiele und dann in phpmyadmin rein will kommt das?

    Hatte das schon mal und ist nach einer Zeit dann wieder verschwunden.

    Frage 2.
    Ist der Quellcode so korrekt oder sollte ich da was ndern?

    Danke im voraus
    Cid



  • Cid03User ist offline
    Newbie



    Registriert: 22.01.2011
    Beitraege: 7

    23.01.2011 um 16:43 Uhr

    Jetzt habe ich eine Stunde etwa gewartet und pause gemacht. Und nun komme ich wieder ins phpmyadmin rein???

    Leider gibt das genannte Test Script jetzt folgendes aus:

    Eintrag konnte nicht gemacht werden.

    ??? Kenn mich garnicht mehr aus ???



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1058

    24.01.2011 um 11:35 Uhr

    theoretisch sollte dein Script so eigentlich funktionieren, wobei du id beim Insert weglassen solltest, oder aber einen 'Platzhalter' verwenden solltest, sonst schreibst du ggf. den Namen in id, die Email dann in den Namen, usw. ...

    Probier mal ob's damit klappt ...

    <?php
    // Zum Aufbau der Verbindung zur Datenbank
    // die Daten erhalten Sie von Ihrem Provider
    mysql_connect("localhost", "BENUTZER","PASSWORT") OR DIE ("Keine Verbindung moeglich");
    mysql_select_db("NAMEderDATENBANK") or die ("Die Datenbank existiert nicht.");
    
    if (isset($_POST["submit"]))
             {
             $name = mysql_real_escape_string($_POST["name"]);
             $email = mysql_real_escape_string($_POST["email"]);
             $msg = mysql_real_escape_string($_POST["msg"]);
             
    
             $eintrag = "INSERT INTO testdb (id, name, email, msg) VALUES ('$name', '$email', '$msg')";
             $eintragen = mysql_query($eintrag) OR DIE (mysql_error());
    ?>
    
    <html>
    <head>
    <title>Test Script PHP MySql</title>
    </head>
    
    <body>
    
    <form action="" method="POST">
    
    <b>Vorname:</b>
    <input type="text" name="name" size="30" maxlength="20" value=""><br>
    <b>E-Mail:</b>
    <input type="text" name="email" size="30" maxlength="20" value=""><br>
    
    <textarea cols="55" rows="10" value="" name="msg"></textarea>
    
    </p>
    
    <input type="submit" value="Abschicken" title="Eintrag machen" name="submit" />&nbsp;
    <input type="reset" value="Zuruecksetzen" title="Felder leeren" name="reset" /></td>
    <br/>
    
    <br/><br/>
    </form>
    
    </body>
    </html>


    Der Befehlt mysql_error(); gibt dir - wenn du glueck hast - eine genauere Fehlerbezeichnung aus, sofern vorhanden ;)

    Wobei ich jetzt einfach mal behaupte deine Apache Webserver hat ne kleine Meise, geht - geht nicht, solche Spielchen sollten eigentlich nicht vorkommen ....



    Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 24.01.2011 um 11:37 Uhr ...
    ... { signatur } ...
  • Cid03User ist offline
    Newbie



    Registriert: 22.01.2011
    Beitraege: 7

    24.01.2011 um 21:15 Uhr

    Juhuuuuuuuu!!!

    Der Tipp mit dem mysql_error hat mich weiter gebracht, es war wirklich ein Problem mit der id. Der funktionierente Quelltext sieht jetzt so aus:

    $eintrag = "INSERT INTO testdb (name, email, msg) VALUES ('$name', '$email', '$msg';)";
    $eintragen = mysql_query($eintrag) or die (mysql_error());

    Ich habe einfach die id ganz herausgenommen, hat hoffentlich keine nachwirkungen.

    Also im Moment funktioniert die Test.php, ich werd mal weiter probieren.

    War sicher nicht die letzte Frage:)

    Danke nochmal



  • Cid03User ist offline
    Newbie



    Registriert: 22.01.2011
    Beitraege: 7

    24.01.2011 um 21:37 Uhr

    Ich habe mir jetzt auch noch mal die Originale Tutorial des Gstebuches angesehen. Dort habe ich es jetzt auch mit dem mysql_error versucht und folgendes heraus bekommen.

    Field 'kommentar' doesn't have a default value

    Das war von Anfang an das Problem, dadurch das ich in der MySql Datenbank die Spalte Kommentar auf NotNull habe, kommt diese Fehlermeldung. Laut ein paar anderen Internet Seiten soll das ein bug sein?! Aber da kenn ich mich jetzt zuwenig aus das ich dagegen was machen knnte.

    Kennt sich jemand mit diesem Problem hier aus?
    Kann ich das irgendwie umgehen, so das die Tutorial weiter mit Kommentar Funktion machen kann?

    LG Cid




[ 1 ] Seite 1 von 1


       ALL-INKL.COM - Webhosting Server Hosting Domain Provider