Array per Radio Button in Session speichern

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

  • Array per Radio Button in Session speichern

    Hallo Zusammen,

    ich möchte ein Array per Radio Button nach dem Absenden des Formulares in eine Session Variable speichern.
    Leider komme ich da aber nicht weiter.

    Kann mir jemand Helfen?


    Seite1:
    PHP-Code:
    <?php
    session_start
    ();

    $a = array ( 15);
    $b = array ( 'c''d');

    $c serialize($a);            // $a serialisieren
    $d serialize($b);            // $b serialisieren


    // Funktion zur Weiterleitung
    function redir($url) {
        global 
    $HTTP_SERVER_VARS;
        
    $protocol "http://";;
        
    $server_name $HTTP_SERVER_VARS["HTTP_HOST"];
        if (
    $server_name != '') {
            
    $protocol "http://";;
            if (isset(
    $HTTP_SERVER_VARS['HTTPS']) && ($HTTP_SERVER_VARS['HTTPS'] == "on")) {
                
    $protocol "https://";;;
            }
            if (
    preg_match("#^/#"$url)) {
                
    $url $protocol.$server_name.$url;
            } else if (!
    preg_match("#^[a-z]+://#"$url)) {
                
    $url $protocol.$server_name.(preg_replace("#/[^/]*$#""/"$HTTP_SERVER_VARS["PHP_SELF"])).$url;
            }
            
    header("Location: ".$url);
        }
        exit;
    }

    // Wurde Formular gesendet?
    if(isset($_REQUEST['senden'])){
        
    $_SESSION['test'] = $_REQUEST['rb'];    // Session Variable setzen
        
    $insertGoTo 'test2.php';                // Weiterleitung an nächste Seite
          
    redir($insertGoTo);
    }
    ?>

    <form id="form1" name="form1" method="post" action="">
      <input type="radio" name="rb" value="<?php echo $c?>">Array a<br>
      <input type="radio" name="rb" value="<?php echo $d?>">Array b<br>
      <input type="hidden" name="senden" value="1">
      <input type="submit" name="Submit" value="Senden">
    </form>
    Seite 2:
    PHP-Code:
    <?php
    session_start
    ();

    $a = array();
    $b $_SESSION['test'];

    $a unserialize($b);

    echo 
    $a.'<br>';

    // Ausgabe $a
    var_dump($a);

    echo 
    '<br>';

    // Ausgabe Session Variablen
    foreach ($_SESSION as $k => $v) {
            echo 
    '<p>' $k ' = ' $v '</p>';
    }
    ?>

  • #2
    ja und?

    - was passiert?
    - was passiert nicht?
    - fehlermeldung?
    Kissolino.com

    Kommentar


    • #3
      Wählt man den 2. Radiobutton aus, so kommt auf der 2. Seite folgende Info:

      bool(false)

      test = a:3i:0;s:1:

      Array scheint leer zu sein.
      Wenn ich 1. Radiobutton checke, und das Formular absende, dann wird der Inhalt des Arrays ausgegeben.

      In 1. Array sind nur Zahlen drin (da geht es)
      In 2. Array sind Zahlen und Text drin (da geht es nicht)

      Kommentar


      • #4
        schau dir mal den quelltext der ausgabe an. da stehen im value zusätzliche ", die dafür sorgen, dass der wert abgeschnitten wird.

        sobald also text im array steht, musst du es nach serialize noch urlencode benutzen, vor dem unserialize dann analog urldecode einsetzen.
        Kissolino.com

        Kommentar


        • #5
          Prima, hat funktioniert.

          Danke!

          Kommentar

          Lädt...
          X