Oppure

Loading
12/02/13 18:31
lorenzoscarrone
pagina index.html
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="fname">
<input type="submit">
</form>
</body>
</html>

pagina welcome.php:
<html>
<body>
<?php 
$var=fopen("prova_aut.txt","r");
$leggi=fread($var,filesize("prova_aut.txt"));

if($leggi === $_POST["fname"]) {
echo "Welcome To HomePage";
}else{
echo"Login incorrect...";
} 
?> 
</body>
</html>


errore che viene fornito dal terminale è
root@mycomputer:/var/www/php_/ php welcome.php
<html>
<body>
PHP Notice:  Undefined index: fname in /var/www/php_/welcome.php on line 7
Login incorrect... 
</body>
</html>

non riesco a capire come risolverlo, e cosa significa che non ho definito fname
Ultima modifica effettuata da lorenzoscarrone 12/02/13 18:33
aaa
12/02/13 19:11
Qwertj
se non viene passato nulla alla pagina, $_POST['fname'] non è dichiarato e PHP da un notice, che non è nemmeno un errore ma un avviso
devi modificare la direttiva error_reporting nel file php.ini, nei commenti vicino alla direttiva spiega quali valori utilizzare, solitamente E_ALL & ~E_NOTICE è una buona opzioen
aaa
12/02/13 20:33
lorenzoscarrone
non credo di aver capito molto bene il file php.ini è già settato come dici tu... non è che potresti postarmi una correzzione del programma? :hail:
in pratica il programma deve leggere la stringa dal post dell'index.html e mandarlo su welcome.php che lo confronta con il file prova_aut.txt se sono uguali i contenuti esegue il loging altrimenti nulla.
Ultima modifica effettuata da lorenzoscarrone 12/02/13 20:51
aaa
13/02/13 9:43
Niubbo
ciao lorenzo
anche se sto imparando da poco ho capito dove hai sbagliato:
nel file html devi mettere il value per poter passare il parametro altirimenti non lo passa. cioè
Name: <input type="text" name="fname" value="fname">

altra cosa.. secondo me nel file php sbagli l'approccio, perche con questa istruzione:
$leggi=fread($var,filesize("prova_aut.txt"));

carichi in $leggi tutto il contenuto del file prova_aut.txt (almeno cosi provando!) perciò il tuo if non funzionerà e ti darà sempre "Login incorrect..."
non ho ancora studiato bene l'apertura di file o altro.. ma mi pare che c'è il modo di leggere un carattere alla volta. comunque indago e poi ti dico;)

niubbo8-|
Ultima modifica effettuata da Niubbo 13/02/13 9:47
aaa
13/02/13 10:33
Niubbo
mi è piaciuto il tuo esempio e quindi mi son messo a farlo! (per esercitarmi pure io:D)

<?php
$fname = $_POST['fname'];
$var=fopen("prova_aut.txt","r");
$leggi=fread($var,filesize("prova_aut.txt"));
$v = explode("\n", $leggi);

$login_ok =0;
for($i=0;($i < count($v))&&($login_ok  == 0);$i++){
	if(trim($v[$i]) == $fname) {
		echo "Welcome To HomePage";
		$login_ok  = 1;
	}
}
if($login_ok ==	0){
  echo "Login incorrect...";
}
?>

allora questo è il mio codice (ovviamente a me funziona!) tu che ne pensi?

niubbo8-|
ps. ho preso per ipotesi che nel file "prova_aut.txt" i nomi vengano messi uno per riga!
Ultima modifica effettuata da Niubbo 13/02/13 10:36
aaa
13/02/13 18:21
lorenzoscarrone
grazie moltissimo per l'aiuto il programma è perfetto :k:
aaa