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

    Variabili di Sessione non vengono trasferite

    Salve a tutti!
    Ho scritto questo breve codice php per effettuare il login nel mio sito, ma, se imposto le variabili superglobali $_SESSION, queste non vengono visualizzate nella pagina php successiva.
    Vi lascio qui il codice, se potete aiutarmi, grazie:
    codice:
    <?php
    
    $login = $_GET['login'];
    
    if(!isset($login)) {
    
        include("connect.php");
        include("config.php");
    
        $username = $_POST['username'];
        $password = $_POST['psw'];
    
        echo $username . " " . $password;
    
        if ($username && $password) {
    
            $username = $link->real_escape_string($username);
            $password = $link->real_escape_string($password);
    
            $salt = crypt('qualsiasicosadametterecomesalt', 'rl');
            $real_password = crypt($password, '$6$' . $salt);
    
            $sql = "SELECT * FROM utenti WHERE USERNAME = '$username' AND PASSWORD ='$real_password'";
            $res = $link->query($sql) or die (mysqli_connect_errno());
    
            if ($res == TRUE) {
    
    // ora creo una sessione con l'id dell'utente  che lo farà restare connesso tutto il tempo della navigazione alle pagine protette da login
    
    
                while ($row = $res->fetch_row()) {
    
                    session_start();
    
                    $idutente = $row['ID'];
    
                    $nomeutente = $row['USERNAME'];
    
                    $_SESSION['id_utente'] = $idutente;
    
                    $_SESSION['nome_utente'] = $nomeutente;
    
    // e infine reindirizzo l'utente nella pagina protetta da login
    
                    header("location: sezione_protetta.php?login=ok");
                }
    
            }
    
    
            echo "Username o Password non corrette";
    
    
        } else {
    
            echo "Non sono stati compilati tutti i dati obbligatori";
    
    
        }
    }
    
    
    else{
        
        session_start();
        $nomeutente = $_SESSION['nome_utente'];
        echo $nome_utente;
        if (isset($nome_utente)){
    
        echo "MOSTRA CODICE HTML etc...";
    
        }
    
        else {
    
            echo "Non sei connesso come utente <br>";
    
        }
    }
    
    
    ?>

  2. #2
    il session_start() dentro al while, direi proprio no!
    non ha nessun senso.

    levali tutti, e mettine uno a inizio script.

  3. #3
    Ciao e grazie della risposta!
    Se posiziono session_start() all'inizio dello script non funziona lo stesso...
    $_SESSION le devo inizializzare per forza dopo aver definito la variabile $row...
    Altri consigli ?

  4. #4
    Quote Originariamente inviata da Leonardojavascr Visualizza il messaggio
    Ciao e grazie della risposta!
    Se posiziono session_start() all'inizio dello script non funziona lo stesso...
    $_SESSION le devo inizializzare per forza dopo aver definito la variabile $row...
    Altri consigli ?
    forse c'è qualche problema.
    ma a prescindere il session_start() lo devi mettere ad inizio script: http://php.net/manual/en/function.session-start.php

  5. #5
    Ho trovato il problema...
    In pratica $_SESSION non veniva inizializzata perchè nemmeno $nomeutente veniva inizializzata.
    Grazie FERMAT!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.