ďťż

[php] setcookie - dlaczego nie dziala?

       

Podstrony


telcocafe

Witam,
Mam serwis www.stupidvideo.pl i chce aby dla niezalogowanych gosci po 15 wyswietleniach filmika pojawialo sie przekierowanie do informacji ze musza sie zalogowac. W indexie na samej gorze dalem to:
if($_GET[page] == 'display') { $logged = check_logged(); if(!($logged)) { if(!($_COOKIE['user_licznik'])) { setcookie ("user_licznik", 1, time()+604800); } if($_COOKIE['user_licznik']<15) { setcookie ("user_licznik", $_COOKIE['user_licznik']++, time()+604800); } if($_COOKIE['user_licznik']==15) { header("Location: http://www.stupidvideo.pl/index.php?page=licznik"); } } }

Display to modul wyswietlania filmika. Z tym skryptem nic sie nie dzieje zadne cookie sie nie dodaje!? W czym tkwi blad??

PS.
Mam jeszcze prosbe o sprawdzenie tego zapytania:
SELECT id,tytul,miniaturka MATCH (tytul) AGAINST ('".$fraza."') AS score FROM stuff WHERE MATCH (tytul) AGAINST ('".$fraza."') ORDER BY score LIMIT 0,30



Zamiast tego:
if(!($_COOKIE['user_licznik']))
Powinno być chyba:
if(isset($_COOKIE['user_licznik']))

Być może wysyłasz cookie jeśli już coś wysłałeś do przeglądarki. Cookies, jak i nagłówki należy wysłać przed jakąkolwiek treścią.

Po 1 tak sie nie wysyla zmiennej :
if($_GET[page] == 'display')

tylko tak:
if($_GET['page'] == 'display')

Po 2.
if(!($logged))

ma byc :
if(!$logged)

ale wedlug mnie i tak powinno byc inaczej (isset)

Po 3.
... Dam sobie spokój z wypisywaniem bledow tylko napisze jak ten skrypt ma wygladac ...

if($_GET['page'] == 'display') { $logged = check_logged(); if(!$logged) { if(isset($_COOKIE['user_licznik'])) { $_COOKIE['user_licznik'] = 0; } $user_licznik = $_COOKIE['user_licznik']++; setcookie ("user_licznik", $user_licznik, time()+604800); $_COOKIE['user_licznik'] = $user_licznik; if($_COOKIE['user_licznik'] < 15) { setcookie ("user_licznik", $user_licznik, time()+604800); $_COOKIE['user_licznik'] = $user_licznik; } if($_COOKIE['user_licznik']==15) { header("Location: [url="http://www.stupidvideo.pl/index.php?page=licznik");"]http://www.stupidvideo.pl/index. php?page=licznik");[/url] } } }

Jak nie dziala, to odslon funkcje check_logged(); //tj Pokaz :)
Użytkownik sokol edytował ten post 05 maj 2007, 19:25


OMG. <_< Widać, że nikt z Was nie potrafi korzystać z setcookie
Odsyłam do manuala i proponuję zamknąć temat.

A teraz sprostowanie:
Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);. - na logike. Jakim cudem, skrypt wykonywany po stronie serwera ma zapisać wartości w przeglądarce bez wysyłania nagłówków, coooo ?
Użytkownik DJ_ProG edytował ten post 05 maj 2007, 19:33
a co to :
$_COOKIE['user_licznik'] = $user_licznik;

Hmm, nie dziala ;( uzylem twojego kodu sokol ale nadal niedziala, oto funkcja check_logged:
function check_logged($logging = false, $permissions = 1) { global $_POST, $_SESSION, $md5_prefix; if ((!$logging && !isset($_SESSION['login'], $_SESSION['pass'])) || ($logging && !isset($_POST['login'], $_POST['pass']))) { return false; } $res = mysql_query('select count(*) from `fbw_useradmin` where `login`=\'' . ($logging ? mysql_value($_POST['login']) : $_SESSION['login']) . '\' and `pass`=\'' . ($logging ? md5($md5_prefix . $_POST['pass']) : $_SESSION['pass']) . '\' and `permissions` >= \'' . $permissions . '\''); $row = mysql_fetch_assoc($res); if ($row['count(*)'] != 0) { return true; } return false; }
Ta funkcje uzywam tez gdzie indziej i dziala dobrze.

Mam serwer na superhost ale na innym skrypcie dziala wszystko dobrze wiec nie wiem w czym problem.
Użytkownik ebooki24 edytował ten post 05 maj 2007, 20:09
setcookie ("user_licznik", $user_licznik, time() + 604800, "/");

tak zobacz

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.