Ankündigung

Einklappen
Keine Ankündigung bisher.

checkboxen ......

Einklappen

Neue Werbung 2019

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

  • checkboxen ......

    Täglich grüßt das murmeltier
    folgendes problem
    ich habe 3 checkboxen die ich darauf kontroliere ob sie gecheckt sind oder nicht der code sieht bei wie folgt aus

    PHP-Code:
    if($_SERVER["REQUEST_METHOD"]=="POST"){
        if(!empty(
    $_POST['power'])){
            
    $buff[99]="1";
           }else{
             
    $buff[99]="0";
           }
        if(!empty(
    $_POST['humcon'])){
            
    $buff[100]="1";
           }else{
             
    $buff[100]="0";
           }
        if(!empty(
    $_POST['condprot'])){
            
    $buff[101]="1";
           }else{
             
    $buff[101]="0";
           }

    der witz an der sache ist, das es bei den parametern "condprot" und "power" funktioniert, die mittlere checkbox "humcon" funktioniert jedoch nicht

  • #2
    Debugging...
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Zitat von lstegelitz Beitrag anzeigen
      Debugging...
      und zwar so:

      Richtig debuggen

      1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
      2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
      3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
      4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
      5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
      6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
      7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
      8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
      9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

      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


      • #4
        alles schon gemacht, es sieht so aus, als liese sich die eine stelle in dem string nicht "austauschen", was mich sehr verwundert da es bei den anderen beiden ja auch funktioniert

        Kommentar


        • #5
          mein Tipp dazu - guck bitte GANZ genau aufs HTML - also das, was im Browser ankommt ... dann mit der Erweiterung Firebug im Firefox schaust du dir an, welche Daten gesendet werden, wenn du das Formular absendest (je nach Methode als Get / Post ) ... damit sollte sich doch herausfinden lassen, ob:
          - die Checkbox wirklich das name-Attribut "humcon" trägt
          - die Checkbox Bestandteil des richtigen Formulars ist
          - dieses Formular mit allen benötigten Daten abgesendet wird (Get-Request ist auf 2 kbyte inclusive URL begrenzt)

          Dann wäre in deinem verarbeitenden PHP-Script zumindest für die Fehlersuche angebracht, die gesamten Daten des Requests auszugeben#
          PHP-Code:
          echo '<pre>';
          var_dump($_POST); // falls Post-Request sonst -> var_dump($_GET);
          echo '</pre>'
          "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

          Kommentar


          • #6
            hm nachdem ich mir nun die "var_dump()" ausgeben lassen hab sieht es wohl so aus, dass der die checkbox "humcon" garnicht erst abschickt, was mich noch mehr verwundert da, es sich hier eigentlich nur um ein copy - paste handelt in dem ich dann die variablen geändert habe

            Kommentar


            • #7
              Wenn sie nicht ausgewählt ist wird sie auch nicht abgeschickt, das haben Checkboxen so an sich.
              [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

              Kommentar


              • #8
                Wir können jetzt noch eine Weile weiter raten bis entweder du oder wir keine Lust mehr haben.
                Oder du rückst mit Code raus, wo man vielleicht etwas sehen kann...

                War die Checkbox denn auch angehakt?
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  natürlich war die checkbox angehagt, versteht sich von selbst, habe ja zur kontrolle alle angehagt

                  hier code mit dennen besagte checkboxen zusammenhängen

                  PHP-Code:
                  $buff readOven($IP$debug);
                  $power = (int)substr($buff991);
                  $humcon = (int)substr($buff1001);
                  $condprot= (int)substr($buff1011);
                  if(
                  $debug===1){
                     echo 
                  "power: " $power "<br>";
                     echo 
                  "humcon: " $humcon "<br>";
                     echo 
                  "condprot: " $condprot "<br>";
                  }
                  if(
                  $power===1){
                     
                  $powercheck="checked=\"checked\"";
                  }else{
                  $powercheck="";}
                  if(
                  $humcon===1){
                     
                  $humcheck="checked=\"checked\"";
                  }else{
                  $humcheck="";}
                  if(
                  $condprot===1){
                     
                  $condcheck="checked=\"checked\"";
                  }else{
                  $condcheck="";}
                  echo <<< FORM
                  <form method="POST" action="test.php" align="center">
                  <table boarder=0>
                  <tr>
                  <td>Power</td>
                  <td><input type="checkbox" name ="power" 
                  $powercheck></td>
                  </tr>
                  <tr>
                  <td>Hum. Control</td>
                  <td><input type="checkbox" name ="humcon" 
                  $humcheck></td>
                  </tr>
                  <tr>
                  <td>Cond. Prot.</td>
                  <td><input type="checkbox" name="condprot" 
                  $condcheck></td>
                  </tr>
                  </table></form>
                  FORM;
                  if(
                  $_SERVER["REQUEST_METHOD"]=="POST"]{
                     echo 
                  "var_dump() Request: ";
                     
                  var_dump($_POST);
                     echo 
                  "<br>";
                     if(!empty(
                  $_POST['power'])){
                        
                  $buff[99]="1";
                     }else{
                         
                  $buff[99]="0";
                    }
                    if(!empty(
                  $_POST['humcon'])){
                        
                  $buff[100]="1";
                     }else{
                         
                  $buff[100]="0";
                    }
                    if(!empty(
                  $_POST['condprot'])){
                        
                  $buff[101]="1";
                     }else{
                         
                  $buff[101]="0";
                    }

                  Kommentar


                  • #10
                    Prüfe mal das Formular im (fertig geparsten) HTML Quellcode auf Korrektheit, wenn die angehakte Chekbox nicht im var_dump($_POST) ersichtlich ist.
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      die var_dump() gibt mir
                      var_dump() Request: array(7) { ["IP"]=> string(10) "de-oven-02" ["tartemp"]=> string(2) "25" ["tarhum"]=> string(1) "0" ["tarfan"]=> string(3) "100" ["power"]=> string(2) "on" ["condprot"]=> string(2) "on" ["submit"]=> string(6) "Submit" }
                      aus, wenn alle checkboxen angehakt sind

                      Kommentar


                      • #12
                        ja, und ist der HTML-Quelltext des Form auch ok?

                        Übrigens:

                        PHP-Code:
                        if($power===1){
                           
                        $powercheck="checked=\"checked\"";
                        }else{
                        $powercheck="";}
                        if(
                        $humcon===1){
                           
                        $humcheck="checked=\"checked\"";
                        }else{
                        $humcheck="";}
                        if(
                        $condprot===1){
                           
                        $condcheck="checked=\"checked\"";
                        }else{
                        $condcheck="";} 
                        ginge auch etwas kürzer:

                        PHP-Code:
                        $checked ' checked="checked"';
                        $powercheck = ($power === 1) ? $checked "";
                        $humcheck = ($humcon === 1) ? $checked "";
                        $condcheck = ($condprot === 1) ? $checked ""
                        The string "()()" is not palindrom but the String "())(" is.

                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #13
                          [irrt. doppelpost]
                          The string "()()" is not palindrom but the String "())(" is.

                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            wir helfen gern - aber wir lassen uns ungern veralbern ...

                            dein var_dump der post-Variablen zeigt viel mehr Elemente, als dein html-Code als Formular überhaupt erzeugt - ...

                            Hast du vielleicht mehrere Formulare auf deiner Seite ? oder zeigst du uns nur Beispielcode ?
                            "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                            Kommentar


                            • #15
                              das ist ne gute frage, die ich aber leider auch nicht beantworten kann,

                              habe die html-tags usw, alle nochmal überprüft, keine fehler gefunden ... alles geöffnet und geschlossen wie es sein soll

                              edit: es sind mehrere formulare auf der seite, die ich halt einzeln geschrieben hab, zur übersichtlichkeit und zur einfacheren fehlersuche

                              Kommentar

                              Lädt...
                              X