Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mam problemik ze skryptem z cookie
Forum PHP.pl > Forum > PHP
marcindvd
Witam
Mam skrypt wszystko w nim dobrze dzialala lecz jesli wrzuce funkcje setcookie to wyskakuje error

Warning: Cannot modify header information - headers already sent by (output started at c:usrapachehttpdhtmlmarcindvd sqlindex.php:4) in c:usrapachehttpdhtmlmarcindvd sqlstronaloginindex.php on line 21

[php:1:ddfd867179]<?php
$pass = $_POST["haslo"];
$user = $_POST["user"];

if (isset($haslo)) {

function checkPass($pass, $user)
{
if(!$fd = fopen("strona/login/pass.txt", "r")) return false;
while (!feof ($fd))
{
$line=trim(fgets($fd));
if(($pos = strpos($line, ":"))===false) continue;

$tempUser = substr($line, 0, $pos);
if($tempUser !=$user) continue;

$tempPass = substr($line, $pos + 1, strlen($line) - $pos);
if($tempPass != $pass) {return false;
} else {
setcookie('abc', 'T', time() + 2400);
return true;
}
}
fclose($fd);
return false;
}
if(!checkPass($pass, $user))
{
print("<center><b><br><br><br><br><font color=red>BŁĘDNY LOGIN LUB HASŁO</font></b>");
} else {
print "Good<br><br>";
print "<a href=admin/index.php target=_blank>aaaa</a>";
}
}
?>

<center><br><br><b>TYLKO DLA ZAREJESTROWANYCH <br>UZYTKOWNIKÓW</b><br>
<form action="index.php" method="POST">
<table class=srodek>
<tr><td><input type="hidden" name="info1" value="strona/login/index.php">
<tr><td>Login</td><td><input type="text" name="user"></td></tr>
<tr><td>Hasło:</td><td><input type="password" name="haslo"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value=" Zaloguj "></td></tr></form></table>
?>[/php:1:ddfd867179]


jak dla mnie wszystko jest w porzadku ale jednak cos jest nie tak smile.gif))

Z góry dziekuje za pomoc
czachor
Przed wysłaniem ciastka (linia 21) nie możesz wysłać żadnego kodu html do przeglądarki. Najpierw ciacho, potem html.
Albo zainteresuj się funkcją [manual:52d2798638]ob_start[/manual:52d2798638] i [manual:52d2798638]ob_end_flush[/manual:52d2798638].
marcindvd
To jak mam tak konkretniej zrobic aby skrypt mi sprawdzal poprawnosc danych i wysylal cookie z np. wartoscia true ?

Pozdrawiam
czachor
w pliku w którym inkludujesz ten kod co podałeś wstaw na początku [php:1:78d4350e5e]<?
ob_start();
?>[/php:1:78d4350e5e] i na końcu [php:1:78d4350e5e]<?
ob_end_flush();
?>[/php:1:78d4350e5e]
marcindvd
Witam
Czy dobrze zrozumialem ze tak:

[php:1:0365e1885a]<?php
ob_start();
?>

<center><br><br><b>TYLKO DLA ZAREJESTROWANYCH <br>UZYTKOWNIKÓW</b><br>
<form action="index.php" method="POST">
<table class=srodek>
<tr><td><input type="hidden" name="info1" value="strona/login/index.php">
<tr><td>Login</td><td><input type="text" name="user"></td></tr>
<tr><td>Hasło:</td><td><input type="password" name="haslo"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value=" Zaloguj "></td></tr></form></table>

<?php
$pass = $_POST["haslo"];
$user = $_POST["user"];

if (isset($haslo)) {

function checkPass($pass, $user)
{
if(!$fd = fopen("strona/login/pass.txt", "r")) return false;
while (!feof ($fd))
{
$line=trim(fgets($fd));
if(($pos = strpos($line, ":"))===false) continue;

$tempUser = substr($line, 0, $pos);
if($tempUser !=$user) continue;

$tempPass = substr($line, $pos + 1, strlen($line) - $pos);
if($tempPass != $pass) {return false;
} else {
return true;
}
}
fclose($fd);
return false;
}
if(!checkPass($pass, $user))
{
print("<center><b><br><br><br><br><font color=red>BŁĘDNY LOGIN LUB HASŁO</font></b>");
} else {
setcookie('abc', 'T', time() + 2400);
print "Good<br><br>";
print "<a href=admin/a.php target=_blank>aaaa</a>";
}
}

ob_end_flush();

?>[/php:1:0365e1885a]

Bo mi to nadal nie dziala ten sam blad
Kinool
najlepiej jak dasz to na samym poczatku w index.php czyli strony w ktorej inkludujesz.

i daj to na samym poczatku przed <HTML>
czachor
Wstaw to, co podałem wyżej, w pliku c:usrapachehttpdhtmlmarcindvd sqlindex.php (przynajmniej tak wygląda z komunikatu o błędzie). W tym drugim pliku nie wstawiaj tego.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.