Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular Problem

Einklappen

Neue Werbung 2019

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

  • Formular Problem

    Hallo PHP Profis.
    Ich weiss einfach nicht mehr weiter und bin komplett am verzweifeln. Ich hatte vor einiger Zeit mal ein kleines Gästebuch gebastelt, welches auch prima läuft. Nun habe ich versucht genau das Gleiche Script für eine andere Seite zu nutzen und irgendwie scheint beim drücken des "Senden" Buttons nix zu passieren. Ich versteh nur einfach nich wo der Fehler liegt. Hier mal ein wenig Code:

    Hier ist das Problem, denn $action ist NIE = "add". Aber warum ?
    PHP-Code:
    <body oncontextmenu="return false">
    <?php
    if ($action == "add"){
        
    if (
    $name == ""){
    Hier ist das Formular
    Code:
    <form name="gb" action="gb_eintrag.php?action=add" method="post">
       <table border="0" cellpadding="0" cellspacing="0" style="font-size:12px;font-family:arial">
          <tr>
             <td width="80" valign="bottom">&nbsp;&nbsp;<b>Name:</b></td>
             <td width="250" style="padding-top:3px"><input type="text" name="name" size="24" style="font-size: 9pt;background-color:#ddd"></td>
          </tr>
          <tr>
             <td></td>
             <td style="font-size:11px;font-weight:bold;padding-top:8px"><br>
                <span style="padding-left:47px">Es sind noch&nbsp;&nbsp;
                <input type="text" name="eing_rest" size="1" style="border:none" onFocus="if(this.blur)this.blur()" value="500" disabled="disabled">
                Zeichen frei:</span>
             </td>
          </tr>
          <tr>
             <td width="80">&nbsp;&nbsp;<b>Text:</b></td>
             <td width="250">
                <textarea name="text" cols="35" rows="5" onKeyUp="eing_zaehlen(event)" 
                 wrap="virtual" style="font-size: 9pt;background-color:#ddd"></textarea>
             </td>
          </tr>
          <tr>
             <td></td>
             <td>
                <input type="submit" value="Absenden" /><span style="padding-left:110px"><input type="button" onclick="oeffne(); return false" value="Zurück"></span>
             </td>
          </tr>
       </table>
       </form>

    1000 Dank

  • #2
    bitte verwende die PHP und Code Tags ...

    und so auf die schnelle gesehen wahrscheinlich ein Register Global Problem?
    Und warum setzt du im Formular die Variable per GET hast aber method POST?

    Kommentar


    • #3
      Habs geändert .. sorry

      Kommentar


      • #4
        und jetzt schaust dir am besten das mal an: http://php.net/manual/de/security.globals.php
        Zudem am besten noch ein wenig Klarheit im Code schaffen.. Die Action kannst du ja z.B. als Hidden HTML Feld weitergeben und dann eben mit $_POST weiter bearbeiten. Dazu müsstest du aber im <form> Tag bei action das "?action=add" wegnehmen.

        Kommentar


        • #5
          An die PHP Einstellungen des Servers hatte ich auch schon gedacht, aber was meinst du damit dass ich die Varible mit GET hole? Wo denn?

          Kommentar


          • #6
            Zitat von x.Oliver Beitrag anzeigen
            An die PHP Einstellungen des Servers hatte ich auch schon gedacht, aber was meinst du damit dass ich die Varible mit GET hole? Wo denn?

            Lies doch bitte erst den Inhalt des Links den ich gepostet habe

            Kommentar


            • #7
              in TXT Datei schreiben klappt nicht

              Hallo

              Ich bin noch recht neu was PHP angeht. Ich hab ein Gästebuch geschrieben was die Einträge in eine TXT speichert. Auf einmal speichert er die neuen Einträge aber nicht mehr. Was ist an dem Code Schnipsel falsch?

              PHP-Code:
              $eintrag "$a $b $c $d $text_alt";
              $datei fopen("guestbook.txt","w");
              fputs($datei,$eintrag);
              fclose($datei);
              echo 
              "<script language=\"javascript\">alert(\"Danke $name für deinen Eintrag.\");</script>"
              Ich danke euch

              Kommentar


              • #8
                An diesem Schnipsel kann man gar nichts sehen. Definiere „speichert nicht mehr“, definiere „auf einmal“ und zeig uns den gesamten relevanten Code.

                Kommentar


                • #9
                  Also .. "Speichert nicht mehr" und "auf einmal" bedeutet das ich den gleichen Code auf einer anderen Webseite (die auf einem anderen Server liegt) laufen habe und da alles wunderbar läuft. Hier der code:

                  PHP-Code:
                  <?php
                  if ($_GET['action'] == "add"){
                      
                  if (
                  $_POST['name'] == ""){
                  echo 
                  "<script language=\"javascript\">alert(\"Du hast keinen Namen eingetragen!\");</script>";
                  include(
                  "gb_zeigen.php");}
                  else{
                      
                  $name $_POST['name'];
                  $mail $_POST['mail'];
                  $www $_POST['www'];
                  $text_alt file_get_contents('guestbook.txt');
                  $timestamp time();
                  $datum date("d.m.Y",$timestamp);
                  $uhrzeit date("H:i",$timestamp);

                  if (
                  $_POST['email_address'] !== '') {
                      exit(
                  '<div style="padding-left:45px;padding-top:60px"><h2>Es ist ein Fehler aufgetreten!</h2>Sie haben ein Feld ausgefüllt, das nicht ausgefüllt werden darf.</div>');}

                  if (
                  $_POST['mail'] == "" && $_POST['www'] == ""){
                  $a "<br><u><b><font color=\"#990000\">$name</font></b>&nbsp;&nbsp;<span class=\"mail\">($datum - $uhrzeit Uhr)</span></u><br>";}
                  if (
                  $_POST['mail'] == "" && $_POST['www'] != ""){
                  $a "<br><b><font color=\"#990000\">$name</font></b>&nbsp;&nbsp;<span class=\"mail\">($datum - $uhrzeit Uhr)</span><br>";}
                  if (
                  $_POST['mail'] != ""){
                  $a "<br><b><font color=\"#990000\">$name</font></b>&nbsp;&nbsp;<span class=\"mail\">($datum - $uhrzeit Uhr)</span><br><span class=\"mail\"><u>$mail</span>";}
                      
                  if (
                  $_POST['www'] != "" && $_POST['mail'] == ""){
                  $b "<a href=\"http://$www\" target=\"_blank\">$www</a><br>";}
                  if (
                  $_POST['www'] != "" && $_POST['mail'] != ""){
                  $b "&nbsp;-&nbsp;&nbsp;<a href=\"http://$www\" target=\"_blank\">$www</a></u><br>";}
                  if (
                  $_POST['www'] == "" && $_POST['mail'] != ""){
                  $b "</u><br>";}
                  if (
                  $_POST['www'] == "" && $_POST['mail'] == ""){
                  $b "";}

                  if (
                  $_POST['text'] != ""){
                  $d "$text<br><br><hr>";}
                  else{
                  $d "<br><br><hr>";}

                  $eintrag "$a $b $c $d $text_alt";
                  $datei fopen("guestbook.txt","w");
                  fputs($datei,$eintrag);
                  fclose($datei);
                  echo 
                  "<script language=\"javascript\">alert(\"Danke $name für deinen Eintrag.\");</script>";
                  include(
                  "gb_zeigen.php");}}

                  else{
                  ?> 
                  <div style="padding-left:42px;padding-top:33px">
                     <form name="gb" action="gb_eintrag.php?action=add" method="post">
                     <table border="0" cellpadding="0" cellspacing="0" style="font-size:12px;font-family:arial">
                        <tr>
                           <td width="80" valign="bottom">&nbsp;&nbsp;<b>Name:</b></td>
                           <td width="250" style="padding-top:3px"><input type="text" name="name" size="24" style="font-size: 9pt;background-color:#ddd"></td>
                           <td><label for="email_address">Dieses Feld bitte nicht ausfüllen:</label><input type="text" name="email_address" id="email_address" size="40" /></td>
                        </tr>
                        <tr>
                           <td width="80" valign="bottom">&nbsp;&nbsp;<b>eMail:</b></td>
                           <td width="250" style="padding-top:3px"><input type="text" name="mail" size="24" style="font-size: 9pt;background-color:#ddd"></td>
                        </tr>
                        <tr>
                           <td width="80" valign="bottom">&nbsp;&nbsp;<b>Homepage:</b></td>
                           <td width="250" style="padding-top:3px"><input type="text" name="www" size="24" style="font-size: 9pt;background-color:#ddd"></td>
                        </tr>
                        <tr>
                           <td></td>
                           <td style="font-size:11px;font-weight:bold;padding-top:8px"><br>
                              <span style="padding-left:47px">Es sind noch&nbsp;&nbsp;
                              <input type="text" name="eing_rest" size="1" style="border:none" onFocus="if(this.blur)this.blur()" value="500" disabled="disabled">
                              Zeichen frei:</span>
                           </td>
                        </tr>
                        <tr>
                           <td width="80">&nbsp;&nbsp;<b>Text:</b></td>
                           <td width="250">
                              <textarea name="text" cols="35" rows="5" onKeyUp="eing_zaehlen(event)" 
                               wrap="virtual" style="font-size: 9pt;background-color:#ddd"></textarea>
                           </td>
                        </tr>
                        <tr>
                           <td></td>
                           <td>
                              <input type="submit" value="Absenden">
                              <span style="padding-left:110px"><input type="button" onclick="oeffne(); return false" value="Zurück"></span>
                           </td>
                        </tr>
                     </table>
                     </form>
                  </div>   
                  </font>
                  <?php
                  }
                  ?>
                  danke

                  Kommentar


                  • #10
                    Vielleicht kann ich noch kurz erwähnen das in "$eintrag" kurz vor dem speichern alles so drin steht wie es sein soll. Er speichert es halt nur nicht in "guestbook.txt"

                    Kommentar


                    • #11
                      Zitat von x.Oliver Beitrag anzeigen
                      Also .. "Speichert nicht mehr" und "auf einmal" bedeutet das ich den gleichen Code auf einer anderen Webseite (die auf einem anderen Server liegt) laufen habe und da alles wunderbar läuft.
                      Schreibrechte setzen auf dem neuen Server!

                      Kommentar


                      • #12
                        *zusammenführ*
                        Und das nächste Mal bitte keinen neuen Thread zum selben Thema aufmachen, sondern die Diskussion im bestehenden fortsetzen!

                        Kommentar


                        • #13
                          Ihr seid die Geilsten und ich der Obertrottel
                          Es läuft .. Wie sollte ich die Rechte am besten setzen? 644 ging nich. 666 gehtaber das klingt nich grad sicher.

                          Kommentar


                          • #14
                            am besten du sorgst dafür, dass der Ordner, wo du speichern möchtest dem www-User (der User unter dem der Webserver läuft) gehört .. dann reicht 644 ...

                            666 deutet daraufhin, dass der www-User zur
                            - nicht der Eigentümer ist ( Ordner)
                            - nicht zur Gruppe des Eigentümers gehört

                            Kommentar

                            Lädt...
                            X