-
Errore login!
Questo è il mio codice per il login, ma continua a non accedermi e a darmi il messaggio: "Username o password errati!" con più account che ho registrato! Sapete dirmi come mai?
Codice PHP:
<html><title>Login</title>
<body>
<center>
<form method="POST" name="formLogin" id="formLogin">
<table border="1" align="center">
<tr>
<td><div align="right">Username:</div></td>
<td><div align="center">
<input name="username" type="text" id="username">
</div></td>
</tr>
<tr>
<td><div align="right">Password:</div></td>
<td><div align="center">
<input name="password" type="password" id="password">
</div></td>
</tr>
<tr>
<td colspan="2" align="center"><div align="center">
<input type="submit" name="accedi" value="Accedi">
</div>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
<?php
// Se clikkano sul bottone Accedi...
if(isset($_POST['accedi'])) {
// Se i campi Username e password sono vuoti...
if($_POST['username'] == "" OR $_POST['password'] == "") {
echo "Inserisci username e password!";
} // Fine: Se i campi Username e password sono vuoti...
else {
$username = $_POST['username']; // Username scritto nel form
$password = $_POST['password']; // Password scritta nel form
$query = "SELECT * FROM tabella WHERE username='" . $username . "' AND password='" . $password . "';";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
if ($username = $row['username'] AND $password = $row['password']) {
session_start(); //Apro una sessione
$_SESSION['username'] = $username;
$_SESSION['login'] = 'OK';
if ( $row['Admin'] == 1) {
$_SESSION['admin'] = 'OK';
}
Header("Location: index.php"); // Redirect al login corretto...
} // Fine: Se l'Username e password giusti...
// Se l'username e la password sono sbagliate...
else {
echo "Username o password errati!";
} // Fine: Username e Password Sbagliati...
} // Fine: Ci sono tutti i campi corretti (inseriti non validati)...
} // Fine: Se clikkano sul bottone Accedi...
?>
-
guarda ti consiglio di rivedere il codice + attentamente , sopprattuto la parte della
$row = mysql_fecth_assoc
ti consiglierei di estrarre i dati attraverso un while e confrontarli con quelli inviati via post
La stessa identica cosa l'affronto in un mio tutorial :
http://www.ebug.it/?p=43
spero di essere stato di aiuto . Fammi sapere
guarda
-
Allora: io ho adottato il tuo sistema di login con qualche modifica:
Codice PHP:
<?
//variabili di connessione
require 'config.inc.php';
require 'connect.php';
?>
<form action="<? $_SERVER[PHP_SELF]; ?>?login=ok"
enctype="application/x-www-form-urlencoded" method="post">
<strong>Username</strong><input name="user" type="text" />
<strong>Password</strong>
<input name="pass" type="password" />
<input type="submit" value="Entra" />
</form><?// recupero di valori inviati dal form: user e pass
$user = $_POST['user'];
$pass = $_POST['pass'];
$risp = "ok";
$login = $_GET['login'];
// questo serve per evitare di ricevere subito un messaggio dallo script
if ( $login == $risp ) {
// controllo che entrambi i valori siano stati compilati
if ( $user && $pass ) {
// effettuo l'escape per i valori speciali per evitare problemi con le query
$user = mysql_real_escape_string($user);
$pass = mysql_real_escape_string($pass);
// preparo una query cioè una richiesta al database che vede se esistono i
// valori appena inseriti nella tabella creata precedentemente
$sql = "SELECT id FROM utenti WHERE Username = '$user' AND Password = '$pass'";
$res = mysql_query($sql) or die (mysql_error());
// ora se i dati inseriti sono quelli esatti presenti all'interno della tabella possiamo far effettuare il login
if ( $res ) {
// ora creo una sessione con l'id dell'utente che lo farà restare connesso tutto
// il tempo della navigazione alle pagine protette da login
while($row = mysql_fetch_array($res)) {
session_start();
$idutente = $row['idutente'];
$nomeutente = $row['username'];
$_SESSION['id_utente'] = $idutente;
$_SESSION['nome_utente'] = $nomeutente;
// e infine reindirizzo l'utente nella pagina protetta da login
header("location: index.php");
}
} else {
echo "Username o Password errati";
}
} else {
echo "Non sono stati compilati tutti i dati obbligatori";
}
}
?>
L'unica cosa è che io ho impostato nello script sottostante che "if ( $_SESSION['id_utente'] && $_SESSION['nome_utente'] )" mi visualizza la scritta logout con il rispettivo collegamento, altrimenti, ACCEDI e REGISTRATI. Cosa non và? Se vuoi prova sul sitoenkantar.altervista.org/index.php?view=login ad accedere con user Prova e passw prova e vedrai...
Codice PHP:
<a href="index.php?view=chisiamo">CHI SIAMO</a> | <a href="index.php?view=contatti">CONTATTI</a> |
<?php
session_start();
if ( $_SESSION['id_utente'] && $_SESSION['nome_utente'] ){
echo '<a href="index.php?view=login">ACCEDI</a> | <a href="index.php?view=registration">REGISTRATI</a>';
}else{
echo '<a href="index.php?view=loguot">LOGOUT</a>';
}
?>
<br>
<br>
<br>
<?php
switch($_GET['view']) {
case 'articoli':
include ("INCLUDE/view.php");
echo '<br><br><br><br><a href="index.php?view=new"><h3>Clicca qui</a> per postare un nuovo articolo!</h3>';
break;
case 'registration':
include ("INCLUDE/registration.php");
break;
case 'new':
include ("INCLUDE/autentificazione.php");
include ("INCLUDE/insert.php");
break;
case 'add':
include ("INCLUDE/save.php");
break;
case 'regok':
include ("INCLUDE/registra.php");
break;
case 'chisiamo':
echo "Pagina non disponibile";
echo "<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
break;
case 'contatti':
echo "Pagina non disponibile";
echo "<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
break;
case "login":
include ("INCLUDE/login.php");
break;
case "loginsuccess":
include ("INCLUDE/entra.php");
break;
case "logout":
include ("INCLUDE/logout.php");
break;
default:
?>
<table width="101%" border="0">
<tr>
<td><img src="images/viaggi.jpg" width="200" height="150" alt="Immagine" class="left" /></td>
<td><h2> </h2>
<h2> </h2>
<h2><strong>Articoli</strong></h2>
<p>Avete Fatto un viaggio da sogno e lo volete raccontare a tutta la comunità? </p>
<p>Cosa aspettate ad entrare in questa sezione e descrivercelo in ogni minimo dettaglio?</p>
<p> </p></td>
<td> </td>
</tr>
<tr>
<td><h2><strong>Fotografie</strong></h2>
<p>Se avete delle belle fotografie di vostri viaggi questa è la sezione adatta a voi. Mostrate le vostre foto al resto della comunità. Ogni mese le più belle verranno selezionate per il logo del sito. <br>
<?php
session_start(); //Apro la sessione
if ($_SESSION['admin'] != 'OK') //Se l'utente non ha effettuato il login
{
echo '<a href="index.php?view=login">ACCEDI</a> | <a href="index.php?view=registration">REGISTRATI</a>';
}
else
{
echo '<a href="index.php?view=loguot">LOGOUT</a>';
}
?>
</p></td>
<td ><img src="images/cave_dwellings_of_cappadocia_turkey.jpg" width="200" height="150" alt="Immagine" class="right" /></td>
<td> </td>
</tr>
<tr>
<td><br><br><img src="images/egitto 1.jpg" width="200" height="150" alt="Immagine" class="left" /></td>
<td><h2><strong>Diari</strong></h2>
<p>Questa sezione non l'ho capita.</p></td>
<td> </td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td><h2><strong>Viaggi & Miraggi</strong></h2>
<p>Per non perdervi le uscite della nostra rivista questa è la sezione ideale.</p></td>
<td>
<h2><img src="images/cina3.png" width="200" height="150" alt="Immagine" class="right" /></h2>
<h2> </h2>
<p> </p></td>
<td> </td>
</tr>
<tr>
<td><img src="images/Edenpics-com_002-027-Oceano-Atlantico-e-rocce-scoscese-Portogallo-Un-posto-sulla-costa.jpg" width="200" height="150" alt="Immagine" class="left" /></td>
<td ><h2><strong>Destinazioni</strong></h2>
<p>Non l'ho capita.</p></td>
<td> </td>
</tr>
<tr>
<td><h2><strong>Le vostre segnalazioni</strong></h2>
<p>Segnalateci Hotel, residence, ristoranti o altro dove avete avuto un soggiorno piacevole.<br>
</p></td>
<td><h2><br><img src="images/1208268300roma001b.jpg" width="200" height="150" alt="Immagine" class="right" /></h2></td>
<td> </td>
</tr>
</table>
<br>
<?php
break;
}
?>
-
guarda lo vedo benissimo io , vedo articoli con foto di una spiaggia , e fotografie con una foto di un bel paesaggio di una città in una montagnetta , diari con le piramidi , viaggi e miraggi con un tempio giapponese .
Se non fa entrare prova a riavviare il tuo browser cancellando cookie e file temporanei e poi mi fai sapere.
Aspetto tue risposte .
-
Non stavo dicendo il fatto di vedere o meno la pagina, ma intendevo il fatto che accanto a CHI SIAMO | CONTATTI | vedo LOGOUT anche se non sono loggato, invece di vedere ACCEDI e REGISTRAZIONE! Cosa devo fare?
-
allora
Codice PHP:
if ( $_SESSION['id_utente'] && $_SESSION['nome_utente'] ) {
echo "<a href='accedi.php'>Devi fare la login</a>";
} else {
echo "<a href='logout.php'>Esci</a>";
}
dimmi se va bene. A dp