Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310

    Passare oggetto tramite post

    Ciao a tutti,
    come posso passare un oggetto tramite post?
    Ho provato ad utilizzare il serialize nella prima pagina e nella pagina successiva al post l'unseriale
    ma nn mi funziona.
    Per esempio

    codice:
    pagina1.php
    
    <?
    class mia_classe
    {
        var $variabile1;
        var $variabile2;
    }
    
    $oggetto = new mia_classe;
    
    $oggetto->variabile1= 1;
    $oggetto->variabile2= 2;
    ?>
    <html>
    <body>
    <form method="post" action="pagina2.php" name="form1">
    <input type="hidden" value = "<?=serialize($oggetto)?>" name="oggetto">
    <input type="submit" name="salva" value="salva">
    </form>
    </body>
    </html>
    
    
    #########
    
    pagina2.php
    
    <?
    class mia_classe
    {
        var $variabile1;
        var $variabile2;
    }
    
    
    $ogg = new mia_classe;
    
    $ogg = unserialize($_POST['oggetto']);
    
    echo $ogg->variabile1;  //non mi restituisce nulla
    
    ?>
    nella pagina pagina2.php non mi stampa nulla.
    Dove sbaglio??
    grazie mille

  2. #2
    A me funziona:

    Codice PHP:
    <?php 
    class test {
        var 
    $var 1;
    }

    $test = new test();
    $test->var 'HelloWorld!';

    ?>
    <form method="post">
    <input type="hidden" name="obj" value="<?php echo(htmlspecialchars(serialize($test), ENT_QUOTES)); ?>" />
    <input type="submit" />
    </form>
    <?php 
    if (isset($_POST['obj'])) {
        
    $obj unserialize($_POST['obj']);
        echo(
    $obj->var);
    }
    ?>

  3. #3
    A me non funziona neanche quello di Filippo, ma dipende dagli slashes. Basta fare:

    pagina1.php
    codice:
    <?
    
    class mia_classe
    {
        var $variabile1;
        var $variabile2;
    }
    
    $oggetto = new mia_classe;
    
    $oggetto->variabile1= 1;
    $oggetto->variabile2= 2;
    
    ?>
    <html>
    <body>
    <form method="post" action="prova_004.php" name="form1">
    <input type="hidden" value = "<?php echo htmlspecialchars(serialize($oggetto), ENT_QUOTES); ?>" name="oggetto">
    <input type="submit" name="salva" value="salva">
    </form>
    </body>
    </html>
    pagina2.php
    codice:
    <?
    
    class mia_classe
    {
        var $variabile1;
        var $variabile2;
    }
    
    $ogg = unserialize(stripslashes($_POST['oggetto']));
    
    echo $ogg->variabile1;
    
    ?>
    (nota che nel secondo file non c'e' bisogno che apri una istanza della classe, viene fatto nel momento in cui fai unserialize)

    ^_^

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Perchè non te lo passi in sessione che tutta sta menata se la fa php in automatico?

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.