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?
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
niubbo
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
)
<?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?
niubbo
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