If-Schleife funtzt nicht + 2 Vars ohne Inhalt

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

  • If-Schleife funtzt nicht + 2 Vars ohne Inhalt

    Hi Leuts!

    Ich beisse mir seit Tagen die Zähne aus und weiß nicht warum die mein script.php nicht funtzt. Es handelt sich um ein einfaches Formular wo ich vier Werte in meine DB-Tab eintragen will, bei Klick auf Submit.

    Trotzdem haut es einfach nicht hin.


    Hier mal ein Code-Auszug (Problemstellen siehe Kommentare):
    PHP-Code:
    <?php

    // ##### Neuen Kommentar eintragen.
    if(!isset($action)) { $action "post"//hier kommt php beim ersten Aufruf
    // gleich rein obwohl es das erst nach Submit soll!

    //speichern:
    //Variablen
    if(!isset($author)) { $author ""; }
    $author=addslashes($author);
    if(!isset(
    $text)) { $text ""; }
    $text=addslashes($text);
    $zeit=time();

    $sqlbefehl  =  "INSERT INTO $tab_kom VALUES ('','$zeit','$id','$text',
    '
    $author')"//$text und $author sind leer! (in meiner db-tab hab ich keine einträge)

          
    if (!$ergebnis  mysql_query($sqlbefehl$serverid))
          echo 
    mysql_error($serverid);


    //ende if von --> if(!isset($action)) { $action = "post";


    //html bzw. java-script teil des eingabeformulars
    //viell. liegt der Fehler hier?!?!
    <center><table border="0" width="823" cellspacing="1" 
    cellpadding="3"></center>
    <
    FORM name="pgbkom" METHOD="POST" ACTION="<?php echo 
    "
    kommentar.php?id=$id" ?>">
    <
    INPUT TYPE="hidden" NAME="action" VALUE="post">

                                <
    tr>
                                  <
    th colspan="2" bgcolor="<?php echo $c_header; ?>" 
    class=head Stil1><font size="2">Kommentar
                                    abgeben
    </font></th>
                                </
    tr>
                                <
    tr>
                                  <
    td align="right" bgcolor="<?php echo $c_left; ?
    >"
    ><font size="2">Autor:</font></td>
                                  <
    td bgcolor="<?php echo $c_right; ?>"><input 
    type
    ="text" name="author" size="40"></td>
                                </
    tr>
                                <
    tr>
                                  <
    td align="right" bgcolor="<?php echo $c_left; ?>" 
    valign="top"><font size="2">Kommentar:</font></td>
                                  <
    td bgcolor="<?php echo $c_right; ?>"><textarea 
    heigth
    ="5" width="60" name="text" rows="5" cols="60"></textarea></td>
                                </
    tr>
    <
    script language="JavaScript">
    <!--
    function 
    setsmile(Zeichen) {
       
    document.pgbkom.text.value =
       
    document.pgbkom.text.value Zeichen;
    }
    //-->
    </script>

                                <
    tr>
                                  <
    td align="right" bgcolor="<?php echo $c_left; ?>" 
    valign="bottom"><font size="2">Smilies:</font></td>
                                  <
    td bgcolor="<?php echo $c_right; ?>" 
    valign="top"><font size="2">Zum Einfügen anklicken:</font>
                                  <
    a href="javascript:setsmile(':-)')"><img src="smile01.
    gif" 
    border=0></a>
                                  <
    a href="javascript:setsmile(';-)')"><img src="smile02.
    gif" 
    border=0></a>
                                  <
    a href="javascript:setsmile(':O')"><img src="smile03.
    gif" 
    border=0></a>
                                  <
    a href="javascript:setsmile(';-(')"><img src="smile04.
    gif" 
    border=0></a>

                                  <
    a href="javascript:setsmile('8-)')"><img src="smile06.
    gif" 
    border=0></a>
                                  <
    a href="javascript:setsmile(':-O')"><img src="smile07.
    gif" 
    border=0></a>
                                  <
    a href="javascript:setsmile(':-(')"><img src="smile08.
    gif" 
    border=0></a>
                                  <
    a href="javascript:setsmile('(?)')"><img src="smile09.
    gif" 
    border=0></a>
                                  <
    a href="javascript:setsmile('(!)')"><img src="smile10.
    gif" 
    border=0></a>
                                </
    td>
                                </
    tr>
    <
    tr><td  bgcolor="<?php echo $c_header; ?>" colspan="2" align="right">
    <
    p align="center">
    <
    INPUT TYPE="submit" VALUE="Kommentar abschicken"></p>
      </
    td></tr>
      <
    tr>
       <
    td height="18" colspan="3"align="center" bgcolor="<?php echo $c_left; ?>">
        <
    a href="index.php"><font size="2" color="#000000">Zurück zu den Einträgen</font></a>
       </
    td>
      </
    tr>
    </
    form>
    </
    table>

    <?
    php
    if(!isset($footer)) { $footer ""; }
    echo 
    $copyright;
    require(
    "fuss.php");
    ?>
    Anm.: so sieht das formular aus:

    Kann mir bitte jemand weiterhelfen?
    Bin mit meinem Latein am Ende.
    Zuletzt geändert von Metallica; 02.02.2006, 10:03.
    $PHP resource 4ever$

  • #2
    Re: If-Schleife funtzt nicht + 2 Vars ohne Inhalt

    Code umbrechen, aber Dalli!
    Vor deiner nächsten Antwort.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ich würde dein script mal noch register_globals = off lauffähig machen.

      mach mal testausgaben. bekommt dein script den inhalt von $_POST['author'] und $_POST['text'] überhaubt.
      ich tippe mal auf das isset.

      nach
      } //ende if von --> if(!isset($action)) { $action = "post";
      fehlt noch das
      ?>


      mfg Roland
      Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

      Kommentar


      • #4
        register_globals sind von seitens meines providers auf ON gestellt.
        hab's sicherheitshalber mit phpinfo(); ausgelesen. Das paßt!

        wahsaga: wie breche ich den code um?
        mich hat das auch gestört, weiß aber nicht wie ich das verhindere.

        @Rolandbar
        stimmt. ich schmeiss jetzt mal das ?> rein, uppe das script u seh mir das mal an.
        $PHP resource 4ever$

        Kommentar


        • #5
          @Ronald,
          NEIN!Stop! das ?> fehlt nicht. kommt weiter unten im code.

          hier mal das komplette script:
          PHP-Code:
          <?php

          require("config.inc.php");
          require(
          "kopf.php");

          $serverid  mysql_connect  $sqlhost$sqluser$sqlpass);
            echo 
          mysql_error($serverid);
          mysql_select_db($database);


          // ##### Neuen Kommentar eintragen.
          if(!isset($action)) { $action "post";

          if (
          $author == "" or $text == "") {
             echo 
          "<center><br><FONT face=\"verdana,arial,helvetica\" size=\"2\" 
          color=\"#000000\" >Bitte Name und Kommentar eingeben.<br></font></center>"
          ;
             echo 
          "<center><br><a href=\"index.php\"><FONT face=\"verdana,arial,
          helvetica\" size=\"2\" color=\"#000000\" >ZURÜCK</font></a></center>"
          ;
             exit;
          }

          //speichern:
          //Variablen
          if(!isset($author)) { $author ""; }
          $author=addslashes($author);
          if(!isset(
          $text)) { $text ""; }
          $text=addslashes($text);
          $zeit=time();

           
          $sqlbefehl  =  "INSERT INTO $tab_kom VALUES ('','$zeit','$id','$text','$author')";
          //          if(!isset($ergebnis)) { $ergebnis = ""; }
                
          if (!$ergebnis  mysql_query($sqlbefehl$serverid))
                echo 
          mysql_error($serverid);


          echo 
          "<center><B>Kommentar von ";
          //echo formatstring($author);
          $enrique4 $author;
          echo 
          "<FONT face=\"verdana,arial,helvetica\" size=\"2\" color=\"#000000\"><b>$enrique4</b></font>";
          echo 
          " wurde gepostet...</b><br>";

          //ende if von Zeile16 --> if(!isset($action)) { $action = "post";


          // ##### Bisherige Kommentare anzeigen.
          echo "<center><table border=0 cellspacing=1 cellpadding=3 width=\"823\"></center>";
          echo 
          "<tr><th class=head colspan=3 bgcolor=$c_header><FONT 
          face=\"verdana,arial,helvetica\" size=\"2\" color=\"#000000\" >Kommentare zum Eintrag von</font> "
          ;

          $sqlbefehl"Select * FROM $tab_data where id=$id";
          $ergebnis  mysql_query($sqlbefehl$serverid);
          $spalte mysql_fetch_array ($ergebnis);

          //echo formatstring($spalte['name'])."</th></tr>";
          $enrique3 $spalte['name'];
          echo 
          "<FONT face=\"verdana,arial,helvetica\" size=\"2\" color=\"#000000\"> $enrique3</font>";

          $sqlbefehl"Select * FROM $tab_kom where gbid=$id order by time DESC";

          $ergebnis  mysql_query($sqlbefehl$serverid);

          while ( 
          $kom mysql_fetch_array ($ergebnis)) {
             echo 
          "<tr>";
          //Author:
             
          echo "<td valign=top bgcolor=\"$c_left\">";
             echo 
          formatstring($kom['author']);
             echo 
          "</td>";
          //Kommentar:
             
          echo "<td bgcolor=$c_right>";
             echo 
          formatpost($kom['text']);
             echo 
          "</td>";
          //Delete:
             
          echo "<td width=\"20pt\" bgcolor=$c_right>";
             echo 
          "<a href=\"deletekom.php?id=$kom[id]&gbid=$id\"><img 
          src=\"delete.gif\" border=0 alt=\"Löschen\"></a>"
          ;
             echo 
          "</td>";

             echo 
          "</tr>";
          }

          echo 
          "</table>";

          ?> //### HIER SCHLIESST SICH PHP
          <style type="text/css">
          <!--
          .Stil1 {
              font-family: Verdana, Arial, Helvetica, sans-serif;
              font-size: 10px;
          }
          -->
          </style>

          <center><table border="0" width="823" cellspacing="1" 
          cellpadding="3"></center>
          <FORM name="pgbkom" METHOD="POST" ACTION="<?php echo 
          "kommentar.php?id=$id?>">
          <INPUT TYPE="hidden" NAME="action" VALUE="post">

                                      <tr>
                                        <th colspan="2" bgcolor="<?php echo $c_header?>
          class=head Stil1><font size="2">Kommentar
                                          abgeben</font></th>
                                      </tr>
                                      <tr>
                                        <td align="right" bgcolor="<?php echo $c_left; ?
          >
          "><font size="2">Autor:</font></td>
                                        <td bgcolor="
          <?php echo $c_right?>"><input 
          type="text" name="author" size="40"></td>
                                      </tr>
                                      <tr>
                                        <td align="right" bgcolor="<?php echo $c_left?>
          valign="top"><font size="2">Kommentar:</font></td>
                                        <td bgcolor="<?php echo $c_right?>"><textarea 
          heigth="5" width="60" name="text" rows="5" cols="60"></textarea></td>
                                      </tr>
          <script language="JavaScript">
          <!--
          function setsmile(Zeichen) {
             document.pgbkom.text.value =
             document.pgbkom.text.value + Zeichen;
          }
          //-->
          </script>

                                      <tr>
                                        <td align="right" bgcolor="<?php echo $c_left?>
          valign="bottom"><font size="2">Smilies:</font></td>
                                        <td bgcolor="<?php echo $c_right?>
          valign="top"><font size="2">Zum Einfügen anklicken:</font>
                                        <a href="javascript:setsmile(':-)')"><img src="smile01.
          gif" border=0></a>
                                        <a href="javascript:setsmile(';-)')"><img src="smile02.
          gif" border=0></a>
                                        <a href="javascript:setsmile(':O')"><img src="smile03.
          gif" border=0></a>
                                        <a href="javascript:setsmile(';-(')"><img src="smile04.

          gif" border=0></a>
                                        <a href="javascript:setsmile('8-)')"><img src="smile06.
          gif" border=0></a>
                                        <a href="javascript:setsmile(':-O')"><img src="smile07.
          gif" border=0></a>
                                        <a href="javascript:setsmile(':-(')"><img src="smile08.
          gif" border=0></a>
                                        <a href="javascript:setsmile('(?)')"><img src="smile09.
          gif" border=0></a>
                                        <a href="javascript:setsmile('(!)')"><img src="smile10.
          gif" border=0></a>
                                      </td>
                                      </tr>
          <tr><td  bgcolor="<?php echo $c_header?>" colspan="2" align="right">
          <p align="center">
          <INPUT TYPE="submit" VALUE="Kommentar abschicken"></p>
            </td></tr>
            <tr>
             <td height="18" colspan="3"align="center" bgcolor="<?php echo $c_left?>">
              <a href="index.php"><font size="2" color="#000000">Zurück zu den Einträgen</font></a>
             </td>
            </tr>
          </form>
          </table>

          <?php
          if(!isset($footer)) { $footer ""; }
          echo 
          $copyright;
          require(
          "fuss.php");
          ?>
          Zuletzt geändert von Metallica; 02.02.2006, 10:01.
          $PHP resource 4ever$

          Kommentar


          • #6
            Original geschrieben von Metallica
            wie breche ich den code um?
            [return] oder [enter] in zu langen Zeilen ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ok, wahsaga. hab ich getan.

              das ganze script dient nur der übersicht (wg. vermeintlich vergessenen klammern und so).

              um zu meinem problem zurückzukehren beziehe ich mich im folgenden auf meine Verdachtsstellen:

              1.
              PHP-Code:
              if(!isset($action)) { $action "post";
              ////hier kommt php beim ersten Aufruf
              // gleich rein obwohl es das erst nach Klick auf Submit soll!
              //Was paßt in bei der if-abfrage nicht? 
              2.
              PHP-Code:
               $sqlbefehl  =  "INSERT INTO $tab_kom VALUES ('','$zeit','$id','$text','$author')";
              //die vars $text und $author sind leer.
              //habe hier leere felder in meiner db-tabelle obwohl register_globals = ON 
              Bitte um Rat
              $PHP resource 4ever$

              Kommentar


              • #8
                Original geschrieben von Metallica
                PHP-Code:
                if(!isset($action)) { $action "post";
                ////hier kommt php beim ersten Aufruf
                // gleich rein obwohl es das erst nach Klick auf Submit soll!
                //Was paßt in bei der if-abfrage nicht? 
                Wenn dein Formular noch nicht abgesendet wurde, gibt es dann $action?

                Nein, und genau das fragst du doch mit !isset() ab - also ist die Bedingung erfüllt.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Hmm,
                  $action wird doch erst mit abschicken des Formulars gesetzt:
                  <INPUT TYPE="hidden" NAME="action" VALUE="post">

                  danach wird nochmals diese script.php (mit gesetztem $action) im form aufgerufen:
                  <FORM name="gb" METHOD="POST" ACTION="<?php echo "script.php?id=$id" ?>">

                  jetzt, da $action existiert, sollte er in die if-abfr. reinkommen und den Kommentar in die DB eintragen.

                  Ich kann nicht erkennen was von der Logik her bei der IF falsch ist. SORRY!
                  Zuletzt geändert von Metallica; 02.02.2006, 11:20.
                  $PHP resource 4ever$

                  Kommentar


                  • #10
                    Hilft es dir weiter wenn du mit dem isset den $_POST['submit'] überprüfst?

                    Kommentar


                    • #11
                      mit
                      PHP-Code:
                      if(!isset($_POST['submit'])) { $action "post"
                      funtzt es auch nicht.
                      php stolpert mir auch mit dieser abfrage in die if hinein, obwohl die var noch gar nicht existiert!

                      ich kann mich nur auf mein vorletztes posting beziehen.

                      was ist an der logik meiner if-abfrage falsch???
                      $PHP resource 4ever$

                      Kommentar


                      • #12
                        Laut deiner if-Abfrage möchtest du doch auch beim ersten Aufruf der Seite in die Aktionen springen.

                        Wenn du dort erst nach betätigen des Submit rein möchtest muss das ! weg.

                        PS: Hatte wahsaga aber schon beschrieben.
                        Zuletzt geändert von Ueps; 02.02.2006, 12:27.

                        Kommentar


                        • #13
                          Original geschrieben von Metallica
                          php stolpert mir auch mit dieser abfrage in die if hinein, obwohl die var noch gar nicht existiert!
                          Ja, weil du - wie ich dir bereits sagte - genau das abfragst!
                          was ist an der logik meiner if-abfrage falsch???
                          Dass du nicht in der Lage bist, deine Bedingung richtig herum zu formulieren ...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            OffTopic:

                            Sorry wahsaga... aber ich dachte, das überprüfen vom submit würde ein Anstoss zur richtig Logik auslösen =) Deshalb die "sinngemäße" Wiederholung deines Posts.

                            Kommentar


                            • #15
                              TAUSEND DANK Ueps, es funktioniert!

                              Das ! war tatsächlich schuld.
                              Hab mir jetzt nochmals die Syntax von isset() durchgelesen.
                              ich kapier's jetzt.

                              quote:
                              "Dass du nicht in der Lage bist, deine Bedingung richtig herum zu formulieren ..."

                              @Wahsaga
                              Deine Formulierung war mehr als deplaziert!!! Ich bin kein Depp und auch keiner der ohne nachzudenken gleich postet (schau mal wie lange ich schon bei php-resource dabei bin und überall für euch werbung mache), nach dem motto "die sollen das machen".
                              ich poste ausschließlich wenn ich an einer Problemstellung sehr lange nicht weiterkomme. In diesem Fall seit verg. MO.
                              Ich will's verstehen und nicht "gesagt bekommen weil's halt so ist".
                              Danke nichtsdestotrotz auch Dir. Jetzt bin ich in der Lage und es funkt.
                              $PHP resource 4ever$

                              Kommentar

                              Lädt...
                              X