Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    problema variabili di sessione per token

    ciao a tutti,

    ho creato un piccolo form dove testare un sistema con token di sicurezza ma ho dei problemi con le varibili di sessione...
    questo è la pagina del form :
    Codice PHP:
    <?php
    session_start
    ();
    $token md5(uniqid(rand(), TRUE));
    $_SESSION['token'] = $token;
    ?>
    <html>
    <head><title></title></head>
    <body>
    <form action="checkout.php" method="post">
        Nome:<input type="text" name="name" />

        <input type="hidden" name="token" value="<?= $token ?>" />
        <input type="submit" value="Submit" />
    </form>
    </body>
    </html>
    inizia la sessione, imposta un valore per il token, e lo salva in una variabile di sessione 'token'.
    questo invece è il checkout.php che processa il form :
    Codice PHP:
    if(isset($_SESSION['token']) && isset($_POST['token']) && $_POST['token']==$_SESSION['token']) {
        echo 
    $_POST['name'];
    } else {
        echo 
    "il token non corrisponde.";

    mi restituisce "il token non corrisponde", ovviamente ho verificato se la varibile venisse scritta correttamente, allora ho fatto un test con
    Codice PHP:
    echo $_SESSION['token']; 
    ed è qui che mi ritorna l'errore php
    Notice: Undefined variable: _SESSION in C:\Inetpub\wwwroot\php\token_manuale\checkout.php on line 7
    premetto: ho verificato che nel php.ini ci sia il riferimento decomentato alla directory di salvataggio dei files di sessione, e ho verificato che venissero creati correttamente, infatti sotto la C:\temp da me impostata, all'avvio del form, mi crea il file di sessione "sess_1pa127h1rq85qvgce8ioq84ee7" con all'interno : token|s:32:"422e59922b0d41714f6bae0f50692698"; .

    Non capisco proprio dove stia il problema
    Perpetual Ribellion With Absolutely No Cause

  2. #2
    Hai messo session_start() in checkout.php?

  3. #3
    l'ho messo appena ho postato il problema! me ne sono accorto solo ora.. ora mi stampa il valore della variabile session ma mi dice che il token non corrisponde come da condizione if...
    Perpetual Ribellion With Absolutely No Cause

  4. #4
    Sicuro che la configurazione di PHP consenta gli short open tag? Sicuro che in post venga scritto il token? Nella pagina checkout stampa sia quello preso via POST che quello preso via SESSION e vedi.

  5. #5
    si sono andato per esclusione.. ora impostando

    value="<?php echo $token; ?>"

    funziona correttamente, mi sa che erano le short open tag non consentite.. cose già provate ma mi ero dimenticato sto benedetto session_start() nel checkout ... grazie mille per il supporto
    Perpetual Ribellion With Absolutely No Cause

  6. #6
    ps: solitamente è bene usare le varibili di sessione o i cookies per token?
    Perpetual Ribellion With Absolutely No Cause

  7. #7
    Sessione, i cookies risiedono sul browser e possono essere manipolati esattamente come i campi di un form.

  8. #8
    ottimo, grazie ancora!
    Perpetual Ribellion With Absolutely No Cause

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.