Forum Flash, Actionscript, PHP e MySQL
Problema con il logout

 
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP
Precedente  Successivo 
Autore Messaggio
Lele
nuovo utente
nuovo utente



Registrato: 24/09/07 21:18
Messaggi: 5

MessaggioOggetto: Problema con il logout
Inviato: 24.09.07 | 21:24
Rispondi citando

Ciao a tutti, sono nuovo di questo forum.
Ho appena iniziato a cimentarmi con php e mi è sorto un problema con il logout:
io ho du pagine php, login.php:
 
Codice:
<?php
  
if($_POST['tasto']){//controllo se è stato premuto il tasto di login
    //se è stato premuto effettuo la connessione al data base
    
$connessione=mysql_connect("localhost","nomeutente","password");
    
mysql_select_db("my_db",$connessione);

    
//controllo se l'utente è registrato
    //effetto la query
    
$query=mysql_query("SELECT NomeUtente,Password,Admin FROM utenti WHERE NomeUtente='".$_POST['NomeUtente']."'And Password='".$_POST['Password']."'") or die("query non valida:".mysql_error());
   
    
//controlliamo se è admin
    
if($ris_query=mysql_fetch_array($query)){//se esiste l'utente
      
$esiste=1;
      
//creiamo la sessione
      
session_start();
      
//header("Cache-control:private");
      
$_SESSION['name']=$_POST['NomeUtente'];
      if(
$ris_query[Admin]==1){
        
$admin=1;
        
$_SESSION['admin']=1;
       
      }
      else{
        
$admin=0;
        
$_SESSION['admin']=0;
      }
    }
    
//Disconnettiamoci
    
mysql_close($connessione);
  }
  
$logout=$_GET['logout'];
  if(
$logout==1){
    
$_SESSION=array();
    
session_destroy();
    
$logout=0;
  }
?>
<html>
  <head>
  <script type="text/javascript">
  function funz() {
      window.top.frames[3].location.reload();
  }
  </script>
  </head>
  <body>
    <table>
      <tr> 
        <?php
          
if($esiste){//se esiste l'utente
            //Diamo il benvenuto
            
print "<table width='100%'>
                <tr>
                  <td align='left'>
                    <font size='2' color='red'>Benvenuto "
.$_SESSION['name']."</font>
                  </td>"
;
                  if(
$admin){
                    echo 
"<td align='right' width='6%'>
                      <A href='admin.php'target='blank'>Admin</A>
                    </td>"
;
                    
//echo "<SCRIPT Language=\"Javascript1.2\"> window.top.frames[3].location.reload();</SCRIPT>";
                    //echo "<script type=\"text/javascript\">funz();</script>";
                    
echo "<script type=\"text/javascript\"> parent.principale.location.reload(true); </script>";
                  }
                  echo 
"<td align='right' width='6%'>
                    <A href='login.php?logout=1' onClick=\"funz();\">Logout</A>
                    </td>
                </tr>
              </table>"
;
             
          } 
          else{
            print 
"<form name='login' action='login.php' method='POST'>
              <td><input name='NomeUtente' type='TEXT' value='Nome Utente'></td>
              <td><input name='Password' type='PASSWORD' value='Password'></td>
              <td><input name='tasto' type='SUBMIT' value='Login'></td>
              <td><A href='registrati.php' target='registrati.php'>Registrati</A></td>
            </form>"
;
          }
        
?>
      </tr>
    </table>
     
  </body>
</html>


e principale.php:

 
Codice:
<?php
  session_start
();
  if(isset(
$_SESSION['admin']))
    
$admin=1;
  else
    
$admin=0;
?>
<html>
  <head>
  </head>
  <body> 
     
      <?php
        
//effettuo la connessione
        
$connessione=mysql_connect("localhost","nomeutente","password");
        
mysql_select_db("my_db",$connessione);
        
$numero_record=5;
        if(!isset(
$_GET["inizio"]))
          
$inizio=0;
        else
          
$inizio=$_GET["inizio"];
       
        
//vediamo se ci sono messaggi da eliminare
        
if($_GET['cancella'])
          
$query=mysql_query("delete from blog where messaggio='".$_GET['messaggio']."'")or die("ERROR3:".mysql_error());

        
//calcolo il numero di messaggi
        
$query2=mysql_query("SELECT * FROM blog") or die("ERROR1:".mysql_error());
        
$numero_record_totali=mysql_numrows($query2);
        
//calcolo il numero di pagine
        
$numero_pagine=ceil($numero_record_totali/$numero_record);
       
        
//stampo a video i messsaggi del blog
        //eseguo la query che legge i messaggi dal database
        
$lettura_risultati=mysql_query("select messaggio, date_format(data_ora, '%d/%m/%Y - ore %H:%i:%s') as data_formattata from blog order by data_ora limit $inizio,$numero_record") or die("ERROR2:".mysql_error());
        
//scrivo i messaggi del blog
        
echo "<table width='100%'>";
        
$index=0;
        while(
$scatola_temporanea=mysql_fetch_array($lettura_risultati)){
          
$index++;
          
$testo_messaggio=$scatola_temporanea[messaggio];
          
$data_inserimento=$scatola_temporanea[data_formattata];
          echo 
"<tr>
            <td><font size='2' color='blue'>
$testo_messaggio</font><br><font size='1'>$data_inserimento</font><br>
            </td>
          </tr>"
;
         
          if(
$admin){
            echo 
"<tr>
                <td><a href='principale.php?messaggio=
$testo_messaggio&cancella=1'>cancella</a>
                </td>
              </tr>"
;
          }
        } 
//fine ciclo while che scorre la query e piazza i risultati nell'array temporaneo
        //stampiamo i collegamenti alle altre pagine se ci sono altre pagine
       
        
if($numero_pagine>1){
          echo 
"<tr><td><font size='2' color='blue'>Pagine:</font>";
          for(
$pagina=1$pagina<=$numero_pagine$pagina++)
            echo 
"<a href='principale.php?inizio=".(($pagina-1)*$numero_record)."'>" .$pagina." </a>";
          }
        echo 
"</td></tr></table>";
       
        
//disconnettiamoci dal database
        
mysql_close($connessione);
      
?>
  </body>
</html>


quando mi collego come admin e poi effettuo il logout è come se non venissero cancellate le variabili di sessione infatti sotto ogni messaggio, nella pagina principale.php, i link CANCELLA per cancellare i missaggi stessi non si tolgono quando effettuo il logout dell'admin. Come mai? Sto uscendo pazzo dho
Torna in cima
Profilo Messaggio privato  
Sponsor
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 25.09.07 | 02:29
Rispondi citando

Ciao Lele, ti do il Benvenuto nel Forum.
quando effettui il "logout" non ti viene dato nessun errore?

In login.php tu fai il session_start(), solamente al momento dell'invio della form, quindi... quando effettui il logout no.
Prova a mettere il session_start() all'inizio e non dentro la condizione.

Attenzione nell'usare variabili con lo stesso nome di variabili di sessione...
Ah, i controlli li puoi effettuare direttamente sulle variabili di sessione, senza dover ogni volta fare il controllo e ulteriormante inizializzare altre variabili.


P.S: ho editato il tuo post, usando i tag "CODE" il codice risulta più leggibile. Inoltre non è essenziale postare tutto il codice della pagina HTML, basta anche esporre il problema o le righe inerenti al problema fagiano

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
Lele
nuovo utente
nuovo utente



Registrato: 24/09/07 21:18
Messaggi: 5

MessaggioOggetto:
Inviato: 25.09.07 | 20:02
Rispondi citando

Ok grazie mille per la risposta Coach Smile
La pagina principale.php si aggiorna solo dopo che aggiorno tutta la pagina, nonostanta abbia creato nella pagina login.php una funzione funz() per aggiornare pagina principale.php quando premo il link logout. Perchè?

Poi volevo chiederti come mai devo mettere session_start() all'inizio? in teoria quando mi sono connesso come utente admin non avevo gia creato una sessione?perchè devo rieseguire session_start() se l'ho gia eseguita quando mi sono connesso come admin?

Scusa per le troppe domande, forse sono banali, ma sono un principiante (noob) Very Happy

Ah comunque anche io giocavo a starcraft Very Happy
Torna in cima
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto: PHP session_start()
Inviato: 26.09.07 | 17:54
Rispondi citando

Non ho ben capito la prima parte.

session_start serve si ad inizializzare la sessione, ma anche a mantenerla.


OT: grande Starcraft Very Happy

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
Lele
nuovo utente
nuovo utente



Registrato: 24/09/07 21:18
Messaggi: 5

MessaggioOggetto:
Inviato: 27.09.07 | 13:34
Rispondi citando

Si scusa forse mi sono spiegato male. Allora io ho nella pagina login.php un link "Logout" che si collega nuovamente a login.php. Il link è legato ad un evento onClick="funz()" dove in funz c'è del codice javascript:

 
Codice:
<head>
<script language="...">
       function funz(){
             parent.principale.location.reload(true);
       }
<\script>
<\head>


questa funzione praticamente dovrebbe aggiornare la pagina principale.php, però non lo fà Crying or Very sad come mai? dho
Torna in cima
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 27.09.07 | 14:49
Rispondi citando

Qui si passa a javascript... ma queste pagine non saranno mica in frame?

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
Lele
nuovo utente
nuovo utente



Registrato: 24/09/07 21:18
Messaggi: 5

MessaggioOggetto:
Inviato: 27.09.07 | 15:53
Rispondi citando

Eh si sono all'interno di frame.E' un problema?
Torna in cima
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 27.09.07 | 17:50
Rispondi citando

Se lo specifichi magari è meglio Mr. Green

Sinceramente non ho mai avuto a che fare con sessioni e frames, in quanto evito l'utilizzo dei frames a priori. fagiano

Comunque si, dovresti chiamare quella funzione javascript, ma subito dopo aver distrutto la sessione... non al momento del click.

P.S: noto che sbagli a chiudere tutti i tag HTML, metti il backslash (\) invece dello slash (/)

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
Lele
nuovo utente
nuovo utente



Registrato: 24/09/07 21:18
Messaggi: 5

MessaggioOggetto:
Inviato: 27.09.07 | 23:27
Rispondi citando

ok risolto il problema grazie mille Very Happy
Torna in cima
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 28.09.07 | 00:06
Rispondi citando

Bene! Wink

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

Discussioni Simili
Topic Autore Forum Risposte Ultimo Messaggio
Nessun nuovo messaggio problema php as3 raf74 Actionscript 3.0 0 27.09.10 | 12:42 Leggi gli ultimi messaggi
raf74
Nessun nuovo messaggio problema con pop up malcom ActionScript & Server Side 2 29.05.06 | 14:09 Leggi gli ultimi messaggi
malcom
Nessun nuovo messaggio problema css afesk87 HTML, XHTML, CSS, standard W3C e accessibilità 5 02.02.06 | 12:56 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio problema php as3 raf74 Actionscript 3.0 0 27.09.10 | 12:12 Leggi gli ultimi messaggi
raf74
Nessun nuovo messaggio problema con ut3 ivo79 Games 9 29.02.08 | 01:48 Leggi gli ultimi messaggi
vio90vnp



 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum
Non puoi allegare files in questo forum
Non puoi downloadare gli allegati in questo forum



Powered by phpBB © 2001, 2002 phpBB Group - phpBB SEO Designed by coachdesign - © 2003-2005