Skript funktioniert nicht nach Umstellung PHP 4 auf 5

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

  • Skript funktioniert nicht nach Umstellung PHP 4 auf 5

    Hallo zusammen,

    ich habe vor Urzeiten mal eine PHP-Vorlage aus dem Internet benutzt um ein Gästebuch für unser kleines Familienunternehmen zu schaffen. Mund-zu-Mund-Propaganda ist unsere beste Werbung. Nun hat 1&1 umgestellt von PHP 4 auf 5 und es kommt wie es kommen musste, nichts geht mehr und ich habe leider keine Ahnung was ich jetzt machen muss. Die Anzahl der Codezeilen ist eigentlich lächerlich aber ich habe eben keinen Ansatz was zu tun ist, da ich damals nur eine Vorlage übernommen habe. Ich lade die beiden Dateien zum Gästebuch hier einfach mal unverändert hoch. Nur die E-Mail für die Benachrichtung habe ich anonymisiert. Kann mir hier jemand helfen bitte?
    Angehängte Dateien

  • #2
    Tja, du kannst nicht unbedingt erwarten, dass Uralt-Scripte nach einem Wechsel der PHP-Hauptversion noch problemlos funktionieren.

    Was du jetzt machen solltest: Erst mal das error_reporting¹ vernünftig einstellen, so dass dir PHP anzeigt, was für Fehler es findet – damit du ein bisschen mehr zur Problemanalyse beitragen kannst, als nur „funzt nicht mehr”.

    ¹ Wenn dir das Stichwort nichts sagt, dann informiere dich.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Also ich habe mir hier die Testversion von phpDesigner heruntergeladen. Wenn ich da die Funktion PHP-Syntaxprüfung aufrufe erhalte ich zur Datei b_neww.php keine Fehler angezeigt. In dieser Datei werden die Eingaben getätigt, soweit ich es verstanden habe. Anschliessend wir die Datei b_simp.php aufgerufen und die Eingaben durchlaufen eine Fehler- und Spam-Prüfung. Für diese Datei erhalte ich folgende Fehler:

      Undefinded Variable: bNew on line 4
      Undefinded Variable: message on line 150

      Es besteht also ein Problem bei den genannten Variablen aber ich habe leider keine Ahnung, warum nach der Versionsumstellung ein Problem besteht und warum nur diese beiden Variablen betroffen sind, obwohl es noch mehr gibt.

      Für einen Profi ist das wahrscheinlich in 10 Sekunden gelöst aber für mich ist das momentan unüberwindbar da ich die Internetseite selbst über ein Baukastensystem gemacht habe und das Gästebuch nur aus einer Vorlage kopiert habe. Mir fehlt das Wissen.

      Kommentar


      • #4
        Zitat von stilgar Beitrag anzeigen
        Für diese Datei erhalte ich folgende Fehler:

        Undefinded Variable: bNew on line 4
        Undefinded Variable: message on line 150
        Ich hab’ nicht reingeschaut in deine Dateien, aber wenn das per Formular übergebene Werte sein sollen, dann ist vermutlich register_globals=off schuld.

        Lies hier nach, wie man solche Werte korrekt in Empfang nimmt: Tutorials - PHP / MySQL - register_globals - Überblick
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Ich bin nicht in der Lage das umzusetzen, da ich wie erwähnt leider null Ahnung von PHP habe. Ich habe die Vorlagen damals aus dem Internet gesucht, kopiert und die E-Mail angepasst. Damit endet mein PHP-Wissen. Ich habe aber wohl auch das falsche Unterforum erwischt.

          Bitte meine Anfrage daher in "Projekthilfe" verschieben. Ich suche jemanden der bereit ist, die Codezeilen zu prüfen und mir entweder direkt die Dateien anpasst oder ganz konkret sagen kann, was in welcher Zeile geändert werden muss. Ich spende auch gerne eine Familienpackung Gummibärchen oder vergleichbares.

          Hier nochmal die Skripte optisch besser aufbereitet zum direkten Lesen:

          Code:
          <html>
          <title>Unser Gästebuch</title>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
          </head>
          <body bgcolor="#EEFCFF" text="#000000" link="#0000FF" vlink="#0066CC" alink="#000099">
          <font face="Verdana, Arial, Helvetica"> 
                 <h3 align="center">
                
          <h3><font size="+2"><strong>Unser Gästebuch</strong></font><br>
                <br>
                <br>
                </h3>
                <p>Hier k&ouml;nnen Sie sich in unser G&auml;stebuch eintragen.</p>
                <br>
                <br>
                
                <form action=b_simp.php method=post>
                <table width="600" border="0" cellspacing="1" cellpadding="1">
                  <tr> 
                    <td width="200"> 
                      <p>Ihr Name:</p>
                    </td>
                    <td width="254" valign="middle"> 
                      <input type="text" name="name" size="35">
                    </td>
                  </tr>
                  <tr> 
                    <td width="200"> 
                      <p>Ihre eMail-Adresse:</p>
                    </td>
                    <td width="254" valign="middle"> 
                      <input type="text" name="email" size="35">
                    </td>
                  </tr>
                  <tr> 
                    <td width="200"> 
                      <p>Ihre Homepage:</p>
                    </td>
                    <td width="254" valign="middle"> 
                      <input type="text" name="homepage" size="35">
                    </td>
                  </tr>
                  <tr> 
                    <td width="200">
                      <p>Ihr Eintrag:</p>
                    </td>
                    <td width="254" valign="middle"> 
                      <textarea name="eintrag" rows="3" cols="30"></textarea>
                    </td>
                  </tr>
                  <tr> 
                    <td colspan="2"> 
                      <p align="center"> 
                        <input type="submit" name="bNew" value="Abschicken">
                      </p>
                    </td>
                  </tr>
                </table>
                </form> 
                      
          </body>
          </html>
          Code:
          <?php
          
          if ($bNew)
          {
              //Das Formular der Datei b_neww.php wurde ausgefüllt und abgeschickt
          
              //HTML- und PHP-Tags aus den Eingabefeldern entfernen
              $name = strip_tags($name);
              $email = strip_tags($email);
              $homepage = strip_tags($homepage);
              $eintrag = strip_tags($eintrag);
          
              //Konvertiere Zeilenumbrüche in HTML-<br>-Umbrüche
              $eintrag = nl2br($eintrag);
          
              //Eingaben überprüfen
          
              if (strlen($name) < 3)
              {
                  //Kein richtiger Name eingegeben
                  $error_msg = "Bitte geben Sie Ihren Namen an";
              }
          
              if (strlen($eintrag) < 3)
              {
                  //Kein Eintrag vorgenommen
                  $error_msg .= "<br>Bitte geben Sie auch etwas in das Gästebuch ein.";
              }
          
          
              if (ereg(".com", $email, $regs))
              {
                  //verbotene E-Mail
                  $error_msg .= "<br>.com E-Mail-Adresse nicht zulässig. ";
              }
          
          
              if (ereg("porn|Porn|************|************|viagra|Viagra|nude|Nude|tube|Tube|hentai|Hentai|ticket|Ticket|flight|Flight|design|Design|site|Site|washington|Teen|teen|lolita|Lolita|webcam|Webcam|xxx|XXX|YYY|yyy|Blowjob|blowjob|Oral|oral|Model|model|movie|Movie|real|Real|Cool|cool|anal|Anal|Free|free|good|Good|suck|Suck|pussy|Pussy|gay|Gay|****************|****************|http:|.com",
                  $eintrag, $regs))
              {
                  //verbotene Wörter
                  $error_msg .= "<br>Der Eintrag enthält verbotene Begriffe: ";
              }
          
          
              if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",
                  $email))
              {
                  //Mailadresse korrekt angegeben - Name entsprechend formatieren
                  $name = "<a href=mailto:" . $email . ">" . $name . "</a>";
              }
          
          
              if (ereg("^([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $homepage))
              {
                  //Es wurde auch eine Homepageadresse angegeben - entsprechende Formatierung vornehmen
                  if (!ereg("^http:////", $homepage))
                  {
                      //http:// fehlt in der Angabe der Adresse - hier ergänzen
                      $homepage = "http://" . $homepage;
                  }
                  $hp_format = "<br>Homepage: <a href=" . $homepage . " target='_new'>" . $homepage .
                      "</a>";
              }
              //Ende Eingaben überprüfen
          
              if ($error_msg)
              {
          
                  //Fehlerhafte Angaben - Hinweis ausgeben und keinen Eintrag vornehmen
                  $message = "<br>Ihr Eintrag konnte leider nicht in unser Gästebuch aufgenommen werden:<br>";
                  $message .= $error_msg;
                  $message .= $regs[0];
                  $message .= "<br>Klicken Sie auf <a href=javascript:history.back(1)>zurück</a>.<br><br>";
          
              } else
              {
          
                  //Neuen Gästebucheintrag vornehmen
                  //Neuen Gästebucheintrag formatieren
                  $new_entry = "<table width='600' border='0' cellspacing='1' cellpadding='1'>\n";
                  $new_entry .= "  <tr valign='top' >\n";
                  $new_entry .= "    <td class='kleiner' width='450'>Name: " . $name . $hp_format .
                      "</td>\n";
                  $new_entry .= "    <td class='kleiner' width='150'>" . date("d.m.Y H:i") .
                      " Uhr" . "</td>\n";
                  $new_entry .= "  </tr>\n";
                  $new_entry .= "  <tr valign='top'>\n";
                  $new_entry .= "    <td colspan='2' class='kleiner'>\n";
                  $new_entry .= "      <p>" . "<br>" . $eintrag . "</p>\n";
                  $new_entry .= "    </td>\n";
                  $new_entry .= "  </tr>\n";
                  $new_entry .= "  <tr>\n";
                  $new_entry .= "    <td colspan='2'>\n";
                  $new_entry .= "      <hr width='600' size='1' noshade>\n";
                  $new_entry .= "    </td>\n";
                  $new_entry .= "  </tr>\n";
                  $new_entry .= "</table>\n";
          
                  $guestfile = "b_dd.htm";
          
                  //Zuerst alte Einträge auslesen
                  if (file_exists($guestfile))
                  {
                      $fp = fopen($guestfile, "r");
                      $guest_data = fread($fp, filesize($guestfile));
                      fclose($fp);
                  }
          
                  //Gästebucheinträge neu anlegen und den neuen an den Beginn schreiben
                  $fp = fopen($guestfile, "w");
                  flock($fp, 1);
                  fputs($fp, $new_entry);
                  if (isset($guest_data))
                      fputs($fp, $guest_data);
                  flock($fp, 3);
                  fclose($fp);
          
                  //Mail verschicken
                  $recipient = "test@123.de";
                  $subject = "Neuer Eintrag im Gästebuch";
                  $header = "From: automailer";
          
          
                  mail($recipient, $subject, strip_tags($eintrag), $header);
          
              }
          }
          
          ?>
          <html>
          <title>Unser Gästebuch</title>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
          </head>
          <body bgcolor="#EEFCFF" text="#000000" link="#0000FF" vlink="#0066CC" alink="#000099">
          <font face="Verdana, Arial, Helvetica"> 
                 <h3 align="center">
                
          <h3><font size="+2"><strong>Unser Gästebuch</strong></font><br>
                <br>
                <br>
                </h3>
                <p><a href="b_neww.php">In das G&auml;stebuch eintragen</a><br>  <br>
                <br>
                  <?php
          
          echo $message
          
          ?>
                  <br>
                  <?php
          
          include ("b_dd.htm")
          
          ?>
                </p>
                
          </body>
          </html>

          Kommentar


          • #6
            Die Sache ist eigentlich ganz einfach. Du schaust in deinem Formular nach den Namen aller Eingabefelder. Also zum Beispiel "name". Dann suchst du in deinem PHP-Script nach einem $name und ersetzt den durch $_POST['name']. Das war es eigentlich schon. Aufpassen musst du nur hier:
            PHP-Code:
            //Mailadresse korrekt angegeben - Name entsprechend formatieren
            $name "<a href=mailto:" $email ">" $name "</a>"
            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Also ein paar Fehler sind ausgebessert.
              ereg verwirrt mich, ich persönlich würde da preg_match(); bevorzugen.

              HTML-Code:
              <!-- HTML mit Formular form.html -->
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/Transitional.dtd">
              <html>
              <head>
              <title>Unser Gästebuch</title>
              <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
              </head>
              <body bgcolor="#EEFCFF" text="#000000" link="#0000FF" vlink="#0066CC" alink="#000099">
              <h3><font size="+2"><strong>Unser Gästebuch</strong></font><br>
                    <br>
                    <br>
              </h3>
                    <p>Hier k&ouml;nnen Sie sich in unser G&auml;stebuch eintragen.</p>
                    <br>
                    <br>
                    <form action="b_simp.php" method="post">
                    <table width="600" border="0" cellspacing="1" cellpadding="1">
                      <tr>
                        <td width="200">
                          <p>Ihr Name:</p>
                        </td>
                        <td width="254" valign="middle">
                          <input type="text" name="name" size="35">
                        </td>
                      </tr>
                      <tr>
                        <td width="200">
                          <p>Ihre eMail-Adresse:</p>
                        </td>
                        <td width="254" valign="middle">
                          <input type="text" name="mail" size="35">
                        </td>
                      </tr>
                      <tr>
                        <td width="200">
                          <p>Ihre Homepage:</p>
                        </td>
                        <td width="254" valign="middle">
                          <input type="text" name="homepage" size="35">
                        </td>
                      </tr>
                      <tr>
                        <td width="200">
                          <p>Ihr Eintrag:</p>
                        </td>
                        <td width="254" valign="middle">
                          <textarea name="eintrag" rows="3" cols="30"></textarea>
                        </td>
                      </tr>
                      <tr>
                        <td colspan="2">
                          <p align="center">
                            <input type="submit" name="bNew" value="Abschicken">
                          </p>
                        </td>
                      </tr>
                    </table>
                    </form>
              </body>
              </html>
              PHP-Code:
              <?php
              # PHP-Auswertung b_simp.php
              error_reporting(E_ALL);

              if(!
              $_POST['bNew'])
              {
                
              header('location: form.html');
                exit;
              }
              elseif(
              $_POST['bNew'])
              {
                  
              //Das Formular der Datei b_neww.php wurde ausgefüllt und abgeschickt

                  //HTML- und PHP-Tags aus den Eingabefeldern entfernen
                  
              $name $_POST['name'];
                  
              $name strip_tags($name);
                  
              $mail $_POST['mail'];
                  
              $mail strip_tags($mail);
                  
              $homepage $_POST['homepage'];
                  
              $homepage strip_tags($homepage);
                  
              $eintrag $_POST['eintrag'];
                  
              $eintrag strip_tags($eintrag);
                  
              $hp_format "<br>Homepage: <a href=" $homepage " target='_new'>" $homepage ."</a>";

                  
              //Konvertiere Zeilenumbrüche in HTML-<br>-Umbrüche
                  
              $eintrag nl2br($eintrag);
                  
              //Eingaben überprüfen

                  
              if (strlen($name) < 3)
                  {
                      
              //Kein richtiger Name eingegeben
                      
              $error_msg "Bitte geben Sie Ihren Namen an";
                  }

                  if (
              strlen($eintrag) < 3)
                  {
                      
              //Kein Eintrag vorgenommen
                      
              $error_msg "<br>Bitte geben Sie auch etwas in das Gästebuch ein.";
                  }


                  if (
              ereg(".com"$mail$regs))
                  {
                      
              //verbotene E-Mail
                      
              $error_msg "<br>.com E-Mail-Adresse nicht zulässig. ";
                  }


                  if (
              ereg("porn|Porn|************|************|viagra|Viagra|nude|Nude|tube|Tube|hentai|Hentai|ticket|Ticket|flight|Flight|design|Design|site|Site|washington|Teen|teen|lolita|Lolita|webcam|Webcam|xxx|XXX|YYY|yyy|Blowjob|blowjob|Oral|oral|Model|model|movie|Movie|real|Real|Cool|cool|anal|Anal|Free|free|good|Good|suck|Suck|pussy|Pussy|gay|Gay|****************|****************|http:|.com",
                      
              $eintrag$regs))
                  {
                      
              //verbotene Wörter
                      
              $error_msg "<br>Der Eintrag enthält verbotene Begriffe: ";
                  }


                  if (
              ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",
                      
              $mail))
                  {
                      
              //Mailadresse korrekt angegeben - Name entsprechend formatieren
                      
              $name "<a href=mailto:" $mail ">" $name "</a>";
                  }



                  
              //Ende Eingaben überprüfen

                  
              if (isset($error_msg))
                  {

                      
              //Fehlerhafte Angaben - Hinweis ausgeben und keinen Eintrag vornehmen
                      
              $message "<br>Ihr Eintrag konnte leider nicht in unser Gästebuch aufgenommen werden:<br>
                                  Klicken Sie auf <a href=javascript:history.back(1)>zurück</a>.<br><br>"
              ;

                  } else
                  {
                      
              //Neuen Gästebucheintrag vornehmen
                      //Neuen Gästebucheintrag formatieren
                      
              $new_entry "<table width='600' border='0' cellspacing='1' cellpadding='1'>\n";
                      
              $new_entry .= "  <tr valign='top' >\n";
                      
              $new_entry .= "    <td class='kleiner' width='450'>Name: " $name $hp_format .
                          
              "</td>\n";
                      
              $new_entry .= "    <td class='kleiner' width='150'>" date("d.m.Y H:i") .
                          
              " Uhr" "</td>\n";
                      
              $new_entry .= "  </tr>\n";
                      
              $new_entry .= "  <tr valign='top'>\n";
                      
              $new_entry .= "    <td colspan='2' class='kleiner'>\n";
                      
              $new_entry .= "      <p>" "<br>" $eintrag "</p>\n";
                      
              $new_entry .= "    </td>\n";
                      
              $new_entry .= "  </tr>\n";
                      
              $new_entry .= "  <tr>\n";
                      
              $new_entry .= "    <td colspan='2'>\n";
                      
              $new_entry .= "      <hr width='600' size='1' noshade>\n";
                      
              $new_entry .= "    </td>\n";
                      
              $new_entry .= "  </tr>\n";
                      
              $new_entry .= "</table>\n";

                      
              $guestfile "form.html";

                      
              //Zuerst alte Einträge auslesen
                      
              if (file_exists($guestfile))
                      {
                          
              $fp fopen($guestfile"r");
                          
              $guest_data fread($fpfilesize($guestfile));
                          
              fclose($fp);
                      }

                      
              //Gästebucheinträge neu anlegen und den neuen an den Beginn schreiben
                      
              $fp fopen($guestfile"w");
                      
              flock($fp1);
                      
              fputs($fp$new_entry);
                      if (isset(
              $guest_data))
                      {
                      
              fputs($fp$guest_data);
                      
              flock($fp3);
                      
              fclose($fp);

                      
              //Mail verschicken
                      
              $recipient "test@123.de";
                      
              $subject "Neuer Eintrag im Gästebuch";
                      
              $header "From: automailer";


                      
              mail($recipient$subjectstrip_tags($eintrag), $header);
                      }
                  }
              }

              ?>
              <html>
              <head>
              <title>Unser Gästebuch</title>
              <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
              </head>
              <body bgcolor="#EEFCFF" text="#000000" link="#0000FF" vlink="#0066CC" alink="#000099">
              <h3><font size="+2"><strong>Unser Gästebuch</strong></font><br>
                    <br>
                    <br>
                    </h3>
                    <p><a href="form.html">In das G&auml;stebuch eintragen</a><br>  <br>
                    <br>
                      <?php

              echo $new_entry;

              ?>
              </body>
              </html>
              Ohne Gewährleistung
              Gruß

              Kommentar

              Lädt...
              X