Newsgroup: it.comp.www.php
Titolo: Include - variabili vuote

Salve, stavo cercando di realizzare un login utente in php con
MySql.Premetto che sono nuovo all'uso di entrambi. A login avvenuto,
dovrei visualizzare sulla pagina alcuni dati dell'utente; non ho errori
nella compilazione del codice, ma quando loggo non vengono stampati i
risultati. Eppure mi pare tutto corretto. Vi posto il codice :
L'utente esegue login nell index.php :
<?
$file = 'config-riservato.php';
session_start();
include($file);
function check($user,$password){
	$user = addslashes($user);
	$password = addslashes($password);
	connetti();
	$r = mysql_query("SELECT * FROM utenti WHERE utente = '$user' AND
password = '$password'");
	$n = mysql_num_rows($r);
	if (!($n)){
		return false;
	}else{
		return true;
	}
}
function form_login(){ ?>
/// CODICE PAGINA HTML ///
<? }
if(isset($_POST["utente"])){
	if (check($_POST["utente"],$_POST["password"])){
		$_SESSION["utente"] = $_POST["utente"];
		$_SESSION["password"] = $_POST["password"];
		$file2 = "index-log.php";
		include($file2);
		return $mail;
	}else{
		form_login();
	}
}else{
	form_login();
}
?>
Ora, includendo il file, tramite include, apro la stessa pagina, con
una sezione che visualizza i dati dell'utente. Il mio dubbio era che il
passaggio di $mail tramite la return non avvenga. Perchè quando viene
lanciata la index.log.php non c'è scritto nulla.
La pagina di login avvenuto include config.php :
<?
$db_user = "nome";
$db_pass = "xxx";
$db_name = "Utenti";
$db_host = "localhost";
function dati(){
	global  $db_user,$db_pass,$db_name,$db_host;
	$link = mysql_connect($db_host,$db_user,$db_pass);
	if (!($link)){
	echo ("Errore nella connessione al database");
	}
	else{
	        mysql_select_db($db_name,$link);
	        $query = "SELECT * FROM utenti WHERE mail ='".$mail."'";
  	        $r = mysql_query($query,$link);
  	        $n = mysql_num_rows($r) ;
  	        $i = 0 ;
  	        while($i < $n) {
  	          $riga = mysql_fetch_array($r, $i) ;
  	          $i++ ;
  	        }
  	        $utente = $row["utente"];
   	         return $utente;
	}
}
function chiudi() {
	global  $db_user,$db_pass,$db_name,$db_host;
	$link = mysql_connect($db_host,$db_user,$db_pass);
	mysql_close($link);
}
?>
E nel codice della pagina stampo il nome utente con
<?
dati();
echo "<b>'".$utente."'</b>";
chiudi();  
?>
Ma non vedo nulla. Dove è l'errore ??

 		include($file2);
N.B. return $mail devi cancellarlo,
Marcolino ha scritto:


 N.B. return $mail devi cancellarlo,
Grazie per la proposta roberto, ma io la mail non la leggo da form. Io
leggo solo i dati dell'utente dal form, quindi user e psw. Controllo se
è registrato, con una query sul db e gli apro la nuova pagina.Ora
vorrei che, la nuova pagina aperta sappesse già chi è l'utente .. in
maniera da avere tutti i suoi dati a disposizione. La mail, non la
posso passare dal login .. quindi come posso far arrivare questa
informazione alla pagina successiva ??

mmm...
settando una sessione o passandola tramite url ?email=$email ?
Marcolino ha scritto:


 Ma non vedo nulla. Dove è l'errore ??
Attiva, se poi, anche la visualizzazione di warning e notice.
Ciao,
    Fabrizio
=== 
http://www.negusweb.it
 ===