Visualizzazione risultati 1 fino 14 di 14

Discussione: [php] Condividere Variabile tra due pagine PHP, come fare?

  1. #1
    Guest

    Predefinito [php] Condividere Variabile tra due pagine PHP, come fare?

    Salve a tutti, ho in piccolo problema che ho risolto in modo piuttosto barbino e vorrei sapere se essiste una soluzione migliore.

    Allora, io ho due pagine php, form.php e action.php.
    Form invia tramite POST ad action i dati immessi sall'utente, più una variabile generata dal codice php stesso, ora questa variabile è generata php e l'utente non vi intereggiasce, io la condivido tra i due file con un database in txt, essistono soluzione migliori per far condividere questa variabile?

    La pagina in questione è questa:
    http://morgensterngdr.altervista.org/email.php
    E' la variabile da condividere sono i numeri che costituiscono la somma, che sono generati tramite un rand.

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Sessioni? Cookie?
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Sessioni? Cookie?
    La prima non saprei come usarla, la seconda vorrei evitare visto che sono disattivabile e la somma è dinamica, e deve essere ricaricata lato server tutte le volte.

  4. #4
    Guest

    Predefinito

    Le sessioni sono molto semplici da usare.
    Nella pagina in cui devi usarle, devi sempre inserire (all'inizio cioè dopo l'apertura del tag <?php):
    Codice PHP:
    session_start();
    Per salvarne una:
    Codice PHP:
    $_SESSION["tuo_indice"] = "tuo valore";
    E per recuperarla, usi $_SESSION["tuo_indice"] che contiene "tuo_valore"

  5. #5
    Guest

    Predefinito

    Uhm....
    Non ho capito coso sono mio indice e mio valore....saresti così gentile da spirgarmelo?

    P.S.=Nel fratempo cerco anche su google.

  6. #6
    Guest

    Predefinito

    @miki92: Io stavo per cancellare il mio

    @L'avatar di morgensterngdr
    morgensterngdr: Quello lo assegni tu.
    In pratica "tuo_valore" dovrebbe contere il risultato esatto ad esempio 1+1, e poi controllare se il valore inserito dall'utente è uguale al valore che hai salvato nella sessione, se questo è uguale invii l'email.

    Se miki92, riposta il suo esempio, credo che ti sarà più chiaro.

  7. #7
    Guest

    Predefinito

    In pratica dovrebbe fare così: nella pagina che manda il risultato:
    Codice PHP:
    session_start();
    $_SESSION["codice"] = $codice; // ricavato: $codice = quello che vuoi o quello generato, o ecc..
    session_register("codice");
    // dopo fai quello che vuoi!
    Dopo fai nell'altra pagina:
    Codice PHP:
    if($postcode == $_SESSION["codice"]) {
    echo
    "codice ok";
    } else {
    echo
    "codice ko";
    }
    Ciauu!!!! ^^"

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    sIM, leggiti una guida aggiornata sulle sessioni, oppure gli esempi sul manuale del php, perché continui ad usare roba vetusta, deprecata o inutile, tipo session_register().

  9. #9
    Guest

    Predefinito

    Altrimenti usare dei semplici input type hidden e passare da una pagina all'altra i valori tramite il form, ricavarli tramite $_POST e fare quel che ci devi fare.

    Oppure puoi generare le variabili, includere a vicenda i file in modo da essere utilizzati. Se non vuoi che il codice di uno non venga eseguita nell'altra puoi usare include_once(), così potrai per esempio utilizzare le variabili di una pagina anche in un'altra

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Altrimenti usare dei semplici input type hidden e passare da una pagina all'altra i valori tramite il form, ricavarli tramite $_POST e fare quel che ci devi fare.

    Oppure puoi generare le variabili, includere a vicenda i file in modo da essere utilizzati. Se non vuoi che il codice di uno non venga eseguita nell'altra puoi usare include_once(), così potrai per esempio utilizzare le variabili di una pagina anche in un'altra
    $_POST Hidden ci avevo già pensato, ma....mi sembrava ancora più barbino della database.txt (che devo dire, vulnerabilità esclusa, funziona benissimo!).

    Include non lo posso usare, inquanto lo script è incluso in iframe che subbisce vari aggiornamenti in coseguenza all'azioni dell'utente, l'include non mi conviene.

    Ho invece risolto perfettamente con l'uso dei $_SESSION, tuttavia ho specificato la distruzione della sessione in cosseguenza al l'uso del form, se l'utente invece apre la pagina ma non usa il form, come faccio a sopprimere la sessione?

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

    Predefinito

    Citazione Originalmente inviato da morgensterngdr Visualizza messaggio
    se l'utente invece apre la pagina ma non usa il form, come faccio a sopprimere la sessione?
    Tramite session_destroy(); (ti cancella le sessioni..)

    Ciao!

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Tramite session_destroy(); (ti cancella le sessioni..)

    Ciao!
    Che è quello che faccio nella pagina dell'invio e-mail dopo aver eseguito tutte le azioni neccessari, ma se non ho accesso a quella pagina, dove piazzo il session_destroy?

  13. #13
    Guest

    Predefinito

    La sessione dovresti distruggerla subito dopo la verifica del corretto inserimento dell'antibot (soltanto se è corretta!)

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da nokiagames Visualizza messaggio
    La sessione dovresti distruggerla subito dopo la verifica del corretto inserimento dell'antibot (soltanto se è corretta!)
    Infatti è quello che faccio, l'ha distruggo anche se l'antibot non passa per generarne uno nuovo completamente senza rischio di sovrapossizione dati.

    Il problema è il seguente:

    1)L'utente entra nella pagina, visualiza il form e apre la sessione
    2)L'utente dissinteressato a inviarmi un e-mail e finito in quella pagina solo per caso, non tenta di superare l'antibot.

    Come faccio, in questo caso, a distruggere la sessione?

Regole di scrittura

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