| 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: 13 let
|
|||
0