radio button isset ?

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

  • radio button isset ?

    Hallo,

    brauche mal wieder eure Hilfe, habe diesmal die Seite soweit ohne fremede Hilfe geschafft, jetzt hängt es nur noch an Kleinigkeiten:

    ich habe eine Abfrage ob alle Pflichtfelder ausgefüllt sind und wenn nicht soll er diese melden. Bei den Pflichtfeldern sind auch zwei Radio-Buttongruppen (männlich/weiblich) / Newsletter (ja/nein)

    PHP-Code:
                         if(empty($_REQUEST['username']) ||
                           empty(
    $_REQUEST['vorname']) ||
                           empty(
    $_REQUEST['nachname']) ||
                           empty(
    $_REQUEST['strasse']) ||
                           empty(
    $_REQUEST['hsnr']) ||
                           empty(
    $_REQUEST['plz']) ||
                           empty(
    $_REQUEST['ort']) ||
                           empty(
    $_REQUEST['birthday_year']) ||
                           empty(
    $_REQUEST['birthday_month']) ||
                           empty(
    $_REQUEST['birthday_day']) ||
                           !isset(
    $_REQUEST['geschlecht']) ||
                           empty(
    $_REQUEST['email']) ||
                           empty(
    $_REQUEST['password']) ||
                           empty(
    $_REQUEST['pwd_repeat']) ||
                           !isset(
    $_REQUEST['newsletter']))
                    {
                        echo 
    '<script language="Javascript">
                                javascript:window.location.href = "'
    .$PHPSELF.'?id=fill_all";
                            </script>'
    ;
                    } 
    leider fragt er zwar auch ab ob die Radio-Button gesetzt sind allerdings und meldet "Bitte alles ausfüllen" aber er geht trotzdem weiter durch das script bis er an der insert-anweisung ist und fügt es dann ein. wenn irgendein anderes feld leer ist. stoppt er wie es sein soll.

    die radio-buttons sind so definiert

    PHP-Code:
    <tr>
        <
    td colspan="2" align="center">
                    <
    input name="newsletter" type="radio"  value="yes"Ja                                             
                   
    <input name="newsletter" type="radio"   value="no" Nein
            
    </td>
    </
    tr

  • #2
    print_r($_REQUEST);

    was kommt raus?

    Kommentar


    • #3
      Benutze header um den User weiterzuleiten und danach direkt das Script in der Ausführung abzubrechen. (exit ist dein Freund)
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar


      • #4
        exit ist mein freund (*freu*)
        ich kannte nur break aber der wollt nicht mein freund sein (in diesem fall)

        Vielen Dank für eure schnelle Hilfe !


        Habe da noch ein Problem.

        und zwar wird dann mit id=fill_all

        eine Seite mit folgendem Script aufgerufen

        PHP-Code:
        Sie haben nicht alle Pflichtfelder ausgef&uuml;llt
        bitte gehen Sie <a href="javascript:history.back();">
        <
        span class="underline">zur&uuml;ck</span></a>
         
        und f&uuml;llen Sie alle Felder aus !!! 
        wenn ich dann auf zurück gehe sind im ff alle Felder wieder leer im IE (7.0) kommt "die Webseite ist abgelaufen" wenn ich dann "manuell" nochmal auf zurück gehe (im ie) bekomme ich die felder mit meine vorher eingegebenen daten angezeigt (so gewünscht)

        lange rede kurzer sinn:

        gewollt ist das, wenn ich auf zurück klicke ich die vorher eingegebenen daten sehe und nicht alles leer

        Vielen Dank im Vorraus

        Kommentar


        • #5
          bau alles in ein script hinein. stichwort affenformular.

          gruß
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            alles in ein formular ?

            ich habe es jetzt wie folgt:

            PHP-Code:
            echo '<form action="'.$PHPSELF.'?id=register" method="post"> 
            so wird das formular aufgerufen.

            das entspricht doch einem affenformular?

            Kommentar


            • #7
              ja, aus wikipedia:

              [...]Hierbei befinden sich das HTML-Formular und die Gültigkeitsabfrage innerhalb eines Skriptes und das Formular ruft sich daher beim Absenden immer wieder selbst auf, solange ungültige Daten eingegeben werden.
              Übrigens: jemals was von register globals gehört?

              Kommentar


              • #8
                Beispiel:

                PHP-Code:
                if (isset($_POST['okbutton'])) {
                    
                // Das Formular wurde abgeschickt
                    
                if (empty($_POST['textfeld']) || ! isset($_POST['suchwasaus'])) {
                        
                // Eingabefehler!
                        
                echo("Bitte unbedingt alles ausfüllen!");
                    } else {
                        
                // alles ist richtig
                        
                        // hier fehlt das was passieren soll, wenn richtig - DB Update z.B.

                        // Weiterleitung.
                        
                header("Location: seitenachdemausfüllen.php");
                        die();
                    }
                }

                // Nu das Formular... 

                echo("<form action=\"" $_SERVER['PHP_SELF'] . "\" method=\"post\">
                <input type=\"text\" name=\"textfeld\" value=\""
                );

                // das @ vor dem echo ist etwas "schlampig",
                // erspart aber noch eine Abfrage, ob $_POST['textfeld'] gesetzt ist

                @echo($_POST['textfeld');
                echo(
                "\">
                <input type=\"checkbox\" name=\"suchwasaus\" value=\"1\""
                );

                if (isset(
                $_POST['suchwasaus']) && $_POST['suchwasaus'] == 1) echo(" checked=\"checked\"");

                echo(
                "\"> 1 oder<br>
                <input type=\"checkbox\" name=\"suchwasaus\" value=\"2\""
                );

                if (isset(
                $_POST['suchwasaus']) && $_POST['suchwasaus'] == 2) echo(" checked=\"checked\"");
                echo(
                "\"> 2<br>

                <input type=\"submit\" name=\"okbutton\" value=\"OK\">
                </form>"
                ); 
                ungetestet

                PS: Hat er sich irgendwo auf register_globals verlassen? Wo denn?
                ich glaube

                Kommentar


                • #9
                  auf den ersten Blick dachte ich an $PHPSELF

                  Kommentar


                  • #10
                    Stimmt ja... habs nicht gesehen.
                    ich glaube

                    Kommentar


                    • #11
                      Da bin ich ja froh, dass du auch auf den "fehlenden" Unterstrich reingefallen bist.

                      Kommentar


                      • #12
                        Sorry, das verwirrt mich jetzt -

                        $PHP_SELF ist von register_globals abhängig?
                        Und $PHPSELF ist dann einfach veraltet?

                        Oder andersrum?
                        ich glaube

                        Kommentar


                        • #13
                          original: $_SERVER['PHP_SELF'], globals registered: $PHP_SELF. $PHPSELF nie gesehen.

                          Kommentar


                          • #14
                            ok... danke, so wirds stimmen.

                            Allerdings Google kennt da vielfältige Schreibweisen... Wahrscheinlich weil es meistens ohne notice-error-reporting verwendet wird, und leere actions normalerweise ja auch wieder auf sich selbst verweisen
                            ich glaube

                            Kommentar


                            • #15
                              Naja, ich hoffe mal dass hier niemand $PHP_SELF oder $_SERVER['PHP_SELF'] ohne bspw. htmlentities verwendet.
                              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                              var_dump(), print_r(), debug_backtrace und echo.
                              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                              Kommentar

                              Lädt...
                              X