• User

    passaggio di variabili da un file ad un'altro senza form action

    Salve ho bisogno di passare dei risultati che ho messo in 2 variabili $query e $titolo, e mi trovo in un file1.php come faccio a passare queste 2 variabili al file2.php senza che siano visibili o in sicurezza senza usare un form-action?
    Ho provato con le sessioni ma forse per mia incompetenza non ci sono riuscito.

    Grazie


  • User Attivo

    Prima di utilizzare (sia in scrittura che in lettura) le variabili di sessione hai "iniziato la sessione"?

    Ciao


  • User

    si l'ho fatto nel fil di esecuzione della login dopo il form-login.
    login di esecuzione.php dove inizializzo la sessione
    [PHP]
    <?php
    session_start();

    if(!get_magic_quotes_gpc()) {
    $login=mysql_real_escape_string($_POST['login']);
    }
    else {
    $login=$_POST['login'];
    }
    $pwd=$_POST['password'];

    //richiamo il database e verifico login e password

    session_register('autorizzato');

    if(($num)>0) {
    //Login Successfull
    $_session["autorizzato"] = 1;

    header("location: pagina1.php");
    exit();
    }else {
    //Login failed
    $_session["autorizzato"] = 0;
    header("location: login-failed.php");
    exit();
    }

    ?>
    [/PHP]

    come posso fare? ad esempio se voglio portarmi dietro il nome del loggato in pagina1.php come faccio?


  • User Attivo

    session_start() và riportato (prima di qualsiasi output) anche in pagina1.php e più in generale in tutte le pagine nelle quali intendi utilizzare variabili di sessione...

    Attento, è $_SESSION e non $_session.
    Ti consiglierei di farti restituire tutti gli errori (e eventuali warning) con un http://it2.php.net/set_error_handler

    Ciao


  • User

    si si il session start lo metto ad ogni pagina anzi meglio ancora mi richiamo un file dove c'è la session_start() più altre cose, su questo non ci piove, in pratica è in ogni pagina. N.B. il session maiucolo o minuscolo è indifferente gia testato.
    Faccio un esempio per vedere se va bene e se ci siamo capiti, se nel file precedente faccio:
    [PHP]
    SESSION_REGISTER('loggato');
    $_SESSION["loggato"] =$_POST['login'];
    [/PHP]

    Ora nel file successiva pagina2.php :
    [PHP]
    //se richiamo
    echo $_POST['LOGGATO'];
    //mi dovrebbe stampare il loggato
    [/PHP]

    è giusto ? a me non funziona:x


  • User Attivo

    :?Forse non ho ben capito cosa vuoi ottenere...
    Comunque prova a sostituire:
    [PHP]echo $_POST['LOGGATO'];[/PHP]
    con
    [PHP]echo $_SESSION['LOGGATO'];[/PHP]

    Ciao


  • User

    quello che vorrei fare è passare l'utente loggato ,da questo file file1.php al file2.php senza usare form, in maniera sicura
    file1.php
    [php]
    <?php
    session_start();

    if(!get_magic_quotes_gpc()) {
    $login=mysql_real_escape_string($_POST['login']);
    }
    else {
    $login=$_POST['login'];
    }
    $pwd=$_POST['password'];

    //richiamo il database e verifico login e password

    session_register('autorizzato');

    if(($num)>0) {
    //Login Successfull
    $_session["autorizzato"] = 1;

    header("location: file1.php");
    exit();
    }else {
    //Login failed
    $_session["autorizzato"] = 0;
    header("location: login-failed.php");
    exit();
    }

    ?> [/php]

    lil valore si trova in
    $login=$_POST['login'];
    [PHP]
    $login=$_POST['login'];
    [/PHP]
    come posso fare a passarlo in file.php in maniera sicura?


  • User Attivo

    Ti faccio un esempio per farti vedere come funzionano le variabili di sessione...
    pagina1.php
    [php]
    <?
    session_start();
    $_SESSION["loggato"] = "prova";
    ?>
    <a href="pagina2.php">pagina succ</a>
    [/php]pagina2.php
    [php]
    <?
    session_start();
    echo $_SESSION["loggato"];
    ?>
    [/php]Aprendo pagina1.php e cliccando sul link vedrai che il valore di $_SESSION["loggato"] viene passato dalla prima alla seconda pagina. 😉


  • User

    GRAZIE io richiamavo $_post['loggato'] , mi ero perso per una cavolata, scusa e grazie ancora


  • User Attivo

    Nessun problema...

    Ciao