problemi con la login...

ale160784

Nuovo Utente
13 Ott 2010
5
0
0
ciao a tutti.. dopo aver configurato i parametri di apache e my sql.. devo creare un form semplice di login

ho creato due file..
connect.php.
login.php

ve li posto

<?
PHP:
$dbhost = "localhost";
$dbname = "prova";
$dbusername = "root";
$dbuserpassword = "";

function db_connect(){

	global $dbhost, $dbname, $dbusername, $dbuserpassword;
	
	if(!mysql_connect($dbhost, $dbusername, $dbuserpassword))
		echo ("DB Connection failed");
			
	if(!mysql_select_db($dbname)) 
		echo ("Error selecting $dbname");
   
}

?>

e

PHP:
<?


function auth_user($username, $userpassword) {
	
	global $default_dbname, $user_tablename;
   
	db_connect();

	$query = "SELECT user, password FROM utente WHERE username = '$username' AND userpassword = password('$userpassword')";
	
	$result = mysql_query($query);
	if(!mysql_num_rows($result)) 
		return 0;
	else {
		$query_data = mysql_fetch_array($result);
		return $query_data[userid];
	}
}


function login_form() {
	
	global $PHP_SELF;
                           }

?>
<html>
<head>
<title>VISIANT _ Pagina di autenticazione</title>
</head> 


<body bgcolor="#FFFFFF" text="#000066" link="#006633">
<?php
include "connect.php";
?>

<table width="910" border="0">
  <tr>
    <td width="342"><p align="center"><img src="immagini/visiant-logo.gif" width="179" height="71"></p></td>
    <td width="558"><h2>
      <h2><p align="center"><u><em><strong>Inserire i dati per l autenticazione</strong></em></u></p> </h2>

      <p>&nbsp;</p>
      <h3><em>USERNAME <input type="text" size="20" maxlength="20" name="user" />
         </em>
      </h3>
      <h3>PASSWORD <input type="password"  size="20" maxlength="20" name="password" />
      </h3>

      <form action="prova.php" method="post">
        <p align="center"><br /> <input type="submit" value="Login" name="Submit" />
        </p>
      </form>
      <hr>
      <hr>
   <p></p></td>
  </tr>
</table>
<p align="center"><h5> Sei un nuovo utente? Registrati prima di effettuare al login</h3> </p>
<h5><a href="utente.php">REGISTRA NUOVO UTENTE</a> </h5>

<h6 align="right">&nbsp;</h6>
<h6 align="right">&nbsp;</h6>
<h6 align="right">&nbsp;</h6>
<h6 align="right">&nbsp;</h6>
<h6 align="right">&nbsp;</h6>
<h6 align="right"><em><img src="immagini/voneso.jpg" width="124" height="36"></em></h6>
<em>
</p>
</em>
</body>
</html>

<? php



session_start();
if(!isset($username)) {
	login_form();
	exit;
                       }
 else {
	session_register("username", "userpassword");
	$userid = auth_user($username, $userpassword);

	if(!$userid) {    // $userid
		          session_unregister("username");
                       session_unregister("userpassword");
		       echo "<CENTER><FONT FACE='arial' SIZE='2'><B>Autorizzazione negata.</B> " .
		       "Inserisci un user ed una password validi.<BR>\n ";

		       exit;
	             }
}
?>
<?php
echo $userid;
echo "$dbhost";
echo "$dbname";
echo "$dbusername";
echo "$dbuserpassword";
?>

il problema è che quando lo faccio girare appena carico da localost/php in fondo alla pagina mi compaiono le scritte

Notice: Undefined variable: userid in C:\Users\Ale\Desktop\EasyPHP-5.3.3\www\login.php on line 100

come se nn riconosce le variabili..

chi mi può aiutare???
 
Pagina di login

Nel tuo script ci sono degli errori li ho corretti cosi funziona se lo vuoi migliorare fai tu!!

connect.php

PHP:
$dbhost = "localhost"; 
$dbname = "prova"; 
$dbusername = "root"; 
$dbuserpassword = ""; 

