Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: PHP getAttribute

  1. #1

    PHP getAttribute

    Salve a tutti,

    una banalissima domanda di un programmatore Java.

    esiste la possibilità, in PHP, di simolare il setAttribute di JAVA?

    Esempio...

    In una Servlet, in Java, ho la possibilità di aggiungere gli oggetti nella request così:

    MiaClasse myObj= new MiaClasse();
    request.setAttribute("mioOggetto", myObj);

    nella jsp o in altra Servlet posso acquisire il valore...

    MiaClasse myObj = (MiaClasse) request.getAttribute("mioOggetto");

    Esiste una tecnica analoga in PHP oppure mi consigliate il miglior modo per passare i parametri da una pagina php ad un'altra ad esclusione del classico metodo della query string?

    Grazie in anticipo a tutti

    L
    Luca

  2. #2
    Ciao,
    in php per passare delle variabili da una pagina ad un'altra senza utilizzare query string, bisogna utilizzare i cookie oppure le sessioni.
    Le sessioni durano per tutta la durata della sessione e vengono salvati sul server, mentre i cookie vengono salvati sul computer dell'utente e hanno una durata prestabilita ma modificabile.
    Le sessioni funzionano nel seguente modo:
    session_start(); // inizializzi la sessione, va fatto all'inizio di ogni pagina
    $_SESSION['variabile'] = "contenuto"; // setti il valore della variabile
    $contenuto = $_SESSION['variabile'] ; // recuperi il valore della variabile

    Mediante le sessioni puoi passare variabili di ogni genere, stringhe, numeri, array ed anche oggetti.

    Ovviamente per passare oggetti bisogna utilizzare la serializzazione, serialize() esegue la serilizzazzione unserialize() fa il contrario, in pratica l aprima funzione serve in fase di memorizzazione dell'oggetto, la seconda in fase di recupero.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3

    grazie

    in php per passare delle variabili da una pagina ad un'altra senza utilizzare query string, bisogna utilizzare i cookie oppure le sessioni.
    Grazie, rimpiango Java...
    Luca

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    Re: grazie

    Originariamente inviato da sportfantasy
    Grazie, rimpiango Java...

    guarda il lato positivo....
    almeno per scrivere anche solo ciao mondo a video non devi fare una classe
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5

    Consiglio

    Approfitto delle tue conoscenze e della tua disponibilità per chiederti un consiglio...

    Ho diverse pagine che eseguono delle operazioni e mi rediriggono ad una pagina nella quale visualizzerò un messaggio.

    Il mio problema è passare il messaggio (e naturalmente altri parametri generici), dalle pagine alla pagina di messaggio.

    Come gestiresti questa cosa?

    Io al momento utilizzo nelle singole pagine una cosa del tipo:

    codice:
    $msg="TEST";
    header("Location: messaggio.php?messaggio=" . $msg);
    die();
    Grazie ancora per le info
    Luca

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ahi almeno 3 modi per poter passare le informazioni tra un pagina e l'altra:

    SESSIONE: ti permette di avere disponibili durante TUTTA la navigazione le info che conserverai al suo interno.

    GET: passi delle informazioni su ubico passaggio, ma hai l' inconveniente che le info girano in chiaro, e se sono informazioni delicate, senza i dovuti accorgimenti sei a rischio hacking

    POST: le informazioni viaggiano hell' headere delle delle richieste HTTP, non hanno limiti di lunghezza(a differenza del GET che dovrebbe avere un limite na nn ricordo quale) , le informazioni viaggiano così come sono (in GET vengono convertite in stringhe browser-friendly) e inoltre in POST gestisci anche l'invio al server di files (es. immagini per fotogallery, pdf ecc.)


    unico inconveniente del POSt è quello che non puoi fare come nell' esempio che mi hai mostrato adesso.

    ecco un esempio di post

    Codice PHP:
    <form name="login" action="<?php echo $_SERVER['PHP_SELF'?>" method="POST" autocomplete="off">
        Username: <input type="text" name="user" value="" />

        Password: <input type="password" name="pass" value="" />

        <input type="hidden" name="quando" value="<?php echo time() ?>">
        <input type="sibmit" name="invia" value="prova" />
    </form>
    <?php 
    if(isset($_POST['invia']) && $_POST['invia']=='prova' ){
        echo 
    "il tuo nome è ".$_POST['user']."
    "
    ;
        echo 
    "la tua password è ".$_POST['pass']."
    "
    ;
            echo 
    "hai compilato il form il ".date('d-m-Y',$_POST['quando'])."
    "
    ;
        }
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7

    ma...

    Questa è la tecnica che uso spesso, ma in questo caso io non ho un Form... è esclusivam una pagina di redirect...
    Luca

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    gli strumenti vanno scelti e calibrati sulle necessità:

    se nel messaggio ci scrivi "bravo!" è perfetto l' header(Location: tuapagina.php?message=bravo!')

    se nel messaggio ci devi mettere tutta una pappardella allora per esempio potrebbe esserti utile la libreria cURL, che ti consente di 'lanciare' operazioni in post direttamente da codice PHP, senza avere interfacce utente
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9

    Re: grazie

    Originariamente inviato da sportfantasy
    Grazie, rimpiango Java...
    Cosa c'e' di cosi' drammatico nel passare da
    codice:
    request.setAttribute("mioOggetto", myObj);
    a
    codice:
    $_SESSION['mioOggetto'] = $myObj;
    ?

  10. #10

    Re: Re: grazie

    C'è parecchia differenza... la sessione è nettamente meno performante... e potrebbe essere dimenticata li!
    Luca

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.