Cookies zapisywane jest w pliku login.php i dobrze jest odczytywane. Natomiast w pliku index.php nie chce odczytać ciastka (zawartość pusta). Nie kasuje się ono, ponieważ po powróceniu do login.php zawartość wyświetla się. Obydwa pliki są w tym samym katalogu.
Poniżej dam potrzebne fragmenty plików...
INDEX.php:
[php:1:08f9e69b33]<?php
if($log=="plik3man")
{
if($HTTP_COOKIE_VARS['Plik3Man'.$security] == $login.$pass.$security) {
echo('');
} else {
echo('
<script type="text/javascript">location="login.php?x='.$security.'"</script>
');
} }
if($log=="system")
{
if (!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="Wpisz login i hasło, aby dostać się do administracji."');
header('HTTP/1.0 401 Unauthorized');
echo 'Musisz się zalogować.';
exit;
} }
else {
echo('BŁĄD!');
}
if($HTTP_COOKIE_VARS["Plik3Man".$security] != $login.$pass.$security)
{
echo('t');
}
echo($HTTP_COOKIE_VARS['Plik3Man'.$security]);
?>[/php:1:08f9e69b33]
LOGIN.php:
[php:1:08f9e69b33]<?php
if($_GET['logint']=="tak")
{
setcookie("Plik3Man".$security,$login.$pass.$security,time()+5000000);
if($HTTP_COOKIE_VARS['Plik3Man'.$security] == $login.$pass.$security)
{
echo('Zalogowałeś się pomyślnie.');
}
else {
echo('Nieprawidłowy login lub hasło!');
} }
?>[/php:1:08f9e69b33]
[php:1:08f9e69b33]<?php
if($_GET['logint']=="tak")
{
echo('<meta http-equiv="refresh" content="3; URL=index.php" />');
}
echo($_COOKIE['Plik3Man'.$security]);
?>[/php:1:08f9e69b33]
[php:1:08f9e69b33]<?php
if($x==$security)
{
echo('
<div align="center">$Plik3Man - logowanie</div>
<form method="post" action="login.php?logint=tak">
<table cellspacing="1" cellpadding="3" style="border: 1px solid green">
<tbody>
<tr>
<td colspan="2" class="dth">
<b>Logowanie do $Plik3Man</b>
</td>
</tr>
<tr>
<td class="dt1">
<b>Login:</b>
</td>
<td class="dt2" width="200">
<input type="text" name="login" />
</td>
</tr>
<tr>
<td width="400" class="dt1">
<b>Hasło:</b>
</td>
<td class="dt2" width="200">
<input type="password" name="pass" />
</td>
</tr>
<tr>
<td colspan="2" class="dth">
<input type="submit" value="Dalej >>>" /></div>
</td>
</tr>
</tbody>
</table>
</form>
'); }
else {
echo('<span style="color: red">Policja? Tak. Mamy tu hackera, który próbuje się włamać na nasz serwer! (...)
<br /></span>PRÓBA WŁAMANIA!!!');
}
?>[/php:1:08f9e69b33]
Co jest źle, że tak się dzieje?
Liko
25.05.2004, 21:33:18
Zrób ten kod bardziej czytelny, bo teraz trudno się tam czegokolwiek dopatrzeć. !!
poprawiłem
O co tu chodzi? Wiecie? Jaki jest błąd?
matys
26.05.2004, 14:01:32
Jak dla mnie nie jest to jeszce najlepiej poprawione, bo nadal trudno sie rozczytac:/
OK - już lepiej się nie da... Więc piszcie szybciej... co mam zrobić, żeby w INDEX.php cookie było odczytywane?
Liko
26.05.2004, 18:16:33
eeee :/ Zacząłem czytać ten kod i wogóle go nie skapowałem pojawiają się tam zmienne, które nigdzie nie są zdeklarowane i nie mają wartości. Np. zmienne: $security, $log, $Plik3Man Może nas oświecisz co chciałeś uzyskać bo z kodu tego nie wyczytam. Pewnie przyczyną jest register globals i tablice SuperGlobalne. Do odczytywania ciastek używaj: $_COOKIE, do odczytywania pól formularza wysłanych metodą "POST" używaj tablic: $_POST. Do odczytywania zmiennych w linkach to przez: $_GET.
Zmienne typu $security, $log są w specjalnym pliku - sets.db.
Czy da coś, jak ustawię adres "0", a domenę, jaka istnieje?
OK, nie wiem, co było źle, ale jest OK.
Ale jest problem. Tak jak pisało w manualu, jest niespodzianka - cookie dopiero widać jako skasowane lub dodane po odświeżeniu strony.
Jak to ominąć?
netzah
27.05.2004, 22:46:15
np. poprzez wymuszenie odswierzenia strony przez header() albo "recznie" wpiszanie wartosci do $_COOKIE :-)
BŁĘDY 1:
Warning: fopen(cfg/sets.db): failed to open stream: Permission denied in /home/piwko/users/humor.pl/m/mp1/data/pliki/konfigurator.php on line 42
Warning: flock(): supplied argument is not a valid stream resource in /home/piwko/users/humor.pl/m/mp1/data/pliki/konfigurator.php on line 42
Warning: fwrite(): supplied argument is not a valid stream resource in /home/piwko/users/humor.pl/m/mp1/data/pliki/konfigurator.php on line 42
Warning: flock(): supplied argument is not a valid stream resource in /home/piwko/users/humor.pl/m/mp1/data/pliki/konfigurator.php on line 42
Warning: fclose(): supplied argument is not a valid stream resource in /home/piwko/users/humor.pl/m/mp1/data/pliki/konfigurator.php on line 42
Wystąpił błąd. Konfiguracja nie została zapisana. Spróbuj powtórzyć poprzedni poziom. Sprawdź, czy atrybuty katalogów i plików są poprawne.
KATALOG CFG MA CHMOD 766. DLACZEGO TAKIE SĄ BŁĘDY?
BŁĘDY 2...
Występowały błedy, że operation not permitted.
DLACZEGO tak się dzieje?
netzah
29.05.2004, 16:45:50
Chodzi o prawa do pliku sets.db a nie katalogu.
Sets.db jest wtedy właśnie tworzony. Powinienem użyć narzędzia TOUCH?
Może to są po prostu widzimisie serwera Piwko.pl? I tak nie może być konfliktów z serwerami.
Jak ten problem zostanie rozwiązany, będzie następny - błąd w Konfigurator.php na serwerze Lycos. Nie widzę tam żadnego błędu, ale może...
netzah
29.05.2004, 18:02:51
a tworzysz plik poprzez fopen('sets.db', 'w+') ?
[php:1:ab9fdfa03b]<?php
$plik=fopen("cfg/sets.db","w"); flock($plik,2); fwrite($plik,$vCfg); flock($plik,3); fclose($plik);
if(file_exists("cfg/sets.db")) { chmod("cfg/sets.db", 0666);
?>[/php:1:ab9fdfa03b]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.