Suche nach variablem array-index?

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

  • Suche nach variablem array-index?

    servus

    ich habe verschiedene formular, zwei davon mal ganz grob als beispiel:

    formular 1 hat die felder:
    login_name (textfeld)
    login_pass (textfeld)
    login_send (button)

    formular 2 hat die felder
    signup_nick (textfeld)
    signup_mail (textfeld)
    signup_send (button)

    ich werte in meinem skript die felder aus, fehlt beim signup-formular z. b. die mailadresse gibt es einen entsprechenden hinweis.

    ich mache das momentan so:
    PHP-Code:
    if (isset($_POST['signup_send']) or isset($_POST['signup_username']) or isset($_POST['signup_usermail']) 
    or isset(
    $_POST['signup_userpass']) or isset($_POST['signup_userpass_verify'])) 
    kann ich auch irgendwie abfragem ob es im array $_POST einen eintrag gibt, der mit signup_ anfängt? Sowas in der Art von
    PHP-Code:
    if (isset($_POST['signup_*'])) 
    ?
    array_key_exists hilft mir auch nicht wirklich weiter...
    Ich denke, also bin ich. - Einige sind trotzdem...

  • #2
    Gesetzt sollten die Variablen eigentlich alle sein ... nur unter umständen empty ... was spricht gegen sowas:
    PHP-Code:
    <?php
    $valid 
    TRUE;
    foreach ( 
    $_POST AS $key => $value ) {
        if ( 
    strPos($key"signup_") === && empty($value) ) {
            
    $valid FALSE;
            break;
        }
    }
    if ( !
    $valid ) {
    }
    ?>
    Zuletzt geändert von goth; 17.05.2004, 22:42.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      du könntest z.B. das $_POST - Array mit foreach durchloopen und die übergebenen Einträge mit deren Name und "signup_" vergleichen...
      PHP-Code:
      foreach($_POST as $name => $value {
         if (
      strpos($name'signup_')) {
               
      //....
         
      }


      nich schön, aber selten ;-)

      Kommentar


      • #4
        Ui da war jemand schneller

        Kommentar


        • #5
          Original geschrieben von goth
          Gesetzt sollten die Variablen eigentlich alle sein ... nur unter umständen empty ...
          Wenn es zwei Formure sind doch nicht, oder?

          Dann sind IMHO nur die Variablen gesetzt die in dem Versandten Formular waren.

          @Happy
          Ich bin mir nich sicher ob ich das richtig verstanden habe, aber könntest du nicht einfach "login_send" und "signup_send" beide "send" nennen. Und als Value einmal "Login" und einmal "Sign Up" verwenden.

          Dann könntest du anstatt
          PHP-Code:
          if (isset($_POST['signup_*'])) 
          einfach
          PHP-Code:
          if ($_POST['send'] == "Sign Up"
          schreiben.



          EDIT:
          d'oh ich sehe grade dass du dich oben auch schon nicht mit
          PHP-Code:
          if (isset($_POST['signup_send'])) 
          zufrieden gegebn hast... was ja bei näherem hinsehen irgendwie das selbe ist

          Die Musikreview Seite

          hi, i'm a signature virus. copy me into your signature to help me spread.

          Kommentar


          • #6
            mir gefällt das konstrukt von goth ziemlich gut

            habe er dank dafür :-)

            ine php-funktion wäre mir zwar lieber, aber man kann ja nicht alles haben
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              was spricht dagegen, eine php-funktion daraus zu machen?
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Faulheit ........................................

                Kommentar


                • #9
                  PHP-Code:
                  function is_set($array$index$case_sensitive false)
                  {
                      if (!
                  is_array($array))
                          return 
                  false;
                      
                  $text '|'.implode('|'array_keys($array));
                      if (!
                  $case_sensitive)
                      {
                          
                  $index strtolower($index);
                          
                  $text strtolower($text);
                      }
                      return 
                  strpos($text'|'.$index) !== false;

                  zufrieden?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    da hast du toll gemacht

                    Kommentar


                    • #11
                      wenn ich's nicht besser wüsste, würd ich sagen, du hast mich vergackeiert...
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        wieso solch aufwendige Schleifen ?

                        PHP-Code:
                        if(preg_match('#signup_[^;]#',implode(';',array_keys($_POST)))){
                            echo 
                        'ist drin';
                        }else
                            echo 
                        'ist nicht drin'
                        TBT

                        Die zwei wichtigsten Regeln für eine berufliche Karriere:
                        1. Verrate niemals alles was du weißt!


                        PHP 2 AllPatrizier II Browsergame

                        Kommentar


                        • #13
                          $_POST['irgendwasmit_signup_drin'] = 'verdammt';

                          du musst also noch ein ; vor das implode schreiben

                          und ich weiß nicht, ob preg_match inklusive anschmeißen der pcre nicht vielleicht etwas langsamer ist strpos, auch wenn es sich nicht viel nehmen wird
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar

                          Lädt...
                          X