riportare variabili dopo effettuato login

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Salve a tutti, ho trovato una guida per creare un login che vorrei applicare ad una bacheca nel mio sito. Ho fatto delle piccole modifiche in modo che una volta autenticato, nella stessa pagina appaia la maschera per l'inserimento del commento. Il tutto funziona correttamente, l'unico problema è che non riesco a far passare le variabili in questa maschera, tra cui l'username inserito poco prima nel login. Il codice è il seguente:
PHP:
<?php
$DB_host     = "localhost";
$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()
{
	// mostro un eventuale messaggio
	if(isset($_GET['msg'])) {
		echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
		
		if ($_GET['msg'] == "Login avvenuto con successo"){
			
?>
	<form name='commenta' method='post' action='commento.php'>
		<table width="100%" border="0">
			<tr>
				<td colspan="2" class="partita">Benvenuto <?php echo ($_POST['nome']); ?>! Inserisci un commento</td>
			</tr>
			<tr>
				<td class="cella4">Messaggio: </td>
				<td class="cella4"><textarea name="mex" style="width:380px; height:100px;"></textarea></td>
			</tr>
            <tr>
				<td colspan="2" class="cella4">
                	<input type='submit' name='accedi' value='Invia!'><input type='reset' name='cancella' value='Cancella!'> 
                </td>
			</tr>
		</table>
	</form>
<?php
		}
		
	}
?>


	<form name='commenta' method='post' action='index.php'>
                                    
		<table width="100%" border="0">
			<tr>
				<td colspan="3" class="partita">Effettua login per inserire un commento</td>
			</tr>
			<tr>
				<td class="cella4" style="width:75px;">Username: </td>
				<td class="cella4" style="width:150px;"><input type="text" name="nome" style="width:125px;"></td>
				<td class="cella3" rowspan="4">Nuovo utente? <br />Registrati</td>
			</tr>
			<tr>
				<td class="cella4" style="width:75px;">Password: </td>
				<td class="cella4" style="width:150px;"><input type="password" name="password" style="width:125px;">
			</tr>
			<tr>
				<td class="cella3" colspan="2">Dati dimenticati?</td>
			</tr>
			<tr>
				<td colspan="2" class="cella3">
                	<input type='submit' name='accedi' value='Invia!'>
                    <input type='reset' name='cancella' value='Cancella!'> 
                </td>
          	</tr>
		</table>

	</form>

<?
}

function effettua_login()
{
	// recupero il nome e la password inseriti dall'utente
	$nome      = trim($_POST['nome']);
	$password  = trim($_POST['password']);
	// verifico se devo eliminare gli slash inseriti automaticamente da PHP
	if(get_magic_quotes_gpc()) {
		$nome      = stripslashes($nome);
		$password  = stripslashes($password);
	}

	// verifico la presenza dei campi obbligatori
	if(!$nome || !$password) {
		$messaggio = urlencode("Non hai inserito il nome o la password");
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
		exit;
	}
	// effettuo l'escape dei caratteri speciali per inserirli all'interno della query
	$nome     = mysql_real_escape_string($nome);
	$password = mysql_real_escape_string($password);	

	// preparo ed invio la query
	$query = "SELECT id FROM utenti WHERE nome = '$nome' AND pass = MD5('$password')";
	$result = mysql_query($query);
	// controllo l'esito
	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_start();
		$_SESSION['user_id'] = $record['id'];
		$messaggio = urlencode('Login avvenuto con successo');
		header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
		
	}
	
}
?>

come vedete nella mascherina per l'inserimento dei commenti (che appare dopo l'autenticazione) vorrei riportare il nome dell'utente loggato. Per questo ho usato <?php echo ($_POST['nome']); ?>, ma non va? Cosa mi dimentico? Grazie a tutti per l'aiuto.

PS: il messaggio d'errore è "Notice: Undefined index: nome in /membri/***/index.php on line 212
! " La riga 212 è quella in cui vorrei inserire $_POST['nome'].
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Ti ringrazio per la risposta, mi potresti fare un esempio? Oppure indicarmi una guida sulle sessioni..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
non è difficile usare le sessioni.
in pratica definisci una variable con un nome es.
$_SESSION['pinco']
e gli assegni una valore
$_SESSION['pinco']="pallo";
tale variabile rimane in vita passando da una pag all'altra sino a che non esci dal bw.
l'unica accortezza è quella di crearle.
in TUTTE le pagine in cui usi le variabili di sessione devi mettere l'istruzione
session_star();
a tale istruzione DEVE essere la prima, nemmeno uno spazio.
ti faccio un esempio che pui salvare e provare
pag_uno.php
PHP:
<?php
session_start();//creo le sessioni, attento prima NON deve esserci nemmeno uno spazio
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<?php
$_SESSION['pinco']="valore della sessione";//gli do un valore
?>
<a href="pag_due.php">vai a seconda</a>
</body>
</html>

