Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente bannato L'avatar di payens88
    Registrato dal
    Jun 2010
    Messaggi
    235

    problema con le sessioni

    ciao raga allora ho il seguente problema....
    Nel momento in cui mi logga la session strart mi salva la username, poi però se vado a modificare l'username e ritorno all'home page, quindi ancora loggato mi rimane l'username vecchio perchè logicamente il destroy lo faccio al momento del logout, come risolvo questo problema??

    altro problema più grave però, noto che una volta modificata la password in maniera corretta, non riesco a loggarmi mi dice che la password è errata, cosa che non è vera vi posto il codice..

    HomePage
    codice:
    <?php 
    session_start(); 
     if(isset($_SESSION['username'])){
     $user=$_SESSION['username'];
     $psw=$_SESSION['password']; 
    /*  *INSERIAMO I PANNELI PER IL PROFILO PERSONALE  * */ 	
     	echo "
    ".("<div id=\"menu\"> 	
    	<ul class=\"menu\"> 		
    	[*]<a href=\"#\" class=\"parent\"><span>Benvenuto - $user</span></a> 			
    	<div><ul> 			
    	
    	[*]<a href=\"http://localhost/SitoTirocinio/user/ProfiloUser.php\"><span>Profilo personale</span></a> 		[*]<a href=\"#\"><span>Modifica profilo</span></a> 		[*]<a href=\"http://localhost/SitoTirocinio/Autenticazione/Logout.php\"><span>Logout</span></a> 	[/list]</div> 		
    	 		
    	[*]<a href=\"#\"><span>Ricerca</span></a> 		
    		<div><ul> 	
    				[*]<a href=\"#\"><span>Ultime ricerche</span></a> 		
    			[*]<a href=\"#\"><span>Libri piu' ricercati</span></a> 		
    		[/list]</div> 
    			[*]<a href=\"#\"><span>Aiuto</span></a> 
    			<li class=\"last\"><a href=\"#\"><span>Contacts</span></a> 
    		[/list]
    	</div>"); 
    } else { 
    	echo ("<div onLoad=\"document.bot.reset();\"><a class=\"log\"  href=\"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'\"  ><img class=\"register\" src=\"http://www.gettyicons.com/free-icons/131/3d/png/256/lock_256.png\" alt=\"comunica la tua username e password\">
    login</a></div> 
     <div id=\"light\" class=\"white_content\"><div class=\"contenitore\"> <FORM class=\"bot\" name=\"auten\" method=\"post\" action=\"http://localhost/SitoTirocinio/Autenticazione/Login.php\"> Username <INPUT type=\"TEXT\" name=\"user\">
    
     Password <INPUT  type=\"Password\" name=\"pass\">
      <INPUT class=\"invia\" name=\"submit\" type=\"SUBMIT\" value=\"login\"></FORM> 
     <a class=\"close\"  href = \"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\"><img src=\"http://www.ddcomics.it/wp-content/themes/mystique/images/close.png\" alt=\"chiudi\"></a> Password dimenticata?<a class=\"rec\" href=\"Ricerca.php\" title=\"Recupero password\">Recuperala</a></div></div> 		
    <div id=\"fade\" class=\"black_overlay\"></div>
    Login
    Questo fino ad ora funzionava perfettamente anche se so che va modificato di molto però come base andava bene...

    codice:
    <?php 
    $connection=mysql_connect("127.0.0.1","root","") or die("Connessione DB fallita".mysql_error()); 
     mysql_select_db("archivio") or die("Selezione DB fallita".mysql_error());
      if (isset($_POST["user"]) && isset($_POST["pass"])){ 
    	$user=($_POST["user"]);   
      $psw=md5($_POST["pass"]); 	
    controller($user, $psw); 	
     }  
    
      function controller($ceck1,$ceck2){  
    	$query=mysql_query("SELECT count(*) as tot FROM users WHERE username='$ceck1' AND password = '$ceck2'"); 	
    $resultset=mysql_fetch_assoc($query); 	
    $prova=$resultset['tot']; 		
    if( $prova==1){ 				
    //Apro la sessione e... 				
    	session_start(); 			
    		//Salvo i dati... 			
    		$_SESSION['username'] = $ceck1; 	
    		$_SESSION['password'] = $ceck2; 		
    echo "Login effettuato"."
    "."Benvenuto ".$ceck1;					
    header("Location: http://localhost/SitoTirocinio
    /PaginaIniziale.php"); 	
    redirect("http://localhost/SitoTirocinio/PaginaIniziale.php",3); 
     		}else echo "Username e/o password errati"; 
    		redirect("http://localhost/SitoTirocinio/PaginaIniziale.php",3); 
      }
     function redirect($url,$tempo = FALSE ){ 
     if(!headers_sent() && $tempo == FALSE ){  
     header('Location:' . $url);  }elseif(!headers_sent() && $tempo != FALSE ){ 
      header('Refresh:' . $tempo . ';' . $url);  }else{ 
      if($tempo == FALSE ){     $tempo = 0; 
      }  
     echo "<meta http-equiv=\"refresh\" content=\"" . $tempo . ";" . $url . "\">";  
     }
     }
      ?>
     </body> </html>
    lo so che è lungo il codice e anche disordinato..
    mi dispiace ma non sono riuscito a trovare l'errore...

  2. #2
    Se modifichi lo username con quel codice (ma poi perche' dovresti voler modificare lo user name?) o fai il logout come dici tu, o se la modifica va a buon fine riscrivi le variabili session, soprattutto
    Codice PHP:
    $_SESSION['username']; 
    in modo che rispecchi il nuovo login. Altra alternativa possibile, visto il codice decisamente semplice, e' rifare un login senza prima distruggere il tutto, ma questo dipende da come tratti poi username e password nelle altre pagine del sito.

    In sostanza, se proprio vuoi cambiare username "live", conviene che forzi un logout dell'utente.
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3
    Utente bannato L'avatar di payens88
    Registrato dal
    Jun 2010
    Messaggi
    235
    grazie per la risposta...
    lil secondo problema invece??
    perchè li proprio non ho idea...

  4. #4
    Utente bannato L'avatar di payens88
    Registrato dal
    Jun 2010
    Messaggi
    235
    per quanto riguarda il secondo problema ho notato che mi modifica la password da solo
    perchè...
    in pratica anche senza aver toccato niente e modificato solo l'user mi modifica anche la password...
    come faccio...
    al contrario se modifico le altre cose ma non l'username la password rimane corretta..

  5. #5

    Problema

    Ho un problema con le sessioni anche io, non sapevo dove scriverlo!..in pratica ho una pagina dove effettuo il login e funziona tutto bene fino al momento in cui valuto se la sessione, in un'altra pagina, è =1, come dovrebbe essere fino a che non effettuo il logout.
    Vi posto il codice mi date una mano?

    Home.php (Dove effettuo il login)
    <?php
    session_start();
    if(!isset($_SESSION['Home'])){
    $_SESSION['Home'] = 0;
    }
    if ($_SESSION['Home'] != 1){
    if( isset($_POST['log']) && isset($_POST['pass'])){
    //Connessione al DB
    mysql_connect('localhost','root','root');
    mysql_select_db('Utenti');
    $log = $_POST['log'];
    $pass = $_POST['pass'];
    $query = "select * from Utente where Login = '".$log."' ";
    $results = mysql_query($query)
    or die (mysql_error());
    if(mysql_num_rows($results) != 0){
    $row = mysql_fetch_array($results);
    $_SESSION['Home'] = 1;
    $_SESSION['Nome'] = $row['Nome'];
    }
    }
    }
    ?>
    <HTML>
    <HEAD>
    <TITLE>Accesso</TITLE>
    </HEAD>
    <BODY>

    <?php
    if($_SESSION['Home'] != 1){ ?>
    <form style="margin-top:40px;" action="AreaEle.php?p=Home" method="GET" name="Login">
    <table border="0">
    <tr><td>Tipo:</td><td>
    <select name="TipoUtente">
    <option value="Amministratore" selected>Amministratore</option>
    <option value="Meccanico">Meccanico</option>
    <option value="Magazzino">Magazziniere</option>
    </select>
    </td></tr>
    <td>Login:</td><td><input type="text" name="log"> </td>
    <tr><td>Password:</td><td> <input type="password" name="pass"></td></tr>
    <tr><td align="center" colspan="2">
    <input type="submit" name="sub" value="INVIA"/></td>
    </tr>
    </table>
    </form>
    <?php }else {
    echo "<SCRIPT Language=Javascript>";
    echo "window.location ='AreaEle.php?p=Home' ";
    echo "</SCRIPT>";
    }
    ?>
    </BODY>
    </HTML>

    AreaEle.php (Dove vedo se la sessione è =1 o no)

    <?php session_start();
    echo" ".$_SESSION['Home']." ";
    ?>
    <html>
    <head>
    <title>AREAELETTIVA</title>
    <link rel="stylesheet" type="text/css" href="Areacss.css" />
    </head>
    <body>
    <div id="backgroundLayer" >
    <div id=PRINCIPALE >
    <div id="menu">
    <ul>[*]Home
    [*]Amministrazione
    <ul>[*]Clienti & Auto[*]Visualizza Clienti[/list]
    [*]Officina
    <ul>[*]Nuova commessa[*]Visualizza commesse[/list]
    [*]Magazzino
    <ul>[*]Visualizza Prodotti[/list]
    [/list]
    </div>

    QUI!!

    <div id="divlogin">
    <?php
    if($_SESSION['Home'] == 1){
    echo "On-line : ". $_SESSION['Nome'] ." ".$_SESSION['Cognome']." ";
    ?>
    <input style="width:100px" type="submit" value="LOGOUT">
    <?php
    }else
    echo"Effettua il login :";
    ?>
    </div>


    <div id="frame" align="center">
    <?php
    if (isset($_GET['p']) && $_GET['p']) {
    if (is_file($_GET['p'].'.php')) require_once($_GET['p'].'.php');
    }else
    require_once('Home.php');
    ?>
    </div>
    </div>
    </div>
    </body>
    </html>

  6. #6
    Utente bannato L'avatar di payens88
    Registrato dal
    Jun 2010
    Messaggi
    235
    sinceramente non capisco perchè utilizzi le sessioni in questo modo...
    io farei in una manera più semplice..
    se l'user è loggato, quindi se la session[ username] esiste, fai vedere questo...
    se l'user non è loggato, quindi la session[username ] è vuota, fai vedere questo, ossia il pannello per il login o quello che vuoi tu..
    la parte php della mia homepage per interderci...
    mi sembra più semplice...
    per il resto le sessioni le riporti in tutte le pagine che richiedono in qualche modo i dati o l'autorizzazione dell'user..
    nel mio caso nella pagina del profilo dell'utente, la modifica dei dati personali e altre pagine che devo fare...

  7. #7
    Ma il problema rimane che quando passo alla pagina successiva la sessione non è più 1..cioè quando provo a visualizzarne il valore non mi visualizza niente.
    Cmq il codice che ho postato non è quello che uso, me ne sono accorto dopo!!

  8. #8
    Utente bannato L'avatar di payens88
    Registrato dal
    Jun 2010
    Messaggi
    235
    dovresti postare il codice corretto e ricordati che per postar il codice si usa il tag CODE e inserisci il codice li dentro...

  9. #9
    Va bene..Grazie! adesso lo posto.

    Home.php
    codice:
    <?php session_start(); ?>
    <HTML>
    <HEAD>
        <TITLE>Accesso</TITLE>
    </HEAD>
    <BODY>
        
        <?php
            if($_SESSION['Accesso']!=1){
        ?>
            <form style="margin-top:40px;" action="AreaEle.php?p=Home" method="POST" name="Login">
            <table border="0">
               <tr><td>Tipo:</td><td>
               <select name="TipoUtente">
                  <option value="Amministratore" selected>Amministratore</option>
                  <option value="Meccanico">Meccanico</option>
                  <option value="Magazzino">Magazziniere</option>
               </select>
               </td></tr>
               <td>Login:</td><td><input type="text" name="log"> </td>
               <tr><td>Password:</td><td> <input type="password" name="pass"></td></tr>
               <tr><td align="center" colspan="2">
                   <input type="submit" name="sub" value="INVIA"/></td>
               </tr>
            </table>
            </form>
        <?php }          
            if (isset($_POST['log']) && isset($_POST['pass'])){
    
               //Connessione al DB
    
               mysql_connect('localhost','root','root');
               mysql_select_db('Utenti');
               $query = "select * from Utente where Login = '".$_POST['log']."' ";
               $results = mysql_query($query)
                       or die (mysql_error());
               if(mysql_affected_rows() == 1){
                   $dati = mysql_fetch_row($results);
                   if(($_POST['pass'])==$dati[1]){
                       $_SESSION['Accesso'] = 1;
                   }else{
                       $_SESSION['Accesso'] = 0;
                       echo"Password errata!Riprova";
                   }
               }else
                   echo"Non esiste l'utente";
            }
            if($_SESSION['Accesso'] == 1){
               $_SESSION['Nome'] = $dati[2];
               $_SESSION['Cognome'] = $dati[3];
               echo "<SCRIPT Language=Javascript>";
               echo "window.location ='AreaEle.php?p=InseClienti' ";
               echo "</SCRIPT>";
            }
            mysql_close();
        ?>
    </BODY>
    </HTML>
    AreaEle.php

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <?php session_start();
        echo" ".$_SESSION['Accesso']." ";
    ?>
    <html>
    <head>
    <title>AREAELETTIVA</title>
    <link rel="stylesheet" type="text/css" href="Areacss.css" /> 
    </head>
    <body>
    <div id="backgroundLayer" >
        <div id=PRINCIPALE >
            <div id="menu">
            <ul>[*]Home
    [*]Amministrazione
                    <ul>[*]Clienti & Auto[*]Visualizza Clienti[/list]
                [*]Officina
                    <ul>[*]Nuova commessa[*]Visualizza commesse[/list]
                [*]Magazzino
                    <ul>[*]Visualizza Prodotti[/list]
                [/list]
            </div>
            <div id="divlogin">
                    <?php
                       if($_SESSION['Accesso'] == 1){
                         echo "On-line : ". $_SESSION['Nome'] ." ".$_SESSION['Cognome']." ";
                    ?>
                       <input style="width:100px" type="submit" value="LOGOUT">
                    <?php
                      }else
                         echo"Effettua il login :";
                    ?>
            </div>
            <div id="frame" align="center">
                <?php
                if (isset($_GET['p']) && $_GET['p']) {
                   if (is_file($_GET['p'].'.php')) require_once($_GET['p'].'.php');
                }else
                    require_once('Home.php');
                ?>
            </div>
        </div>
    </div>
    </body>
    </html>

  10. #10
    Utente bannato L'avatar di payens88
    Registrato dal
    Jun 2010
    Messaggi
    235
    hai provato a vedere cosa stampa nella pagina del login??
    fai tipo un controllo nella pagina login
    e fai stampare session['Accesso']..
    poi ti consilgierei di utilizzare una variabile quando fai una select al posto di .$_POST[....].
    nelle altre pagine session start lo hai messo vero??

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.