Autor | Zpráva | ||
---|---|---|---|
Alda61 Profil * |
#1 · Zasláno: 24. 3. 2013, 11:36:51 · Upravil/a: Alda61
Dobrý den,
mám další 2 problémy: 1. Warning: readdir(): supplied argument is not a valid Directory resource in /var/www/kr1/xnezbeda/projekt1/private/login.php on line 8 2. Warning: Cannot modify header information - headers already sent by (output started at /var/www/kr1/xnezbeda/projekt1/private/login.php:8) in /var/www/kr1/xnezbeda/projekt1/private/login.php on line 25 Uživatel Heslo --------- <? $login=""; //uživatelské jméno $pass=""; //heslo $adresar="users"; if ($_GET['action']=='validate'){ while ($soubor = readdir($adresar)){ if($soubor == $user) break; $login = $soubor; $file2 = fopen($soubor, "r"); if (!$file2) { die("</br>Nelze otevrit soubor se soubory uzivatele"); } $pass = fread($file2,filesize($soubor)); fclose($file2); } if(($_POST['user']==$login)&&($_POST['passwd']==$pass)){ session_start(); $_SESSION["user_is_logged"] = 1; header("Location: index.php"); exit; } else { header("Location: bad-login.html"); } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title></title> </head> <body> <form action="./login.php?action=validate" method="post"> <table> <tr><td><font color="white">Uživatel</font> </td><td><input type="text" name="user" /></td></tr> <tr><td><font color="white">Heslo</font> </td><td><input type="password" name="passwd" /></td></tr> <tr><td colspan="2"> <input type="submit" value="..:: Log-in ::.." /> <input type="button" value="..:: Sign-in ::.." onClick="window.location='register.php' "></td></tr> </table> </form> </body> </html> Teď mě napadlo že 2. hláška by se dala "fixnout"(echo '<meta http-equiv="refresh" content="3;url=...">';). Ale druhou ... |
||
Mike8748 Profil |
#2 · Zasláno: 24. 3. 2013, 12:06:37
Alda61:
hláška 2 sama zmizí v okamžiku kdy opravíš tu první pokud jde o první, tak chyba je v parametru funkce readdir(), tomu nemáš jako parametr dávat jméno adresáře, ale výsledek fce opendir() která naopak název adresáře potřebuje koukni na příklady v manuálu, http://php.net/readdir |
||
Alda61 Profil * |
#3 · Zasláno: 24. 3. 2013, 13:00:04
Děkuji, ale po fixnuti zmizela hlaska 2, ale objevila se zase jina hlaska: Parse error: syntax error, unexpected T_WHILE in /var/www/kr1/xnezbeda/projekt1/private/login.php on line 8
<? $login=""; //uživatelské jméno $pass=""; //heslo if ($_GET['action']=='validate'){ $adresar = opendir('users') while ($soubor = readdir($adresar)){ if($soubor == $user) break; $login = $soubor; $file2 = fopen($soubor, "r"); if (!$file2) { die("</br>Nelze otevrit soubor se soubory uzivatele"); } $pass = fread($file2,filesize($soubor)); fclose($file2); } if(($_POST['user']==$login)&&($_POST['passwd']==$pass)){ session_start(); $_SESSION["user_is_logged"] = 1; header("Location: index.php"); exit; } else { header("Location: bad-login.html"); } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title></title> </head> <body> <form action="./login.php?action=validate" method="post"> <table> <tr><td><font color="white">Uživatel</font> </td><td><input type="text" name="user" /></td></tr> <tr><td><font color="white">Heslo</font> </td><td><input type="password" name="passwd" /></td></tr> <tr><td colspan="2"> <input type="submit" value="..:: Log-in ::.." /> <input type="button" value="..:: Sign-in ::.." onClick="window.location='register.php' "></td></tr> </table> </form> </body> </html> |
||
Virtus Profil |
#4 · Zasláno: 24. 3. 2013, 13:04:50
Začněte používat nějaký editor, třeba NetBeans, automaticky vám zvýrazní červneně chyby ( syntax error ), opět vám tam chybý středník, řádke 7.
|
||
Alda61 Profil * |
#5 · Zasláno: 24. 3. 2013, 13:09:00
Děkuji...
Používám PSPad Ale děkuji za radu, určitě vyzkouším |
||
Alda61 Profil * |
#6 · Zasláno: 24. 3. 2013, 14:26:36
Další chyba...
Warning: filesize() [function.filesize]: stat failed for alda61.usr in /var/www/kr1/xnezbeda/projekt1/private/login.php on line 17 Warning: fread() [function.fread]: Length parameter must be greater than 0 in /var/www/kr1/xnezbeda/projekt1/private/login.php on line 17 users/.users/.. Warning: Cannot modify header information - headers already sent by (output started at /var/www/kr1/xnezbeda/projekt1/private/login.php:12) in /var/www/kr1/xnezbeda/projekt1/private/login.php on line 26 <? $login=""; //uživatelské jméno $pass=""; //heslo if ($_GET['action']=='validate'){ $adresar = opendir('users'); while ($soubor = readdir($adresar)){ if($soubor == $user) break; $login = $soubor; $souborp = "users/".$soubor; echo $souborp; $file2 = fopen($souborp, "r"); if (!$file2) { die("</br>Nelze otevrit soubor se soubory uzivatele"); } $pass = fread($file2,filesize($soubor)); fclose($file2); } if(($_POST['user']==$login)&&($_POST['passwd']==$pass)){ session_start(); $_SESSION["user_is_logged"] = 1; header("Location: index.php"); exit; } else { header("Location: bad-login.html"); } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title></title> </head> <body> <form action="./login.php?action=validate" method="post"> <table> <tr><td><font color="white">Uživatel</font> </td><td><input type="text" name="user" /></td></tr> <tr><td><font color="white">Heslo</font> </td><td><input type="password" name="passwd" /></td></tr> <tr><td colspan="2"> <input type="submit" value="..:: Log-in ::.." /> <input type="button" value="..:: Sign-in ::.." onClick="window.location='register.php' "></td></tr> </table> </form> </body> </html> |
||
Tori Profil |
#7 · Zasláno: 24. 3. 2013, 16:24:23
Co to má prosím vás dělat? Na ř.9 porovnáváte s neexistující (= v ukázce kódu není) proměnnou
$user . Pokud by i náhodou byla ta podmínka někdy splněna, zůstane vám ve $file2 otevřený soubor z předchozí iterace (tzn. asi jiného uživatele). Nestačilo by prostě něco takového (jen tipuju):if ($_GET['action']=='validate'){ $login = basename($user); // nebo $login místo $user ??? $souborp = 'users/'.$login; if (!file_exists($souborp) || !is_readable($souborp)) die("</br>Nelze otevrit soubor se soubory uzivatele"); $pass = file_get_contents($souborp); } if($_POST['user'] == $login && $_POST['passwd'] == $pass) { // .. atd. |
||
Časová prodleva: 11 let
|
0