Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    variabili globali, come usarle?

    ciao a tutti.
    sono nuovo del mondo php.
    proveniendo dal mondo VB riesco in qualche modo a ragionare sul funzionamento, però quealche dubbio mi salta fuori.

    Ad esempio, è possibile usare variabili globali valide per tutte le funzioni dell'applicazione?

    mi spiego meglio..
    la mia applicazione esegue query ad un db mysql raccogliendo varie informazioni e salvandole in array.
    un'istruzione tale ad esempio si trova in cerca.php

    vorrei usare qualche dato ottenuto da cerca.php su altre funzioni esterne, ad esempio su stats.php (ad esempio il nome dell'utente che ha eseguito la ricerca).

    fin'ora ho provato questi metodi:

    1) registrazione con
    Codice PHP:
    global $user 
    (non riesce a mantenermi però il valore di $user sull'altra pagina)

    2) passaggio tramite "stats.php?var=$user"
    (buon metodo, però quando ho molte variabili da passare viene un ind. lungo! e soprattutto, dovrei farlo per ogni pagina..)

    3) utilizzo delle sessioni
    Codice PHP:
    $_SESSION['user'
    (comodo ma anch'esse non riesco a richiamarle da un'altra pagina.. e poi non ho capito bene come funzionino..)

    scusate se mi sono dilungato..
    spero sia chiaro.

    qualche aiuto? grazie mille

  2. #2
    ciao..

    "global" è valido solo all'interno della stessa pagina, sintassi simile al C/C++ e serve per rendere globali delle variabili tra la pagina e le funzioni contenute nella pagina stessa.

    "GET", ovvero l'appendere all'indirizzo i valori delle variabili può essere comodo se ne hai poche, non troppo importanti o riservate e un metodo può essere raccogliere tutte le variabili in un array e poi tramite serialize "comprimerle" per passare un'unica lunga stringa

    le sessioni, invece sono molto comode, e per poterle utilizzare i tutte le pagine devi mettere come prima cosa della pagina session_start(); che se c'è una sessione esistente estende le variabili già presenti a quella pagina, e se non esiste nessuna sessione ne inizializza un'altra.

    tra i tre metodi, ai quali aggiunmgerei il "POST", anche se ha comunque sempre bisogno di un form per poter passare variabili da una pagina all'altra, preferisco di gran lunga le sessioni, pratiche e utilizzabili senza troppo impegno se non si ricercano alti livelli di sicurezza!

    spero essere stato chiaro e limpido!

    ciao..

    ..IcE..
    visit the BEST italian fotolog http://www.ghiacciato.it/fotolog

    "Solo due cose sono infinite, l'universo e la stupidità dell'essere umano.. ma sulla prima ho ancora delle riserve.." A.Einstein

  3. #3
    chiarissimo grazie.

    in effetti l'utilizzo di sessioni mi verrebbe più comodo poichè l'applicativo web si basa su operazioni che vari utenti devono eseguire, ovviamente dopo il login.

    quindi metterei il session_start() a login validato e passerei le variabili direttamente alla sessione, in modo da riprenderle.
    ecco, forse sarebbe meglio integrarle con i cookie perchè non vorrei che una fatto il logout (dove cancellerò la sessione) gli utenti fossero cmq in grado di accedere alle pagine..
    qui devo capire meglio come funzionano..

    non sapevo del session_start() ad inizio di ogni pagina.. pensavo creasse più sessioni... comodo se così.
    ok, mi sembra che sia la soluzione migliore per questo tipo di app.

    un altro piccolo dubbio: mi è chiaro il concetto di lavorare con i form in modalità GET o POST.. però mi chiedevo se esiste la possibilità di associare al POST ACTION="" una funzione interna invece di linkare ogni volta un altra pagina (es: funzione.php)
    perchè a volte per singole operazioni preferirei non creare altre pagine...

    grazie mille cmq

  4. #4
    [supersaibal]Originariamente inviato da davidino80
    Ecco, forse sarebbe meglio integrarle con i cookie perchè non vorrei che una fatto il logout (dove cancellerò la sessione) gli utenti fossero cmq in grado di accedere alle pagine..
    qui devo capire meglio come funzionano..
    dipende da come impostio il login.. puoi usare una variabile di sessione che dica se l'utente ha effettuato il login.. quando effettua il logout puoi smeplicemente mettere a false quella variabile, anche tenendo aperta la sessione per altri motivi magari.
    L'importante è che nelle pagine che vuoi proteggere controlli sempre se quella variabile è true o false

    non sapevo del session_start() ad inizio di ogni pagina.. pensavo creasse più sessioni... comodo se così.
    se esiste una sessione recupera la sessione corrente, altrimenti ne crea una nuova. Nota che se nella navigazione passi per una pagina che NON ha session_start() perdi la sessione

    un altro piccolo dubbio: mi è chiaro il concetto di lavorare con i form in modalità GET o POST.. però mi chiedevo se esiste la possibilità di associare al POST ACTION="" una funzione interna invece di linkare ogni volta un altra pagina (es: funzione.php)
    perchè a volte per singole operazioni preferirei non creare altre pagine...
    [/supersaibal]
    richiami la stessa pagina e aggiungi una variabile che serva a discriminare quale parte della pagina vada eseguita... esempio:


    action="$_SERVER['PHP_SELF']?action=prova"

    nella pagina, prima del form, metti:

    Codice PHP:
    if(isset($_GET['action']))
    {
     if(
    $_GET['action'] == 'prova')
      {
       
    //fai qualcosa
       
    exit;
      }

     if(
    $_GET['action'] == 'prova2')
      {
       
    //fai qualcos'altro
       
    exit;
      }

    }
    else
    //stampa il form 

  5. #5
    benissimo..

    una cosa: perchè usi il "$_GET" invece di "$_SESSION" ?
    (visto che devo prendere dati dalla sessione)

  6. #6
    ogni cosa ha un suo scopo: il get serve per pasare un dato da una pagina all'altra.. da una precisa pagina ad un'altra precisa pagina.. e le due comunicano direttamente per mezzo di un form un link...

    le sessioni servono per mantenere dei dati su TUTTE le pagine.. o per passarli da una pagina ad un'altra che però non "comunica" direttamente con la prima


  7. #7
    [supersaibal]Originariamente inviato da }gu|do[z]{®©
    Nota che se nella navigazione passi per una pagina che NON ha session_start() perdi la sessione
    [/supersaibal]
    questa me la spieghi?!? cioè non viene registrato un cookie e l'utente rimane individuabile anche se passa da pagine senza sessione?? la storia cambierebbe se l'user non accetta cookie,ma..
    visit the BEST italian fotolog http://www.ghiacciato.it/fotolog

    "Solo due cose sono infinite, l'universo e la stupidità dell'essere umano.. ma sulla prima ho ancora delle riserve.." A.Einstein

  8. #8
    [supersaibal]Originariamente inviato da ghiacciato
    questa me la spieghi?!? cioè non viene registrato un cookie e l'utente rimane individuabile anche se passa da pagine senza sessione?? la storia cambierebbe se l'user non accetta cookie,ma.. [/supersaibal]

    hum.. fiorse hai ragione.. è che ho usato le sessioni senza cookie, ma con il sid passato in GET.. sì mi sa che con il cookie va tutto liscio fino alla scadenza del cookie


  9. #9
    cmq mi sembra di aver risolto il problema usando soltanto le sessioni e cancellandola una volta fatto il logout.
    mi sembra che vada bene e che sia abbastanza sicura, visto che le query usano il nome dell'utente salvato in sessione.

    avevo un'altra domandina inerente ma ora non ricordo..
    grazie cmq ragazzi, ottima board

  10. #10
    ciao scusate riapro il thread per un'altra domandd attinente:

    La sessione aperta sul server viene eliminata dopo un tot di tempo?
    poichè non vorrei che chiudendo la finestra direttamente dalla "X" senza fare logout (dove risiede il session_kill ) restassero file inutili sul server.
    (io per ora in locale li elimino a mano)

    grazie

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.