Non aggiorna valore session

marcocorso

Nuovo Utente
25 Giu 2015
3
0
0
Ciao ha tutti
ho provato a scrivere questo codice che dopo il login dovrebbe cambiare il nome dell'utente da "visitatore" a quello inserito per il login ma rimane "visitatore" e non varia

home.php
PHP:
<?php
session_start();
$_SESSION['username'] = "visitatore";

include('header.php');
?>

   .
   .
   .
   .
   .

	
<?php
include('footer.php');
?>


header.php

PHP:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>

   <head>
      .
      .
   </head>
    
<body>
      .
      .
      .		
	
<?php
$DB_host     = '...';
$DB_user     = '...';
$DB_password = '...';
$DB_name     = '...';

$link = mysql_connect($DB_host, $DB_user, $DB_password);
if (!$link) {
	die ('Non riesco a connettermi: ' . mysql_error());
}

$db_selected = mysql_select_db($DB_name, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database: " . mysql_error());
}

if($_POST) {
	effettua_login();
} else {
	mostra_form();
}

function mostra_form()
{
	if(isset($_GET['msg'])) {
		echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
	}
?>

	<?php
}

function effettua_login()
{
	$nome      = trim($_POST['nome']);
	$password  = trim($_POST['password']);
	if(get_magic_quotes_gpc()) {
		$nome      = stripslashes($nome);
		$password  = stripslashes($password);
	}

	if(!$nome || !$password) {
		$messaggio = urlencode("Non hai inserito il nome o la password");
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
		exit;
	}

	$nome     = mysql_real_escape_string($nome);
	$password = mysql_real_escape_string($password);	

	$query = "SELECT uname FROM usr WHERE uname = '$nome' AND upwd = '$password'";
	$result = mysql_query($query);

	if (!$result) {
		die("Errore nella query $query: " . mysql_error());
	}

	$record = mysql_fetch_array($result);

	if(!$record) {
		$messaggio = urlencode('Nome utente o password errati');
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
	} else {
		$_SESSION['username'] = $nome;
		$messaggio = urlencode('Login avvenuto con successo');
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
	}
}
?>

		
		UTENTE:
		<?php
			echo $_SESSION['username'];
		?>
		
		<form name="form_login" method="post" action="">
		   <label>username: <input name="nome" type="text" value=""></label><br>
		   <label>password: <input name="password" type="password" value=""></label><br>
	           <input name="invia" type="submit" value="Invia">
	        </form>
 

akp

Utente Attivo
8 Giu 2015
133
0
16
Ciao ha tutti
ho provato a scrivere questo codice che dopo il login dovrebbe cambiare il nome dell'utente da "visitatore" a quello inserito per il login ma rimane "visitatore" e non varia

home.php
PHP:
<?php
session_start();
$_SESSION['username'] = "visitatore";

include('header.php');
?>

   .
   .
   .
   .
   .

	
<?php
include('footer.php');
?>


header.php

PHP:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>

   <head>
      .
      .
   </head>
    
<body>
      .
      .
      .		
	
<?php
$DB_host     = '...';
$DB_user     = '...';
$DB_password = '...';
$DB_name     = '...';

$link = mysql_connect($DB_host, $DB_user, $DB_password);
if (!$link) {
	die ('Non riesco a connettermi: ' . mysql_error());
}

$db_selected = mysql_select_db($DB_name, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database: " . mysql_error());
}

if($_POST) {
	effettua_login();
} else {
	mostra_form();
}

function mostra_form()
{
	if(isset($_GET['msg'])) {
		echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
	}
?>

	<?php
}

function effettua_login()
{
	$nome      = trim($_POST['nome']);
	$password  = trim($_POST['password']);
	if(get_magic_quotes_gpc()) {
		$nome      = stripslashes($nome);
		$password  = stripslashes($password);
	}

	if(!$nome || !$password) {
		$messaggio = urlencode("Non hai inserito il nome o la password");
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
		exit;
	}

	$nome     = mysql_real_escape_string($nome);
	$password = mysql_real_escape_string($password);	

	$query = "SELECT uname FROM usr WHERE uname = '$nome' AND upwd = '$password'";
	$result = mysql_query($query);

	if (!$result) {
		die("Errore nella query $query: " . mysql_error());
	}

	$record = mysql_fetch_array($result);

	if(!$record) {
		$messaggio = urlencode('Nome utente o password errati');
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
	} else {
		$_SESSION['username'] = $nome;
		$messaggio = urlencode('Login avvenuto con successo');
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
	}
}
?>

		
		UTENTE:
		<?php
			echo $_SESSION['username'];
		?>
		
		<form name="form_login" method="post" action="">
		   <label>username: <input name="nome" type="text" value=""></label><br>
		   <label>password: <input name="password" type="password" value=""></label><br>
	           <input name="invia" type="submit" value="Invia">
	        </form>

