Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98

    Dubbio sulla vita degli oggetti php

    Un utente si logga e viene richiamata una pagina php che avvia una connessione con il database creando un apposito oggetto (nel mio caso un oggetto di tipo Connection).
    Quando in seguito verrà richiamata dal client un'altra pagina php come faccio a passarle la connessione (l'oggetto) aperta prima???e più in generale come faccio a passare variabili tra le varie pagine chiamate in momneti distinte e nn assieme???
    Forse centrano qualcosa le sessioni (che devo ancora capire bene)????

  2. #2
    Le sessioni sono molto simili ai cookies, la differenza sostanziale è che mentre i cookies hanno una durata che puoi impostare nella dichiarazione del cookie stesso, le sessioni durano fino a che non chiudi il browser. E' un buon metodo per gestire login (io preferisco i cookies per mantenere i dati per più tempo, 1 settimana esempio), carrelli della spesa e molto altro.

    Non si tratta però dei metodi più efficienti (anche se efficaci) per il passaggio di dati fra pagine, a tal proposito ti consiglio l'uso degli argomenti via GET o form via POST

    Esempio di passaggio di variabili ad una pagina:

    pagina.php?nome=Pippo&eta=23&sesso=maschio

    pagina.php:

    $nome = $_GET['pagina'];
    echo $nome; //Pippo

    ecc

    Per quel che concerne la connessione con il database, puoi utilizzare delle connessioni "standard", che vengono aperte e chiuse ad ogni apertura del sito (io preferisco così) oppure utilizzare delle connessioni permanenti che vengono riutilizzate, però si può facilmente saturare il numero delle connessioni al db permesse dall'hoster

  3. #3
    Le connessioni al db vengono chiuse automaticamente con la fine dello script che le ha aperte.

    Quindi ogni pagina.php quando richiesto apre e chiude la connessione al db.

    Le sessioni invece fanno riferimento al valore descritto da session_id() . Quindi ogni utente apre il file di sessione depositato che gli appartiene e che viene riconosciuto dal valore del cookie di sessione letto da session_start(). Dopo di che se necessario verra' nuovamente aperto dallo script php una nuova connessione a mysql.

    Quindi nessuna relazione tra le sessioni e la connessione al db.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    se proprio vuoi passarti l'oggetto dovresti:

    - assicurarti di includere la classe che lo dichiara prima di ogni altra cosa
    - creare l'oggetto
    - serializzarlo
    - salvarlo in sessione

    - assicurarti di includere la classe che lo dichiara prima di ogni altra cosa
    - prelevarlo dalla sessione
    - deserializzarlo

    ... ovviamente se l'oggetto alloca risorse particolari potrebbe dover fare dei lavori speciali quando viene salvato e poi recuperato ... cosa non proprio semplice da gestire .. cfr le magic functions __sleep () e __wakeup() e la pagina di man http://www.php.net/manual/en/languag...ialization.php
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    Ok inizio a capire.
    Ma quindi per mantenere aperta una connessione per più della vita della pagina php corrente devo utilizzare qualcosa come ora_plogon??? Ma dopo per chiuderla?? si ritorna al problema di prima...dovrei avere un modo per memorizzare l'identificativo di connessione affinchè lo possano conoscere pagine diverse in momenti diversi!!!
    E' possibile utilizzare gli array superglobali per memorizzare le proprie informazioni???
    Per esempio $_GLOBAL['connession'] = ora_plogon(...,...,...) ???
    Oppure se voglio "passare" informazioni (ovviamente all'interno della sesione dello stesso utente) devo per forza utilizzare un database ausiliario???

  6. #6
    una connessione per essere tale deve avvenire per lo meno tra due elementi. Un client ed un server nello specifico.

    Mancando uno dei due la connessione viene rilasciata dal superstite.

    ma stai usando ORACLE???


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    Si...più che altro dovendomi appoggiare su un db esistente era la scelta obbligata.

  8. #8
    Una domanda sola, io nn mi ci sono mai trovato a serializzare un dato, a che serve questa funzione?

    Grazie

    Ciao
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    Da quel che so serializzare un dato significa trasformarlo in una sequenza di bit tale da poterla scrivere su di un file affinchè sia possibile, in un secondo momento, deserializzarla e quindi ricrearla. Ad esempio in Java si serializza un oggetto (che deve implementare Serializable) per poterlo scrivere su un file su disco oppure per spedirlo attraverso una connessione con socket (Lo scambio attraverso socket viene considerato come una scrittura e lettura da file da parte di 2 processi diversi).

  10. #10
    grazie per la risposta, invece in php dove bisogna usare serialize?
    Ciao
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

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.