pag_due.php
PHP:
<?php
session_start();//creo le sessioni
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<?php
echo "mi ricordo che la sessione chiamata pinco ha valore ".$_SESSION['pinco']."<br />";
?>
</body>
</html>

come puoi vedere il valore della variabile di sessione che valorizzo nella pag_uno viene trasmessa alla pag_due e, volendo anche in altre.
spero di essere stato chiaro, altrimenti chiedi ancora
 
Discussioni simili
Autore Titolo Forum Risposte Data
C Io acquisto locale,riportare persone a fare acquisti locali Discussioni Varie 0
I Riportare dati funzione javascript in textbox Javascript 0
A [PHP] riportare contenuti in altra pagina Php PHP 17
C Riportare un valore calcolato in una tabella MS Access 1
S Riportare risultato di una funzione nello script. PHP 2
U Riportare Pagina Html in alto HTML e CSS 0
W Riportare in un db i checkbox selezionati PHP 1
N Problema passaggio variabili tra pagine PHP 4
S Utilizzo variabili di sessione tra PC e server PHP 0
T Circolo vizioso di variabili PHP 1
X Dichiarare variabili solo al caricamento della pagina PHP 3
R passaggio variabili tra modulo genitore a figlio jQuery 3
L [Javascript] input variabili di scrittura con canvas Javascript 2
maxnegri Eliminare url index.php con variabili e reindirizzare alla home del sito PHP 7
zorro [PHP] passaggio di variabili PHP 7
Domenico_Falco1 Rendere dinamico un sito web con chiamate ajax e php e variabili json PHP 12
S [PHP] Estrarre elementi array su più variabili PHP 5
M Inviare variabili da menu a tendina a pagina php con post PHP 6
M [PHP] Selezione da menu a discesa con 2 variabili PHP 0
B [Visual Basic] Passaggio variabili da un progetto all'altro (Visual Studio 2017 C#/SQL) Visual Basic 0
A php echo get con variabili PHP 4
S [Javascript] come estrarre valori array e inserirli in diverse variabili Javascript 1
N [PHP] Registrare variabili all'interno di un ciclo PHP 3
F [PHP] Cercare voci uguali nel db e unire alcune variabili PHP 0
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
F [PHP] if(isset($_POST['Invia'])) non mi riconosce le variabili PHP 3
K [PHP] variabili di tipo numerico nei Form PHP 1
B [PHP] variabili globali in chiamate ajax PHP 0
otto9due Concatenazione variabili jQuery 1
K [PHP] Passaggio Variabili Senza Refresh Di Pagina PHP 1
Emix [PHP] Check - Select e recupero variabili PHP 40
F Come funziona in javascript l'accesso alle variabili dell'array Programmazione 1
P [PHP] link con variabili e while PHP 5
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
Paparazzo2017 [HTML] Impaginazione Articolo con variabili in Wordpress WordPress 5
Mangiuz Variabili semplici PHP su Javascript Ajax 1
A [PHP] Passare variabili tra pagine diverse PHP 2
elpirata [PHP] Passaggio di dati tra variabili PHP 1
A Problema con getCurrentPosition e passaggio variabili da javascript a PHP Javascript 3
WebDr [ASP] Passaggio di variabili in un link tra apici ed & Classic ASP 5
B preventivo per convertire variabili js Offerte e Richieste di Lavoro e/o Collaborazione 1
E [PHP] creazioni nuove variabili per modulo di stampa PHP 1
S [Javascript] variabili tra pagine php/ajax Javascript 1
L Seo e variabili php SEO e Posizionamento 4
damiano.f [PHP] variabili su immagine e registrazione dati su db PHP 0
N [PHP] aiuto su variabili e colori PHP 4
fabryx [PHP]RISOLTO: Trasformare righe in colonne assegnando singole variabili PHP 10
ANDREA20 problema variabili PHP 4
P [Javascript] Aiuto per recupero variabili da script Javascript 10
trattorino [PHP] unire due variabili PHP 0

Discussioni simili