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

    problemi con le sessioni

    ho un problema abbastanza particolare, a me viene molto difficile da spiegare, allora nella pagina che processa i dati ho il seguente codice
    Codice PHP:
    <?php
    session_start
    ();
    $conex mysql_connect('localhost''root');
    mysql_select_db("my_laboraccio"$conex);

    /*variabili di index.php*/
    $uname $_GET['username'];
    $pw =  $_GET['password'];
    $opzioneUtente $_GET['opzioneUtente'];

    /*variabili di profilo.php */
    echo $_GET['sms'];




    if(
    $_POST['sessione'] == "logout") {
        
    session_unset();
        
    session_destroy();
        
    header("Refresh:10; url=http://www.laboraccio.altervista.org/");
        echo 
    "sessione scaduta";
    }
        function 
    registraUtente(){
            global 
    $uname;
            echo 
    $uname;
            global 
    $pw;
            
    $sql "SELECT * FROM utenti WHERE username='$uname'";
            
    $resource mysql_query($sql) or die (mysql_error());
            
    $result mysql_num_rows($resource);
            echo 
    $result;
            if(
    $result == 0) {
                
    $sql "INSERT INTO utenti (id, username, password) VALUES (NULL, '$uname', '$pw')";
                
    mysql_query($sql);
                
    header("Refresh:10; url=http://www.laboraccio.altervista.org/");
                  echo 
    "nuovo utente creato";
     
                echo 
    "registrazione completata";
            }
            elseif(
    $result == 1){
                echo 
    "username gia in uso, riprova con un altro";
                  
    header("Refresh:10; url=http://www.laboraccio.altervista.org/");
               }
        }
        
            function 
    loggareUtente(){
            global 
    $uname;
            global 
    $pw;
            
    $sql "SELECT * FROM utenti WHERE username='$uname' AND password='$pw'";
            
    $resource mysql_query($sql) or die (mysql_error());
            
    $result mysql_num_rows($resource);
            if(
    $result == 1) {
                
    $_SESSION['username'] = $uname;
                
    $_SESSION['password'] = $pw;
                echo 
    "benvenuto alla tua area personale".$uname;
                
    header("Refresh:10; url=http://www.laboraccio.altervista.org/profilo.php");

            
            }
            elseif(
    $result == 0) {print "utente non valido";  
            
    header("Refresh:10; url=http://www.laboraccio.altervista.org/");
            }

        
        }


    if(
    $opzioneUtente == 'registrareUtente'){
        
    registraUtente();
    }
    elseif(
    $opzioneUtente == "loggareUtente") {
        
    loggareUtente();
    }
    in teoria se mi identifico mi dovrebbe mandare alla pagina di profilo che ha il seguente codice e poi mostrarmi i dati salvati nella variabile di sessione, ma per uno strano motivo mi rimanda sempre al index

    Codice PHP:
    <?php

    session_start
    ();

    if(!isset(
    $_SESSION['username'])) {
        
    header("location: http://laboraccio.altervista.org/");
    }

    if(isset(
    $_SESSION['username'])){
    echo 
    $_SESSION['username'];
    }
    ?>

    la cosa che mi e piu difficile di capire e che se io apro il seguente script
    Codice PHP:
    <html>
    <head>
    <title>s.php</title>
    </head>
    </html>
    <?php

    session_start
    ();


    if(isset(
    $_SESSION['username'])){

        echo 
    $_SESSION['username'];
        
    header("Refresh:10; url=http://www.laboraccio.altervista.org/");

    }
    else{
        echo 
    "non esiste una sessione";
        
    header("Refresh:10; url=http://www.laboraccio.altervista.org/");

        }


    ?>
    Ricevo in output i dati salvati nella variabile di sessione.. e poi se provo a fare il login di nuovo, questa volta come per arte di magia vengo reindirizzato alla pagina di profilo

  2. #2
    Ciao,
    metti l'istruzione session_start() al primissimo posto di ciascuna pagina, dopo l'apertura del tag php.

    codice:
    <?php session_start();
    poi facci sapere se è cambiato qualcosa.
    Pensate i programmi a librerie, e innalzate il livello d'astrazione

  3. #3
    si ci avevo provato ma non si e risolto niente, poi qualcuno mi ha detto che era dovuto a troppi refresh sulla pagina del server e infatti dopo che li ho rimossi e andato bene

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.