Knut: <form> array an PHP senden

Hallo,

in einer <form> habe ich
<p><label for=mail1><input id=mail1 type='checkbox' name='mail_an[]' value='1'> Text</label></p>

Wenn ich das anklicke und absende, kommt mit
  var_dump ( $_POST['mail_an'] );
  var_dump ( $_POST['mail_an'][0] );

dieses:
string(5) "Array"
string(1) "A"

Wie erreiche ich es, dass $_POST['mail_an'][0] den gewünschten Wert 1 hat?

Gruß, Knut

  1. Hallo,

    vielleicht hilft dir ja dieser Link weiter:

    mit PHP checkboxen auswerten

  2. Hi,

    in einer <form> habe ich
    <p><label for=mail1><input id=mail1 type='checkbox' name='mail_an[]' value='1'> Text</label></p>

    Das wird also als "mail_an[]=1" in den POST-Daten uebertragen;
    und PHP macht daraus automatisch ein Array.

    Wenn ich das anklicke und absende, kommt mit
      var_dump ( $_POST['mail_an'] );
      var_dump ( $_POST['mail_an'][0] );

    dieses:
    string(5) "Array"
    string(1) "A"

    Das kann eigentlich nicht sein.
    Die Ausgabe "Array" bekommst du normalerweise nur dann, wenn du versuchst, ein Array mit echo o.ae. auszugeben.

    Entweder uebertraegst du per Formular nicht das, was du hier beschrieben hast, oder du machst noch etwas anderes falsch.

    Was gibt denn ein einfaches print_r($_POST)?

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      string(5) "Array"
      string(1) "A"

      Das kann eigentlich nicht sein.
      Die Ausgabe "Array" bekommst du normalerweise nur dann, wenn du versuchst, ein Array mit echo o.ae. auszugeben.

      Entweder uebertraegst du per Formular nicht das, was du hier beschrieben hast, oder du machst noch etwas anderes falsch.

      Ja, dieses:
      if ( get_magic_quotes_gpc() )
      {
        foreach($_GET    as $k => $v ) $_GET   [$k] = stripslashes($v);
        foreach($_POST   as $k => $v ) $_POST  [$k] = stripslashes($v);
        foreach($_COOKIE as $k => $v ) $_COOKIE[$k] = stripslashes($v);
      }

      foreach($_GET    as $k => $v ) $_GET   [$k] = str_replace( "'", '-', $v );
      foreach($_POST   as $k => $v ) $_POST  [$k] = str_replace( "'", '-', $v );
      foreach($_COOKIE as $k => $v ) $_COOKIE[$k] = str_replace( "'", '-', $v );

      habe ich jetzt auskommentiert. Wie behandelt man Arrays?

      LG Knut

      1. Hi,

        if ( get_magic_quotes_gpc() )
        {
          foreach($_GET    as $k => $v ) $_GET   [$k] = stripslashes($v);
          foreach($_POST   as $k => $v ) $_POST  [$k] = stripslashes($v);
          foreach($_COOKIE as $k => $v ) $_COOKIE[$k] = stripslashes($v);
        }

        das ist übrigens vergebene Liebesmüh'...

        foreach($_GET    as $k => $v ) $_GET   [$k] = str_replace( "'", '-', $v );
        foreach($_POST   as $k => $v ) $_POST  [$k] = str_replace( "'", '-', $v );
        foreach($_COOKIE as $k => $v ) $_COOKIE[$k] = str_replace( "'", '-', $v );

        warum verstümmelst Du die Daten?

        Wie behandelt man Arrays?

        genau so! In einer Schleife.
        is_array() ist hier hilfreich.

        freundliche Grüße
        Ingo

      2. echo $begrüßung;

        if ( get_magic_quotes_gpc() )

        Wie man Magic Quotes deaktivieren kann steht im PHP-Handbuch. Die dortige Funktion behandelt auch verschachtelte Arrays richtig.

        echo "$verabschiedung $name";