Ciao a tutti . Sono un neofita assoluto di programmazione in generale e mi stò dilettando con PHP .
Ho un problema che non riesco a capire e mi servirebbe il vostro aiuto .
Vi spiego : dovrei realizzare un login in PHP utilizzando Mysql . Il login deve essere reindirizzato verso pagine differenti in base all’ utente . Ho pensato di creare una tabella molto semplice di nome “login” dove ho come colonne : id , username , password , redirect .
Nella colonna redirect contavo di scrivere gli url ai quali vorrei reindirizzare gli utenti che si loggano ( una volta verificata l’ identita con user e password , ovviamente ) .
Già qui il primo dubbio : devo scrivere gli url nella classica forma http://www.sitodalinkare.com , oppure come ?
Ho trovato qualcosa in rete e l’ ho adattato alle mie esigenze , ma purtroppo non funziona in quanto non si sposta mai dalla pagina di login e non capisco il perché . Nemmeno se sbaglio volutamente il login visiono la pagina di errore presente nello script e nel contempo , se metto i dati corretti , resta ugualmente ferma lì … come mai ? Ve lo posto :
<?
$dbh=mysql_connect ("localhost", "miouserdatabase", "miapassworddatabase") or die ('Non posso connettermi al database perchè : ' . mysql_error());
mysql_select_db ("nomedelmiodatabase");
if(!isset($username) ||!isset($password)) {
// esce dal php e mostra la pagina di login
?>
<html>
<head>
<title>Login</title>
<head>
<body>
<form action="<?=$php_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<p align="center">L' ingresso è riservato . Si prega di inserire i propri dati.</p>
<table align="center" border="0">
<tr>
<th>
Username:
</th>
<th>
<input type="text" name="username">
</th>
</tr>
<tr>
<th>
password:
</th>
<th>
<input type="password" name="password">
</th>
</tr>
<tr>
<th colspan="2" align="right">
<input type="submit" value="Login">
</form>
</th>
</tr>
</table>
</body>
</html>
<?
exit();
}
// inizio la query al database
$sql = mysql_query("SELECT password,redirect FROM login WHERE username = '$username'");
$fetch_em = mysql_fetch_array($sql);
$numrows = mysql_num_rows($sql);
if($numrows!= "0" & $password == $fetch_em["password"]) {
// login corretto quindi reindirizzato
$valid_user = 1;
header("Location: ".$fetch_em["redirect"]);
exit;
}
else {
$valid_user = 0;
}
// se invece non trova corrispondenza di dati
if (!($valid_user))
{
// esce dal php e mostra la pagina di errore dove viene richiesto di riprovare
?>
<html>
<head>
<title>Login</title>
<head>
<body>
<form action="<?=$php_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<p align="center">Le informazioni inserite non sono corrette. Si prega di riprovare.</p>
<table align="center" border="0">
<tr>
<th>
Username:
</th>
<th>
<input type="text" name="username">
</th>
</tr>
<tr>
<th>
password:
</th>
<th>
<input type="password" name="password">
</th>
</tr>
<tr>
<th colspan="2" align="right">
<input type="submit" value="Login">
</form>
</th>
</tr>
</table>
</body>
</html>
<?
exit();
}
?>
riuscite ad aiutarmi ? perché non procede ? si crea un loop per cui mi rimanda sempre e in ogni caso alla pagina di login principale … perché ?
Và anche detto che una parte delle istruzioni presenti nello script neanche le conosco .. purtroppo non sono che un neofita .. ma ho voglia di imparare e migliorare .
Un grazie davvero grande a tutti in anticipo . Un saluto .
Ho un problema che non riesco a capire e mi servirebbe il vostro aiuto .
Vi spiego : dovrei realizzare un login in PHP utilizzando Mysql . Il login deve essere reindirizzato verso pagine differenti in base all’ utente . Ho pensato di creare una tabella molto semplice di nome “login” dove ho come colonne : id , username , password , redirect .
Nella colonna redirect contavo di scrivere gli url ai quali vorrei reindirizzare gli utenti che si loggano ( una volta verificata l’ identita con user e password , ovviamente ) .
Già qui il primo dubbio : devo scrivere gli url nella classica forma http://www.sitodalinkare.com , oppure come ?
Ho trovato qualcosa in rete e l’ ho adattato alle mie esigenze , ma purtroppo non funziona in quanto non si sposta mai dalla pagina di login e non capisco il perché . Nemmeno se sbaglio volutamente il login visiono la pagina di errore presente nello script e nel contempo , se metto i dati corretti , resta ugualmente ferma lì … come mai ? Ve lo posto :
<?
$dbh=mysql_connect ("localhost", "miouserdatabase", "miapassworddatabase") or die ('Non posso connettermi al database perchè : ' . mysql_error());
mysql_select_db ("nomedelmiodatabase");
if(!isset($username) ||!isset($password)) {
// esce dal php e mostra la pagina di login
?>
<html>
<head>
<title>Login</title>
<head>
<body>
<form action="<?=$php_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<p align="center">L' ingresso è riservato . Si prega di inserire i propri dati.</p>
<table align="center" border="0">
<tr>
<th>
Username:
</th>
<th>
<input type="text" name="username">
</th>
</tr>
<tr>
<th>
password:
</th>
<th>
<input type="password" name="password">
</th>
</tr>
<tr>
<th colspan="2" align="right">
<input type="submit" value="Login">
</form>
</th>
</tr>
</table>
</body>
</html>
<?
exit();
}
// inizio la query al database
$sql = mysql_query("SELECT password,redirect FROM login WHERE username = '$username'");
$fetch_em = mysql_fetch_array($sql);
$numrows = mysql_num_rows($sql);
if($numrows!= "0" & $password == $fetch_em["password"]) {
// login corretto quindi reindirizzato
$valid_user = 1;
header("Location: ".$fetch_em["redirect"]);
exit;
}
else {
$valid_user = 0;
}
// se invece non trova corrispondenza di dati
if (!($valid_user))
{
// esce dal php e mostra la pagina di errore dove viene richiesto di riprovare
?>
<html>
<head>
<title>Login</title>
<head>
<body>
<form action="<?=$php_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
<p align="center">Le informazioni inserite non sono corrette. Si prega di riprovare.</p>
<table align="center" border="0">
<tr>
<th>
Username:
</th>
<th>
<input type="text" name="username">
</th>
</tr>
<tr>
<th>
password:
</th>
<th>
<input type="password" name="password">
</th>
</tr>
<tr>
<th colspan="2" align="right">
<input type="submit" value="Login">
</form>
</th>
</tr>
</table>
</body>
</html>
<?
exit();
}
?>
riuscite ad aiutarmi ? perché non procede ? si crea un loop per cui mi rimanda sempre e in ogni caso alla pagina di login principale … perché ?
Và anche detto che una parte delle istruzioni presenti nello script neanche le conosco .. purtroppo non sono che un neofita .. ma ho voglia di imparare e migliorare .
Un grazie davvero grande a tutti in anticipo . Un saluto .