strano errore con immissione nickname e password

  • Creatore Discussione Creatore Discussione yok
  • Data di inizio Data di inizio

yok

Utente Attivo
3 Set 2009
62
0
0
Salve,
ho necessità di sviluppare un controllo relativo a nickname e password in fase di log-in. Quindi attraverso un campo text e password passo le due variabili: var_nick e var_pass.
Ora, testando il tutto in easy php mi succede una cosa stranissima: qualsiasi valore immetta nei due campi mi restituisce sempre questo blocco di codice:

"; echo " scarica il foglio progetti "."
"; } else { echo "
password errata!


"; echo " indietro "; } } else { echo "
nickname errato!


"; echo " indietro "; } mysql_close(); ?>


qui invece c'è il mio codice:

<?

$nick = $_POST["var_nick"];
$password = $_POST["var_password"];

$host="localhost";
$user="root";
$pass="";
mysql_connect($host,$user,$pass) or die ("Errore nella connessione");
mysql_select_db("prova_log") or die ("Errore nel selezionare il db");


$enter = mysql_query("SELECT nickname from registrato WHERE nickname = '$nick'");




$array = mysql_fetch_array($enter);

if($nick == "")



{

echo "<p class='err'><font color='red'>nickname mancante!</font></p> <br />";
echo "<a href='index.html' class='white'> indietro </a>";
}
else if($nick == $array['nickname'])


{
$enter2 = mysql_query("SELECT password from registrato WHERE password = '$password'");


$array2 = mysql_fetch_array($enter2);

if($password == "")



{

echo "<p class='err'><font color='red'>password mancante!</font></p> <br />";
echo "<a href='index.html' class='white'> indietro </a>";
}
else if($password == $array2['password'])
{
echo "<p class='grande'><font color='red'>Log-in"." "."corretto"."</font></p>";
echo "<a href='news.html'> scarica il foglio progetti </a>"."<br />";





}

else
{

echo "<p class='err'><font color='red'>password errata!</font></p> <br />";
echo "<a href='index.html' class='white'> indietro </a>";
}

}


else
{

echo "<p class='err'><font color='red'>nickname errato!</font></p> <br />";
echo "<a href='index.html' class='white'> indietro </a>";
}






mysql_close();



?>


Grazie dell'aiuto
Ciao!
 
ciao
mi sembra che tu abbia scritto
else if
invece di
elseif

non ci vuole lo spazio

intanto prova la correzzione, poi guardo meglio e ti so dire
 
sicuro di non aver salvato il codice in una pagina ".html"?
 
Grazie delle risposte!
Ho corretto else if in elseif ma l'errore rimane. Il codice è stato salvato con estensione ".php", infatti viene visualizzato come blocco note, non come pagina internet.
Francamente non mi è mai capitata una cosa simile, anche perchè lo stesso codice era già stato utilizzato in precedenza per un'altra applicazione e funzionava.....non so assolutamente dove andare a parare
 
echo "<p class='grande'><font color='red'>Log-in"." "."corretto"."</font></p>";

Prova a togliere tutte quelle concatenazioni in eccesso:

PHP:
echo "<p class='grande'><font color='red'>Log-in corretto</font></p>";

Se continua a darti quel problema allora o c'è qualche carattere sporco non visibile nel codice oppure controlla che da quelche parte tu non abbia messo due volte il singolo apice al posto del doppio apice o viceversa ('' al posto di ")
 
ciao
dai un occhio allo script che ho utilizzato per verificare, è il tuo corretto e così funzia

PHP:
<?php
/*
ho commentato le righe sia dell'invio dal form, che quelle relative al db
perche non avevo voglia di costruirle
ho messo dei valori fissi alle righe (vedi commento)
NIK, PASS, arrayNIK e array2PASS, modificando i valori
delle variabili puoi peovare tutte le opzioni
verifica che non vi siano (nel tuo caso) errori sulle query e/o
nei nomi tabella e campi
*/

//$nick = $_POST["var_nick"];
//$password = $_POST["var_password"];
//le due righe sotto simulano il $_POST
$nick ="gianni";// riga NIK modificando si provano le varie ozioni
$password = "borgo";// riga PASS modificando si provano le varie ozioni

//$host="localhost";
//$user="root";
//$pass="";
//mysql_connect($host,$user,$pass) or die ("Errore nella connessione");
//mysql_select_db("prova_log") or die ("Errore nel selezionare il db");

//$enter = mysql_query("SELECT nickname FROM registrato WHERE nickname = '$nick'");
//$array = mysql_fetch_array($enter);
//le due righe sotto simulano le due query
$array['nickname']="gianni";// riga arrayNIK modificando si provano le varie ozioni
$array2['password']="borgo";// riga array2PASS modificando si provano le varie ozioni

if($nick == ""){
	echo "<p class='err'><font color='red'>nickname mancante!</font></p> <br />";
	echo "<a href='index.html' class='white'> indietro </a>";
}elseif($nick == $array['nickname']){
	//$enter2 = mysql_query("SELECT password FROM registrato WHERE password = '$password'");
	//$array2 = mysql_fetch_array($enter2);
	if($password == ""){
		echo "<p class='err'><font color='red'>password mancante!</font></p> <br />";
		echo "<a href='index.html' class='white'> indietro </a>";
	}elseif($password == $array2['password']){
		echo "<p class='grande'><font color='red'>Log-in corretto</font></p>";
		echo "<a href='news.html'> scarica il foglio progetti </a><br />";
	}else{
		echo "<p class='err'><font color='red'>password errata!</font></p> <br />";
		echo "<a href='index.html' class='white'> indietro </a>";
	}
}else{
	echo "<p class='err'><font color='red'>nickname errato!</font></p> <br />";
	echo "<a href='index.html' class='white'> indietro </a>";
}
//mysql_close();
?>

se vuoi il ritorno automatico in caso di errore la posto di
echo "<a href='index.html' class='white'> indietro </a>";

echo "<meta http-equiv='Refresh' content='3; URL=index.html'>";

dove content=3 sono i secondi di attesa prima del reindirizzamento (può essere 0)
 
bhè, grazie davvero dell'aiuto! Ma non ne vuole sapere di andare a posto: ora, togliendo tutti gli orpelli al codice, come apici ridondanti e punti in eccesso, semplicemente non visualizza più nulla. Quello che non capisco di tutta la faccenda è come mai non mi restituisca messaggi di errore, qualsiasi cosa io vada a modificare nel codice.
Ora sbatto via tutto e lo riscrivo da capo.
Ciao!
 
E adesso che ho inserito tutto il codice riscritto e corretto, confrontandolo anche con quello di "Borgo Italia", si blocca tutto quanto e mi dà un bell'errore di "apache http server".
E dire che sta applicazione l'avro usata almeno 4 volte senza problemi in altri siti e ora è diventata l'inferno in terra
 

Discussioni simili