$conn=mysql_connect($dbhost, $dbusername, $dbuserpassword)or die("Errore".mysql_error($conn)) ;
mysql_select_db($dbname) or die(mysql_error($dbname));

prova_login.php

PHP:
<?php 
session_start();//va all'inizio della pagina
include "connect.php"; 
if(isset($_POST['Submit']))
{
	$user=$_POST['user'];
	$password=$_POST['password'];
	
	$query ="SELECT id,user,password FROM utente WHERE user ='$user' and password = password('$password')"; 
    $result = mysql_query($query); 
    if(mysql_num_rows($result)!=1) { 
        echo "no login";
		echo '<meta http-equiv="refresh" content="1;url=prova_login.php">';
	}
    else { 
        $query_data = mysql_fetch_assoc($result); 
        echo $query_data['id'];//id non lo puoi selezionare perche lo hai omesso dalla selezione SELECT user,password
		//echo "<br>login"; 
		 session_register("username","password"); //registo sessione
		//controllo se la sessione si è registrata 
		 $_SESSION['username']=$user;
		 $_SESSION['password']=$password;
		 
		 if(session_is_registered("username")&& (session_is_registered("password")))
		 {
			 	echo $_SESSION['username'];
		 		echo $_SESSION['password'];
		 }
		 else{
			 echo "ee";//'<meta http-equiv="refresh" content="1;url=prova_login.php">';
			 }
    }
}
else{
?> 
<html> 
<head> 
<title>VISIANT _ Pagina di autenticazione</title> 
</head>  

<body bgcolor="#FFFFFF" text="#000066" link="#006633"> 


<table width="910" border="0"> 
  <tr> 
    <td width="342"><p align="center"><img src="immagini/visiant-logo.gif" width="179" height="71"></p></td> 
    <td width="558"><h2> 
      <h2><p align="center"><u><em><strong>Inserire i dati per l autenticazione</strong></em></u></p> </h2> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
      <p>&nbsp;</p> 
      <h3><em>USERNAME <input type="text" size="20" maxlength="20" name="user" /> 
         </em> 
      </h3> 
      <h3>PASSWORD <input type="password"  size="20" maxlength="20" name="password" /> 
      </h3> 

       
        <p align="center"><br /> <input type="submit" value="Login" name="Submit" /> 
        </p> 
      </form> 
      <hr> 
      <hr> 
   <p></p></td> 
  </tr> 
</table> 
<p align="center"><h5> Sei un nuovo utente? Registrati prima di effettuare al login</h3> </p> 
<h5><a href="utente.php">REGISTRA NUOVO UTENTE</a> </h5> 

<h6 align="right">&nbsp;</h6> 
<h6 align="right">&nbsp;</h6> 
<h6 align="right">&nbsp;</h6> 
<h6 align="right">&nbsp;</h6> 
<h6 align="right">&nbsp;</h6> 
<h6 align="right"><em><img src="immagini/voneso.jpg" width="124" height="36"></em></h6> 
<em> 
</p> 
</em> 
</body> 
</html>
<?php }?>
 
ho provato quello che m hai scritto ma m da errore alla riga 11 del file login.php
dicondomi warning:mysql_num_rows():supplied argument is not valid a MYSQL result resource

cioè? nn lo capisco proprio!
 
lo hai copiato uguale a quello che ti ho messi io
un altra cartella e provalo a me funziona!!!
 
m sn risp da solo. la pagina si chiama login.php e non prova_login.php..

il problema è un altro.. non capisco la parte finale del codice per la sessione
quell'else

else
{
?>
e poi il codice html

nn dovresti chiudere l'else

e poi se volessi stampare a video per capire se effettivamente le variabili user e password le prende davvero da form..
dove posso inserire i due echo???
 
PHP:
else{
echo '<meta http-equiv="refresh" content="1;url=prova_login.php">';
}//Fine else

PHP:
else{ 
?>  //viene chiuso alla fine della pagina
<html>

........

</html>
<? } ?>


_____________________________________________________________
questa condizione stampa le sessioni

PHP:
if(session_is_registered("username")&& (session_is_registered("password"))) 
         { 
                 echo $_SESSION['username']; 
                 echo $_SESSION['password']; 
         }
 

Discussioni simili