Gästebuch + Mysql

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gästebuch + Mysql

    Hi ich habe ein Problem mit meinen Gästebuch die eingegebenen Daten im Formular werden nicht an die Datenbank gesendet stattdessen kommt ein weißes Browserfenster.

    guestbook.php

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors'1);

    include 
    'magic_quotes_remove_slashes.php'

    $db = @new mysqli('localhost''username''kennwort''db');
    if (
    mysqli_connect_errno()) {
        die(
    'Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
    }

    readfile('header.html'); 
    if (
    'POST' == $_SERVER['REQUEST_METHOD']) {

    } else {

    }

    readfile('footer.html');

    } else {
        
    $sql 'SELECT
                    Datum,
                    Autor,
                    Inhalt
                FROM
                    Guestbook
                ORDER BY
                    Datum DESC'
    ;
        
    $result $db->query($sql);
        if (!
    $result) {
            die(
    'Der Query konnte nicht ausgeführt werden: '.$db->error);
        }
        if (
    $result->num_rows) {
            while (
    $row $result->fetch_assoc()) {
                echo 
    '<div class="beitrag">'."\n";
                echo 
    '    <span class="autor">'.htmlspecialchars($row['Autor'])."</span>\n";
                echo 
    '    <span class="datum">'.$row['Datum']."</span>\n";
                echo 
    "    <p>\n";
                echo 
    nl2br(htmlspecialchars(preg_replace('~\S{30}~''\0 '$row['Inhalt'])));
                echo 
    "    </p>\n";
                echo 
    "</div>\n";
            }
        } else {
            echo 
    '<p class="info">Es sind keine Gästebucheinträge vorhanden</p>';
        } 
        
    readfile('formular.html');
    }
    if (
    'POST' == $_SERVER['REQUEST_METHOD']) {
        if (!isset(
    $_POST['Autor'], $_POST['Inhalt'], $_POST['Antwort'], $_POST['formaction'])) {
            die (
    'Benutzen sie nur Formulare von der Homepage.');
        }
        if ((
    '' == $autor trim($_POST['Autor'])) or 
                (
    '' == $inhalt trim($_POST['Inhalt'])) or
                (
    '' == $antwort trim($_POST['Antwort']))) {
            die (
    'Bitte füllen sie das Formular vollständig aus.');
        }
        if (
    '' != $antwort) {
            die (
    'Sie müssen die Frage richtig beantworten.');
        }
    } else {
     
    $sql 'INSERT INTO
                    Guestbook(Autor, Datum, Inhalt)
                VALUES
                    (?, NOW(), ?)'
    ;
        
    $stmt $db->prepare($sql);
        if (!
    $stmt) {
            die (
    'Es konnte kein SQL-Query vorbereitet werden: '.$db->error);
        }
    } else {
    $stmt->bind_param('ss'$autor$inhalt);
        if (!
    $stmt->execute()) {
            die (
    'Query konnte nicht ausgeführt werden: '.$stmt->error);
        }
        echo 
    '<p class="info">Gästebucheintrag hinzugefügt. <a href="guestbook.php">Zurück zum Gästebuch</a>.</p>';
    } else {
    ?>
    Zuletzt geändert von Stefan_; 23.05.2010, 11:22.

  • #2
    Hallo,

    ich kann deinen else-Blöcken leider nicht folgen, das müsste massig Parserfehler verursachen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Zitat von AmicaNoctis Beitrag anzeigen
      das müsste massig Parserfehler verursachen.
      ... oder eben die erwähnte „weiße Seite“, wenn display_errors auf off steht.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ja du hast recht bei mir ist wirklich
        display_errors
        auf ausgestellt. Um die Funktion einzustellen muss ich ja nur die Tabelle Mysql aufrufen und dann bei Sql folgenden code eingeben.
        Code:
        display_errors = On
        Aber dann kommt das der code fehlerhaft ist.

        Kommentar


        • #5
          Das hat mit SQL gar nichts zu tun, das ist eine Einstellung in der php.ini.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Oder man setzt das per PHP.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Zitat von Kropff Beitrag anzeigen
              Oder man setzt das per PHP.
              Nein, das bringt gar nichts, darum geht es ja. Um das zu setzen, muss erstmal das Skript geparst werden und mit syntaktischen Fehlern wird das halt nichts.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Zitat von AmicaNoctis Beitrag anzeigen
                Nein, das bringt gar nichts, darum geht es ja. Um das zu setzen, muss erstmal das Skript geparst werden und mit syntaktischen Fehlern wird das halt nichts.
                Und warum bekomme ich dann ein "Parse error: parse error in F:\xampp\htdocs\test.php on line 21"?

                @TS
                Schau dir mal die Zeilen genau an:
                PHP-Code:
                readfile('header.html'); 
                if (
                'POST' == $_SERVER['REQUEST_METHOD']) {

                } else {

                }

                readfile('footer.html');

                } else { 
                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Also ich habe jetzt mal bei mir die php.ini angepasst.
                  Und ich denke das ist schon der fehler den AmicaNoctis schon angesprochen hat mit den else Blöcken.

                  Ich werde dass mal grad umändern ich danke euch jetzt schon mal für eure tolle hilfe.

                  Kommentar


                  • #10
                    Zitat von Kropff Beitrag anzeigen
                    Und warum bekomme ich dann ein "Parse error: parse error in F:\xampp\htdocs\test.php on line 21"?
                    Weil es in deiner php.ini aktiviert ist, so wie sich das gehört. Wenn es aber dort nicht aktiviert ist, kannst du es auch nicht per Skript aktivieren, weil dieses Skript erst verarbeitet werden kann, wenn es erfolgreich geparst wurde, was es in diesem Falle nicht wird.
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      Zitat von AmicaNoctis Beitrag anzeigen
                      Weil es in deiner php.ini aktiviert ist, so wie sich das gehört. Wenn es aber dort nicht aktiviert ist, kannst du es auch nicht per Skript aktivieren, weil dieses Skript erst verarbeitet werden kann, wenn es erfolgreich geparst wurde, was es in diesem Falle nicht wird.
                      Moment, bei unseren Firmen-Servern ist ist das standardmäßig in der php.ini deaktiviert. Allerdings habe ich die Rechte, dass per PHP zu setzen. Oder rede ich jetzt Blödsinn? Muss mal unseren Admin am Dienstag fragen.

                      Peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        Zitat von Kropff Beitrag anzeigen
                        Allerdings habe ich die Rechte, dass per PHP zu setzen.
                        Ja, das kannst du ja auch gerne machen - wenn's per Default aktiviert ist, kannst du's im Script abstellen, und vice versa.

                        Aber in Bezug auf fatale Fehler, die schon auftreten, bevor PHP dein Script überhaupt ausführt, hilft ein Setzen im Script natürlich nichts.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Zitat von wahsaga Beitrag anzeigen
                          und vice versa.
                          OffTopic:
                          Bist wohl vorher hier gewesen.

                          Zitat von wahsaga Beitrag anzeigen
                          Aber in Bezug auf fatale Fehler, die schon auftreten, bevor PHP dein Script überhaupt ausführt, hilft ein Setzen im Script natürlich nichts.
                          Ja, ich Torfkopp. Steht sogar auf meiner Seite. Wenn man fast drei Jahre lang nichts mehr mit Serverkonfiguration zu tun hatte, dann entfleucht einem das einfach.

                          Peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Kommentar


                          • #14
                            Also bei mir taucht nur noch ein Fehler auf

                            Parse error: syntax error, unexpected $end in ..../guestbook.php on line 74

                            Ich habe aber die else blöcke gelöscht.

                            Kommentar


                            • #15
                              Dann schau dir doch bitteschön mal das Ende deines Scriptes an:
                              PHP-Code:
                              } else { 
                              Und bitte achte genau auf deine Bedingungen:
                              PHP-Code:
                              if ('POST' == $_SERVER['REQUEST_METHOD']) 
                              {
                                ...
                              }
                              else 
                              {
                                ...
                              }
                              else
                              {
                                ...

                              Das kann nicht funktionieren. Und falls möglich, solltest du auch mal ein wenig selber mitdenken.

                              Peter
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar

                              Lädt...
                              X