Visualizzazione risultati 1 fino 4 di 4

Discussione: serialize - unserialize

  1. #1
    alino74 non è connesso Utente giovane
    Data registrazione
    22-06-2009
    Messaggi
    38

    Predefinito serialize - unserialize


    Ciao raga!

    Ho un form html in cui passo, tramite POST, una array dentro una variabile nascosta ad una pagina .php :
    Codice HTML:
    <input type="hidden" name="array" value="<?php print (serialize($array)); ?>" />
    in pagina.php recupero l'array così:

    Codice PHP:
    $arrat=array(); // creo array vuoto
    $array = unserialize(stripslashes($_POST['array ']) ); // recupera array
    Ma $array risulta vuoto !!!!!


  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    In pratica, i doppi apici del "value" vanno in conflitto con quelli della serialize:

    -->esempio qui:
    Codice PHP:
    <?php
    if(isset($_POST['array']))
    var_dump(unserialize(stripslashes($_POST['array'])));

    $array = array('cane', 'gatto', 'cavallo', 'topo');
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>test alino74</title>
    </head>
    <body>
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <input type="hidden" name="array" value='<?= serialize($array)?>'>

    <!-- questo non va bene:
    <input type="hidden" name="array" value="<?= serialize($array)?>">
    -->
    <input type="submit" value="invia">
    </form>
    </body>
    </html>
    L'input con i doppi apici, sarebbe:
    Codice HTML:
    <input type="hidden" name="array" value="a:4:{i:0;s:4:"cane";i:1;s:5:"gatto";i:2;s:7:"cavallo";i:3;s:4:"topo";}">
    Con i doppi apici evidentemente errati.

    p.s: sei coscente del fatto che l'utente può modificare a piacimento quei valori? Se sono dati che non dovrebbero esser modificati, hai pensato all'uso di una sessione? O file temporaneo?
    Se invece i dati possono essere modificati a piacimento dall'utente, questo modo va benissimo (anche se prima di far la unserialize() dovresti controllar bene il formato.


    Ciao!
    Ultima modifica di alemoppo : 23-04-2013 alle ore 15.58.17

  3. #3
    alino74 non è connesso Utente giovane
    Data registrazione
    22-06-2009
    Messaggi
    38

    Predefinito

    OK, xfetto adesso funziona!

    Cosa intendi con:
    p.s: sei coscente del fatto che l'utente può modificare a piacimento quei valori? Se sono dati che non dovrebbero esser modificati, .........

    IN EFFETTI, sono dati che non devono essere modificati dall' utente!
    come potrebbe farlo ?

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Come potrebbe farlo? Con qualsiasi richiesta POST da qualsiasi pagina. Addirittura, volendo, tramite qualsiasi addon per sviluppatori siti è molto facile modificare l'html (ovviamente solo in locale). Però, anche modificando l'html in locale i dati che verranno poi inviati sono modificati.

    La cosa più semplice, è l'utilizzo delle sessioni.

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •