Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Sessione sempre attiva?

    Buon giorno, ho questo problema, vorrei mantenere la sessione sempre attiva, all'interno del sito.
    Mi spiego meglio,alcune pagine possono essere visualizzate soltanto se l'utente è registrato.Quindi una volta effettuato il login, si attivano queste aree,altre possono essere visualizzate tranquillamente.
    Per avere la sessione sempre attiva, ho pensato momentaneamente, di agganciare ad un qualsiasi link, che richiama una pagina.php, la login e la password(criptata ovviamente),inquesto modo:
    codice:
    Acusticando 
    Ma, nel momento che, clicco su un link che non ha questi valori, è come se scade la sessione mi sparisce l'Utente visualizzato nella default.

    Potrei sapere per favore come posso avere sempre attiva la sessione, dal momento che l'utente effettua la login?
    Grazie mille...

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Usa l'array di della sessione $_SESSION:

    Codice PHP:

    // ipotizzo un sistema di login
    <?

    $sql 
    "SELECT * FROM utenti WHERE user = '".$_POST['user']."' AND password = '".$_POST['password']."'";
    $result mysql_query($sql);
    $n mysql_num_rows($result);
    if(
    $n 0)
    {
        
    session_start();
        
    $_SESSION['authorization'] = 1;
        
    header("Location: dovevuoi.php");
    }
    else
    {
        
    header("Location: errore.php");
    }

    ?>
    l'array $_SESSION è persistente per tutta la navigazione (fino a chiusura del browser), di conseguenza puoi prelevare il valore di $_SESSION['authorization'] quando e dove vuoi, pero' devi mantenere attiva la sessione in ogni pagina con un session_start(); all'inizio.


  3. #3
    quindi se ho capito bene, basta che all'inzio della default inserisco questo:
    codice:
    <?session_start(); 
    $_SESSION['authorization'] = 1; 
    ?>
    <html>....
    e per ad ogni pagina che necessita mantenerla:
    codice:
    <?session_start();?>
    <html>...
    ed il gioco è fatto?
    Ma qui quale pagina devo inserire? la default.php o quale?
    codice:
    //header("Location: dovevuoi.php"); 
    header("Location: default.php");
    Grazie per avermi risposto.....

  4. #4
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Beh allora...

    Il codice che ti ho postato è un esempio di come poterbbe essere fatto un login...ovvero prelevo i dati dal form in cui l'utente ha inserito user e password...controllo se è presente una entry uguale nel DB, se si assegno alla variabile di sessione "authorization" (usa nomi più corti ) un valore. Questo valore posso prelevarlo quando voglio...in qualsiasi pagina, se prima faccio partire la sessione con un session_start() (sempre ad inizio pagina).
    L'header serve solo per reindirizzare alla pagina che vuoi...li vedi tu che pagina metter ein base a come è strutturato il tuo sistema di login.

    Cmq volevo solo farti capire come puoi controllare i permessi e l'autenticazione degli utenti.

    diciamo che inserendo un codice come questo...

    Codice PHP:
    <?php
    session_start
    ();
    if(
    $_SESSION['authorization'] != 1)
    {
       
    header("Location: accessonegato.php");
    }
    ?>
    ...permetti la visione dell apagina solo agli utenti a cui hai dato l'autorizzazione, quindi solo a quelli a cui hai settato la variabile di sessione a 1.

    Gli altri verranno rimandati alla pagina "accessonegato.php".


  5. #5
    capito... ma!!ho fatto in questo modo, io la login con la password, la estrapolo da un txt cosi:
    codice:
    <?
    for ($i=0;$i<$dim_reg;$i++){
    		$dati_ut=explode("|",$ut_regist[$i]);
    		$nick_ut=$dati_ut[0];
    		$pass_ut=$dati_ut[1];
    		if (($nick==$nick_ut) && ($password_cr==$pass_ut)) $utente_ok=1;
    	}
    	//se utente è ok(esiste) scrive su file l'ora di accesso...
    	if ($utente_ok==1){
                             //attivo la sessione
    		session_start(); 
    	    	$_SESSION['authorization'] = 1;
    		//header("Location: default.php"); 
    		echo "
    
    
    
    			<center><b class='FonTitoli'>BENVENUTO 
    ....";              
                 }
                 else{
    		header("Location: errore.php"); 
    		echo "
    
    
    
    			<center><b class='FonTitoli'>Utente non registrato....";
                }
    ?>
    In questo modo è corretto....?

  6. #6
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    si esatto. Poi fai il controllo nelle pagine riservate con il codice che ti ho postato poco sopra.


  7. #7
    scusami ancora, ma in una delle pagine dove faccio questo controllo:
    codice:
    <?php 
    session_start(); 
    if($_SESSION['authorization'] != 1) 
    { 
       header("Location: accessonegato.php"); 
    } 
    ?>
    Mi restituisce questo errore:
    Warning: Cannot add header information - headers already sent by (output started at c:\phpdev\www\public\cmc\default.php:15) in c:\phpdev\www\public\cmc\bands.php on line 3
    che significa che "non posso aggiungere l'informazione dell'header - intestazioni è già stata trasmessa"?

  8. #8
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Il problema è uno dei seguenti:

    - O non è la prima cosa della pagina. In tal caso assicurati che all'assoluto inizio della pagina...prima di ogni tag HTML e/o PHP.

    - Oppure nel server su cui stati testando la sessione resta sempre persistente senza necessità di richiamarla ad ogni pagina con un session_start();
    In questo caso, per rendere universale lo script, puoi fare cosi:

    Codice PHP:
    <?php
    if(!session_id()) { session_start(); } 
    if(
    $_SESSION['authorization'] != 1

       
    header("Location: accessonegato.php"); 

    ?>
    fammi sapere


  9. #9
    l'ho provato non funziona, però, nella riga prima 15 ora 11 della default ho questo tag:
    codice:
    <meta name="KEYWORDS" content="consorzio musicale carpinetano, carpineto, band, rock, metal, punk, folk, zampognari, antagonia, mordana, compagnia popularia, estremamente, avb">
    Per caso è questo che mi restituisce l'errore?comunque l'inizio della la default.php è cosi:
    codice:
    <? session_start();  ?>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title>CMC CONSORZIO MUSICALE CARPINETANO</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <meta name="description" content="Questo consorzio non ha scopo di lucro, ma soltanto finalità pubblicitarie per le bands che vi sono registrate.">
    <link href="css/cmc.css" type="text/css" rel="stylesheet" />
    </head>
    La riga 11 in questo caso è quella che ho commentato
    Anche commentandola mi restituisce sempre lo stesso errore sempre alla stessa riga.
    Bo...ne sai qualcosa?

    Invece nella pagina dove inserisco il tuo controllo ho questo:
    codice:
    <? 	
                 if(!session_id()) { session_start(); } 
    	if($_SESSION['authorization'] != 1) 
    	{ 
       		header("Location: accessonegato.php"); 
    	} 
    
    ?>
    <html><head>
    <META NAME="TITLE" Content="CMC:<? echo $_GET['scelta'];?>">
    <link href="css/cmc.css" type="text/css" rel="stylesheet" />
    <TITLE>CMC:<? echo $_GET['scelta'];?></TITLE>
    </head>
    <body>...
    Questo è quanto...Grazie ancora

  10. #10
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    prova a cambiare cosi il codice...proviamo il redirect senza header ma con JS:

    Codice PHP:
            if(!session_id()) { session_start(); } 
        if(
    $_SESSION['authorization'] != 1
        { 
            print(
    '<script language="javascript">window.location="accessonegato.php"</script>');
        } 

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.