Überlasteter Apache wegen for-schleife

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

  • Überlasteter Apache wegen for-schleife

    Hallo Leute

    PHP-Code:
    <?
    function addcenter() {
        $count = trim($_POST['count']);
        if($_POST['submit']) {
            Admin::addvote($count);
        }
        else {
            echo    "<b>Bitte geben Sie an, wieviele Auswahlmöglichkeiten die Umfrage haben soll.</b><br><br>";
            ?>
            <form action="?administrate=addcenter" method="post">
            <input type="text" size="2" name="count">&nbsp;
            <input type="submit" name="submit" value="submit">
            </form>
        <?php
        
    }
    }

    function 
    addvote($count) {
        
    $question trim($_POST['question']);
        for(
    $i=1;$i<=$count$i++) {
            
    $option."".$i trim($_POST['option'.$i]);
        } 
            
        if(
    $_POST['submit']) {
            echo    
    "HOI";
        }
        else {
            
    ?>
            <form action="?administrate=addvote" method="post">
            <b>Frage:</b><br /><textarea cols="30" rows="5" name="question"></textarea><br><br>
            <?php
            
    for($i=1;$i<=$count$i++) {
                echo     
    "<input type='text' size='32' name='option'".$i."'><br>";
            }
            
    ?>
            <br /><input type="submit" name="submit" value="hinzufügen" />
            </form>
            <?php
        
    }
    }
    ?>
    Also.. Als aller erstes wird die Funktion addcenter() aufgerufen. Nach abschicken des Formulars wird die Funktion addvote aufgerufen, welcher ein Wert ($count) mitgeliefert wird.

    Die Variable $count hab ich überprüft - sprich, sie enthält ein Wert.

    Das Problem ist, dass mein Webserver keinen Wank mehr macht, wenn eine for-schleife gebraucht wird. Habs dann (unsauber klar..) mit ner while-schleife probiert, um zu testen woran es liegen könnte.

    Ich hab keine Ahnung wieso mein Server sich aufhängt...

    Das Ziel ist einfach nur, dass ein Wert übergeben werden kann, mit welchem dann ein Formular aufgebaut wird.

    Könnt ihr mir helfen?

    Gruss

    Luca
    Zuletzt geändert von wkd-; 28.08.2007, 12:45.

  • #2
    PHP-Code:
    $option."".$i trim($_POST['option'.$i]); 
    ist unsinn. ein anderer compiler würde melden "wrong left side", denn die zuweisung verändert vermutlich das $i und erzeugt eine endlosschleife. was soll diese dolle zeile überhaupt bewirken?

    Kommentar


    • #3
      Achso.. Mhh..

      also ich hab ja:
      PHP-Code:
      function bla() {
         
      // Hier werden die Felder vom Formular geholt
         
      $question $_POST['question'];
         if(
      $_POST['submit']) {

         }
         else {

         }

      Dort wo die Felder vom Formular geholt werden, da sollen auch die $options geholt werden.

      Nur ist die zahl der option-felder variabel!

      Ich gebe die Anzahl der Option-Felder per formualr in der ersten funktion ein (addcenter()) welche dann den Wert ($count) an addvote($count) weitergibt.

      Da soll das zeuchs dann dynamisch erstellt werden.

      Hab ich da komplett falsch überlegt?

      Kommentar


      • #4
        schalte das error_reporting hoch und behebe die fehler.

        statt
        PHP-Code:
        name='option'".$i."' 
        , was sowieso nicht funktionieren kann, schreibst du besser
        PHP-Code:
        name='option[]' 
        und schaust mittels print_r($_POST), was rauskommt.

        Kommentar


        • #5
          Also, ich hab oben die forschleife weggelassen und mal print_r($_POST); gemachjt. error_reporting(E_ALL) eingeschalten.

          Ausgegeben wird NACh dem abschicken des formulars der ERSTEN funktion:

          Array ( [count] => 3 [submit] => submit ) HOI

          das formular der 2. funktion wird gar nicht erst angezeigt.

          PHP-Code:
          <?
          function addvote($count) {
              $question = trim($_POST['question']);
                  
              print_r($_POST);    

              if($_POST['submit']) {
                  echo    "HOI";
              }
              else {
                  ?>
              <form action="?administrate=addvote" method="post">
              <b>Frage:</b><br /><textarea cols="30" rows="5" name="question"></textarea><br><br>
              <?php
              
          for($i=1;$i<=$count$i++) {
              echo     
          "<input type='text' size='32' name='option[]'><br>";
              }
              
          ?>
              <br /><input type="submit" name="submit" value="hinzufügen" />
              </form>
              <?php
          }
          }
          ?>
          Zuletzt geändert von wkd-; 28.08.2007, 13:32.

          Kommentar


          • #6
            das formular der 2. funktion wird gar nicht erst angezeigt.
            Jetzt sag mir bitte nicht, dass es hierbei um den else-Teil geht... Wenn doch dann nochmal genau überlegen was else bedeuten könnte

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Wups

              Naja, jeden Falls lags VORERST mal nich an dem sau dummen Fehler

              Danke Leute, nun zeigts mir das Formular schööööön an. Danke euch allen

              Gruss

              Kommentar

              Lädt...
              X