Ankündigung

Einklappen
Keine Ankündigung bisher.

Gaestebuch

Einklappen

Neue Werbung 2019

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

  • Gaestebuch

    Hallo zusammen,

    ich bin gerade dabei eine Gaestebuch Seite zu erstellen, komme aber nicht weiter, da andauernd folgende Fehlermeldung auftaucht:

    Parse error: syntax error, unexpected '$ersteller' (T_VARIABLE)

    Ich hoffe, es kann mir jemand weiterhelfen. Vielen Dank!

    PHP-Code:
    <?php 
    $db 
    mysqli_connect"localhost""...""...""...");
        
    SESSION_START();



        
    $query="SELECT * FROM gaestebuch WHERE erstellerID ='".$_SESSION['user']."'";
            
    $result=mysqli_query($db$query);
    ?>


    <?php
      
        $ersteller
    =MitgliedsID
      
        
    #### Datenbank ausgewählt, jetzt Gästebuch Programm ####

        
    $ersteller trim(strip_tags($_POST["ersteller"]));
        
    $titel trim(strip_tags($_POST["titel"]));
        
    $beitrag trim(strip_tags($_POST["beitrag"]));

        
    # Wurde das Formular ausgefüllt ?
        
    if (!empty($_POST["submit"]))
            {
            
    # Prüfen ob etwas fehlt
            
    if (empty($ersteller))    $_errors[] = "Name Fehlt.";
            if (empty(
    $titel))        $_errors[] = "Titel fehlt.";
            if (empty(
    $beitrag))    $_errors[] = "Beitrag fehlt.";

            
    # Sind Fehler im Array $_errors gespeichert ?
            
    if (count($_errors) > 0)
                {
                
    # Ja, Fehler vorhanden - anzeigen !
                
    foreach($_errors as $_error)
                    {
                    echo 
    $_error "<br>";
                    }
                }
            else
                {
                
    # Nein, keine Fehler - Eintrag abspeichern
                
    $_sql  'INSERT INTO gaestebuch
                         (ersteller,titel,beitrag)
                           VALUES (
                         "'
    .mysqli_real_escape_string($ersteller).'",
                         "'
    .mysqli_real_escape_string($titel).'",
                         "'
    .mysqli_real_escape_string($beitrag).'",
                         NOW());'
    ;

                
    mysqli_query($_sql$link);

                echo 
    "<b>Danke für Ihren Eintrag.</b><br><br>";
                }
            }

    ?>
    <b>Alle G&auml;stebucheintr&auml;ge:</b><br>
    <br>

    <?php
        $_sql 
    "SELECT * FROM gaestebuch";
        
    $_res mysqli_query($_sql$link);
        while (
    $row mysqli_fetch_array($_resMYSQL_ASSOC))
            {
            echo 
    "<hr>";
            echo 
    "Eintrag Nummer: " $row["id"];
            echo 
    " von " $row["ersteller"];
            echo 
    "'<br>Titel:' " $row["titel"];
            echo 
    "<br>Text: "str_replace("\n""<br>"$row["beitrag"]);
            echo 
    "<hr>";
            }
    ?>
    <br><br>
    <form action="deinprofil.php" method="POST">
    Ihr Name: <input name="ersteller" maxlength=30><br>
    Titel des Beitrags: <input name="titel" maxlength=100><br>
    Ihr G&auml;stebucheintrag:<br>
    <textarea name="beitrag" rows=5 cols=50></textarea><br>
    <input type="submit" name="submit" value="Eintragen">
    </form>


  • #2
    Hi,

    ?>


    <?php
    Warum?

    $ersteller=MitgliedsID
    ; fehlt und $ (?) oder ist das ne Konstante??

    mfg wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Danke! Das ; und $ habe ich ergänzt.

      Jedoch kommen jetzt die folgenden Meldungen.
      Wahrscheinlich keine große Sache, aber habe erst angefangen mit php zu arbeiten




      Notice: Undefined index: ersteller

      Notice: Undefined index: titel

      Notice: Undefined index: beitrag



      Notice: Undefined variable: link
      Warning: mysqli_query() expects parameter 1 to be mysqli, string given

      Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given

      Kommentar


      • #4
        Zeig mal deinen Quellcode bitte, wie er jetzt aussieht. Die Notice Geschichten sind Hinweise, das du die Variablen nicht definiert hast.

        Du hast $db gesetzt, aber nutzt weiter unten das hier:

        PHP-Code:
        mysqli_query($_sql$link); 
        das geht natürlich nicht.

        mfg wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          PHP-Code:
          <?php
              $query
          ="SELECT * FROM gaestebuch WHERE erstellerID ='".$_SESSION['user']."'";
                  
          $result=mysqli_query($db$query);
          ?>


          <?php
            
              $ersteller
          =$_SESSION['user'];
              
            
              
          #### Datenbank ausgewählt, jetzt Gästebuch Programm ####

              
          $ersteller trim(strip_tags($_POST["ersteller"]));
              
          $titel trim(strip_tags($_POST["titel"]));
              
          $beitrag trim(strip_tags($_POST["beitrag"]));

              
          # Wurde das Formular ausgefüllt ?
              
          if (!empty($_POST["submit"]))
                  {
                  
          # Prüfen ob etwas fehlt
                  
          if (empty($ersteller))    $_errors[] = "Name Fehlt.";
                  if (empty(
          $titel))        $_errors[] = "Titel fehlt.";
                  if (empty(
          $beitrag))    $_errors[] = "Beitrag fehlt.";

                  
          # Sind Fehler im Array $_errors gespeichert ?
                  
          if (count($_errors) > 0)
                      {
                      
          # Ja, Fehler vorhanden - anzeigen !
                      
          foreach($_errors as $_error)
                          {
                          echo 
          $_error "<br>";
                          }
                      }
                  else
                      {
                      
          # Nein, keine Fehler - Eintrag abspeichern
                      
          $_sql  'INSERT INTO gaestebuch
                               (ersteller,titel,beitrag)
                                 VALUES (
                               "'
          .mysqli_real_escape_string($ersteller).'",
                               "'
          .mysqli_real_escape_string($titel).'",
                               "'
          .mysqli_real_escape_string($beitrag).'",
                               NOW());'
          ;

                      
          mysqli_query($_sql$link);

                      echo 
          "<b>Danke für Ihren Eintrag.</b><br><br>";
                      }
                  }

          ?>
          <b>Alle G&auml;stebucheintr&auml;ge:</b><br>
          <br>

          <?php
              $_sql 
          "SELECT * FROM gaestebuch";
              
          $_res mysqli_query($_sql$link);
              while (
          $row mysqli_fetch_array($_resMYSQL_ASSOC))
                  {
                  echo 
          "<hr>";
                  echo 
          "Eintrag Nummer: " $row["id"];
                  echo 
          " von " $row["ersteller"];
                  echo 
          "'<br>Titel:' " $row["titel"];
                  echo 
          "<br>Text: "str_replace("\n""<br>"$row["beitrag"]);
                  echo 
          "<hr>";
                  }
          ?>
          <br><br>
          <form action="deinprofil.php" method="POST">
          Ihr Name: <input name="ersteller" maxlength=30><br>
          Titel des Beitrags: <input name="titel" maxlength=100><br>
          Ihr G&auml;stebucheintrag:<br>
          <textarea name="beitrag" rows=5 cols=50></textarea><br>
          <input type="submit" name="submit" value="Eintragen">
          </form>
          </html>

          Kommentar


          • #6
            Hi,

            $ersteller=$_SESSION['user'];
            ich vermisse session_start(); in deiner Anwendung.

            ?>


            <?php
            immer noch unnötig und kann gelöscht werden.

            $result=mysqli_query($db, $query);
            //...
            mysqli_query($_sql, $link);
            Vergleich die beiden Zeilen (siehe letzten Post von mir) und korrigiere die entsprechend.

            <b>Alle G&auml;stebucheintr&auml;ge:</b><br>
            Bitte korrekte Kodierung und nicht mit &uuml; usw arbeiten.

            mfg Wolf29
            while (!asleep()) sheep++;

            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

            Kommentar


            • #7
              Danke für die Antwort.

              SESSION_START(); habe ich weiter oben im Skript. Hatte ich nicht kopiert, da dazwischen noch anderes kommt, was jetzt hierfür nicht relevant ist.

              Die anderen Fehler hab ich zwar behoben aber leider hat sich nix geändert.

              Kommentar


              • #8
                Notice: Undefined index: ersteller

                Notice: Undefined index: titel

                Notice: Undefined index: beitrag
                Diese Meldungen resultieren daraus, das du POST Daten abgreifst, ohne zu überprüfen, ob überhaupt etwas gepostet worden ist:
                PHP-Code:
                    $ersteller trim(strip_tags($_POST["ersteller"])); 
                    
                $titel trim(strip_tags($_POST["titel"])); 
                    
                $beitrag trim(strip_tags($_POST["beitrag"])); 
                Typischer Anfängerfehler.

                Immer zuerst überprüfen, ob ein Arraywert auch vorhanden ist:
                PHP-Code:
                if (isset($_POST['ersteller'])) 
                nur wenn die if-Abfrage erfolgreich durchläuft, kannst du sicher sein, das $_POST['ersteller'] existiert - erst dann kannst du den Wert auslesen.
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Die anderen Fehler hab ich zwar behoben aber leider hat sich nix geändert.
                  Zeig mal, wie es jetzt aussieht.
                  while (!asleep()) sheep++;

                  Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                  Kommentar


                  • #10
                    PHP-Code:
                     mysqli_query($_sql$link); 
                    Variable $link wird im gezeigten Script nirgendwo angelegt...

                    PHP-Code:
                      $result=mysqli_query($db$query); 
                    Gleiches gilt für $db, ganz am Anfang...

                    Du musst Variablen erstmal mit einem Wert belegen, bevor du den Wert an anderer Stelle benutzen willst.
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php 
                      $db 
                      mysqli_connect"localhost""...""....""...");
                          
                      SESSION_START();
                          
                      //echo var_dump($_SESSION);


                      //echo $_SESSION['user'];



                          
                          
                          
                      <html>

                      <
                      head>
                      <
                      titleBOOKSHARING </title>
                      </
                      head>
                      <
                      body background="Layoutoffenesbuch.jpg">


                      <
                      br>
                      <
                      style type="text/css">
                      .
                      kursiv font-style:italic; }
                      .
                      grosskursiv font-style:italicfont-size:200%; }
                      </
                      style>
                      <
                      h1> &nbsp <span class="grosskursiv">BOOKSHARING </span> <span class="kursiv">&nbsp Die kostenlose Büchertauschbörse.</span></h1
                      <
                      br>

                          
                      $query="SELECT * FROM gaestebuch WHERE erstellerID ='".$_SESSION['user']."'";
                              
                      $result=mysqli_query($db$query);


                        
                          
                      $ersteller=$_SESSION['user'];
                          
                        
                          
                      #### Datenbank ausgewählt, jetzt Gästebuch Programm ####

                          
                      $ersteller trim(strip_tags($_POST["ersteller"]));
                          
                      $titel trim(strip_tags($_POST["titel"]));
                          
                      $beitrag trim(strip_tags($_POST["beitrag"]));

                          
                      # Wurde das Formular ausgefüllt ?
                          
                      if (!empty($_POST["submit"]))
                              {
                              
                      # Prüfen ob etwas fehlt
                              
                      if (empty($ersteller))    $_errors[] = "Name Fehlt.";
                              if (empty(
                      $titel))        $_errors[] = "Titel fehlt.";
                              if (empty(
                      $beitrag))    $_errors[] = "Beitrag fehlt.";

                              
                      # Sind Fehler im Array $_errors gespeichert ?
                              
                      if (count($_errors) > 0)
                                  {
                                  
                      # Ja, Fehler vorhanden - anzeigen !
                                  
                      foreach($_errors as $_error)
                                      {
                                      echo 
                      $_error "<br>";
                                      }
                                  }
                              else
                                  {
                                  
                      # Nein, keine Fehler - Eintrag abspeichern
                                  
                      $_sql  'INSERT INTO gaestebuch
                                           (ersteller,titel,beitrag)
                                             VALUES (
                                           "'
                      .mysqli_real_escape_string($ersteller).'",
                                           "'
                      .mysqli_real_escape_string($titel).'",
                                           "'
                      .mysqli_real_escape_string($beitrag).'",
                                           NOW());'
                      ;

                                  
                      mysqli_query($_sql$db);

                                  echo 
                      "<b>Danke für Ihren Eintrag.</b><br><br>";
                                  }
                              }


                      <
                      b>Alle G&auml;stebucheintr&auml;ge:</b><br>
                      <
                      br>


                          
                      $_sql "SELECT * FROM gaestebuch";
                          
                      $_res mysqli_query($_sql$db);
                          while (
                      $row mysqli_fetch_array($_resMYSQL_ASSOC))
                              {
                              echo 
                      "<hr>";
                              echo 
                      "Eintrag Nummer: " $row["id"];
                              echo 
                      " von " $row["ersteller"];
                              echo 
                      "'<br>Titel:' " $row["titel"];
                              echo 
                      "<br>Text: "str_replace("\n""<br>"$row["beitrag"]);
                              echo 
                      "<hr>";
                              }
                      ?>
                      <br><br>
                      <form action="deinprofil.php" method="POST">
                      Ihr Name: <input name="ersteller" maxlength=30><br>
                      Titel des Beitrags: <input name="titel" maxlength=100><br>
                      Ihr G&auml;stebucheintrag:<br>
                      <textarea name="beitrag" rows=5 cols=50></textarea><br>
                      <input type="submit" name="submit" value="Eintragen">

                      <html>

                      Kommentar


                      • #12
                        16.14. Warum soll ich nicht SELECT * schreiben?
                        http://www.php-faq.de/q/q-sql-select.html
                        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                        Kommentar


                        • #13
                          Betreibe Debugging: http://www.php.de/wiki-php/index.php...ging:Leitfaden

                          Direkt hier nach fehlt ein ?>

                          <?php
                          $db = mysqli_connect( "localhost", "...", "....", "...");
                          SESSION_START();
                          //echo var_dump($_SESSION);


                          //echo $_SESSION['user'];
                          Bitte arbeite das Grundlagentutorial einmal durch. Das meiste sind wirklich Basics inklusive Syntaxfehler (die du üblicherweise in ner vernünftigen Entwicklungsumgebung sofort erkennst)!
                          while (!asleep()) sheep++;

                          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                          Kommentar


                          • #14
                            Ok, trotzdem danke für die Hilfe!

                            Kommentar


                            • #15
                              Ich habe es jetzt hinbekommen ein einfacheres Gästebuch zu erstellen.
                              Alllerdings werden in der Datenbank beim Aktualisieren der Seite immer die vorangegangenen Einträge gespeichert und im Gästebuch angezeigt (was damit einhergeht, dass die Meldung kommt, dass der eintrag gespeichert wurde).
                              Wie lässt sich das beheben? Hat da jemand einen Tipp? Danke!

                              PHP-Code:
                              <?php 
                              $db 
                              mysqli_connect"localhost""...""...""...");
                                  
                              SESSION_START();
                                  
                              //echo var_dump($_SESSION);


                              //echo $_SESSION['user'];

                              if (isset($_SESSION['user']))
                                      {
                                      }
                              else { echo 
                              "Bitte logge Dich ein!";
                                      echo 
                              "<td><input type=\"button\" name=\"change\" value=\"Zum Login\" onClick=\"self.location.href='login.php'\"></td>";
                                      die;
                                  }

                              ?>


                                  
                                  
                                  
                              <html>

                              <head>
                              <title> BOOKSHARING </title>
                              </head>
                              <body background="">


                              <br>
                              <style type="text/css">
                              .kursiv { font-style:italic; }
                              .grosskursiv { font-style:italic; font-size:200%; }
                              </style>
                              <h1> &nbsp <span class="grosskursiv">BOOKSHARING </span> <span class="kursiv">&nbsp Die kostenlose Büchertauschbörse.</span></h1> 
                              <br>
                              <table align="center">
                              <tr>
                               <td> 
                               <h1> Ins G&auml;stebuch eintragen... </h1> 
                              </td>
                               </tr>
                               <form method="post" action="">
                              </table>
                              <table align="center">
                              <tr> 
                              <td> 
                                       Dein Name: <input name="ersteller" maxlength=30/><br>
                              </td>
                              </tr>
                              <td>
                              <tr>
                              Betreff: <input type="text" name="titel" maxlength=100/><br>
                              </tr>
                              </td>
                              <td>
                              <tr>
                              Ihr G&auml;stebucheintrag:<br>
                              <td>
                              <tr>
                              <textarea name="beitrag" rows=5 cols=70></textarea><br>
                              </td>
                              </tr>
                              <td>
                              <tr>
                              <input type="submit" name="submit" value="Eintragen">
                              </td>
                              </tr>

                               </table>
                              </form>
                              </body>
                              </html>

                              <?php
                              include("connect.php");

                              $sql="SELECT * From gaestebuch ORDER BY datum";
                                  
                              $result=mysql_query($sql);
                                  while (
                              $row=mysql_fetch_array ($result)) {
                                  
                                  echo
                              '

                                      <strong>'
                              .$row['ersteller'].'</strong> schrieb am '.$row['datum'].' </br>
                                      <strong>'
                              .$row['titel'].'</strong>
                                      <hr/>
                                      <p>
                                      '
                              .$row['beitrag'].'
                                      </p>
                                  '
                              ;
                                      
                                  }

                              if (isset(
                              $_POST['submit'])&& $_POST['submit'] == 'Eintragen')
                              {
                                  
                              $ersteller $_POST['ersteller'];
                              $titel $_POST['titel'];
                              $beitrag $_POST['beitrag'];

                              if (
                              $ersteller == "" OR $titel == "" OR $beitrag=="")
                              {
                              echo
                              '
                              <script language ="javascript">
                              window.alert("Bitte alle Felder ausfüllen!"); location:"";
                              </script>
                              '
                              ;
                              } else 
                              {
                              $datum date('d.m.y');

                              $query=("INSERT INTO gaestebuch VALUES ('','".$ersteller."','".$titel."','".$beitrag."','".$datum."')");
                              echo (
                              mysql_query($query)) ? '<script language="JavaScript">alert("Der Eintrag wurde hinzugefügt.");location:"";
                              </script>'
                              '<script language="JavaScript">alert("Leider ist ein Fehler aufgetreten"); location="";
                              </script>'
                              ;



                              }
                              }
                                  

                              ?>

                              Kommentar

                              Lädt...
                              X