la stringa "visitatore" te la deve stampare quell'echo?:
PHP:
UTENTE:
        <?php
            echo $_SESSION['username'];
        ?>
        
        <form name="form_login" method="post" action="">
           <label>username: <input name="nome" type="text" value=""></label><br>
           <label>password: <input name="password" type="password" value=""></label><br>
               <input name="invia" type="submit" value="Invia">
            </form>

Se la deve stampare li allora prova a scrivere così:
PHP:
<?php
session_start();
 echo $_SESSION['username'];
        ?>
 

marcocorso

Nuovo Utente
25 Giu 2015
3
0
0
avevo già provato ma da errore dicendo che la sessione è già iniziata nella pagina home
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
il sistema migliore è mettere dei var_dump per vedere dove è l'inghippo
PHP:
<?php
session_start();
$_SESSION['username'] = "visitatore"; 
var_dump($_SESSION['username']);
//....
?>
PHP:
<?php
//....
function effettua_login()
{
    var_dump($_POST['nome']);
	$nome      = trim($_POST['nome']);
	//.....
}
//.....
?>
PHP:
<?php
//....
 } else {
        var_dump($nome);
		$_SESSION['username'] = $nome;
		var_dump($_SESSION['username']);
        $messaggio = urlencode('Login avvenuto con successo');
        header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
    }
}
?>
ti conviene uno alla volta, lanciare e verificare, sino a che non trovi l'errore
 

marcocorso

Nuovo Utente
25 Giu 2015
3
0
0
ho provato a inserire i vari var_dump ma, a parte il primo che visualizza correttamente visitatore, gli altri non visualizzano niente nella apgina
 
Discussioni simili
Autore Titolo Forum Risposte Data
Shyson AUTO_INCREMENT non si aggiorna MySQL 2
napuleone non si aggiorna textarea in tempo reale Javascript 3
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
S Il Css non si aggiorna, svuotata cache HTML e CSS 6
M UPDATE non aggiorna db se lo inserisco in un ciclo Database 1
M [PHP] Menu a tendina dinamico che non si aggiorna PHP 2
D perchè non aggiorna il totale? Javascript 5
Shyson Un form non aggiorna il codice captcha Javascript 0
M query non si aggiorna PHP 3
R La finestra padre non si aggiorna con Chrome Javascript 1
P Problemi nell'update aggiorna un unico utente anche se entro come pallo e non pinco PHP 6
C Non aggiorna pagina in modo corretto con server proxy o Fastweb PHP 6
Shyson Contatore post non si aggiorna in automatico PHP 7
S DB Access non si aggiorna con asp Classic ASP 1
L Aiuto codice PHP: Non aggiorna la tabella!! PHP 13
A l 'antivirus non si aggiorna Sicurezza e Virus 1
PaIkEa Pagina web che non si aggiorna HTML e CSS 4
metalgemini Mysql non mi aggiorna un record PHP 2
felino Mac OS e Client Mail: Stato non in linea Mac e Software 1
I nome utente non esiste nel database PHP 1
M Drag and Drop non capisco le sequenze... Javascript 1
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
F comando di inclusione file audio in I-Pad non funziona HTML e CSS 1
M Immagini non usate WordPress 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
G Numero zero null non deve visualizzare nulla PHP 0
F Paypal _xclick IPN non risponde PHP 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
E Alert non viene mostrato PHP 1
felino Hardisk WD SATA 1TB 3.5" non si avvia! Hardware 4
K Scrip non funzionante Javascript 1
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
zorro CREATE TABLE non funziona PHP 6
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
Sevenjeak Php8 non carica estenzioni PHP 0
R query DELETE non cancella i record PHP 1
otto9due Input text: accetta solo numeri e non può essere vuoto. Javascript 9
G Non vedo frecce su forme Photoshop 2
G Il mio sito dopo aver abilitato l'ssl non visualizza le immagini con indirizzi senza ssl HTML e CSS 0
P jquery refresh div non funziona Javascript 0
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
S Certificato SSL non funzionante Domini 0
zorro modulo di registrazione: funziona ma non sempre PHP 2
D Form contatti non funzionante HTML e CSS 0
MarcoGrazia Trovare record nel database partendo da id non sequenziali PHP 6
M Non ho rinnovato il mio sito su Aruba... Domini 1
T IP INFO NON FUNZIONA PHP 0
Shyson Google search non trova il mio sito SEO e Posizionamento 1
E Estrarre dati da doppia tabella, banale ma non sempre PHP 1

Discussioni simili