![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 18.08.2003 Skąd: Słońce Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam pewien problem, otoz mam problem z zapisaniem cookie. Korzystam z nastepujacego kodu: [php:1:6d91d37611]<?php setcookie("phpPCountVisited", "1", time()+3600*3); ?>[/php:1:6d91d37611] ... ktory teoretycznie powinien zapisac na komputerze klienta ciacho ze zdefiniowana informacja. Problem w tym, ze przy probie odczytania takiego ciastka: [php:1:6d91d37611]<?php echo ($phpPCountVisited); ?>[/php:1:6d91d37611] skrypt nie wyswietla nic, nawet zapisanej jedynki, przez co moj odporny na odswiezanie licznik odwiedzin nalicza mimo wszystko kazde odswiezenie strony. Chce zaznaczyc, iz skrypt testuje na serwerze Apache 2 z zainstalowanym php 4.3.2. Skrypt probuje sprawdzic po wpisaniu do internet explorera (wersja z windowsa 2003 enterprise, chyba 6.0) http://127.0.0.1/index.php . Nie probowalem tego na innych komputerach. Prosze o pomoc, gdzie wlasciwie moze tkwic problem? Z gory dziekuje. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 5.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Bo robisz to tak wysyłasz cokie a puźniej :
[php:1:9e30d99b32]<?php if($phpPCountVisited=="1"){ exit; //nie zalicza odwiedziny i kończy skrypt } else{ setcookie("phpPCountVisited", "1", time()+3600*3); $file=fopen("licznik.txt", "r"); $ile= fread ($file, 9999); fclose($file); $ile++; $file1=fopen("licznik.txt", "r+"); fputs($file, $ile); fclose($file1); echo"Strone odwiedziło już $ile osób/osoby"; } ob_end_flush(); ?>[/php:1:9e30d99b32] Powino działać i pamiętaj że cookie wysyłąmy zawsze przed nagłówkiem więc uzyj bufrowania wyjścia czyli na samym początku strony daj to [php:1:9e30d99b32]<?php ob_start(); ?>[/php:1:9e30d99b32] a na końcu skryptu dajesz to [php:1:9e30d99b32]<?php ob_end_flush(); ?>[/php:1:9e30d99b32] ale ja już to zrobiłęm za ciebie! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 18.08.2003 Skąd: Słońce Ostrzeżenie: (0%) ![]() ![]() |
Hmm, mimo wszystko nie dziala. To co napisales fakt - pomogloby mi - ale juz nie raz pisalem ten skrypt i za kazdym razem dzialal, wiec mysle ze jest tutaj wina konfiguracji servera. Robie to dokladnie tak:
Przed znacznikiem <head> wstawiam: [php:1:232214a278]<?php setcookie("phpPCountVisited", "1", time()+3600*3); ?>[/php:1:232214a278] a potem w zrodle pliku, do wyswietlenia ilosci odwiedzin korzystam z tego: [php:1:232214a278]<?php if(file_exists("data/data_statistics/data_statistics_counter_persons.dat")) { $phpPCountFile=fopen("data/data_statistics/data_statistics_counter_persons.dat", "r"); flock($phpPCountFile, 1); $phpPCountValue=fgets($phpPCountFile, 100); flock($phpPCountFile, 3); fclose($phpPCountFile); if($phpPCountVisited!="1") { $phpPCountValue++; } } else { $phpPCountValue=1; } $phpPCountFile=fopen("data/data_statistics/data_statistics_counter_persons.dat", "w"); flock($phpPCountFile, 2); fwrite($phpPCountFile, $phpPCountValue); flock($phpPCountFile, 3); fclose($phpPCountFile); echo($phpPCountValue); ?>[/php:1:232214a278] Wiec wydaje mi sie, ze robie wszystko dobrze. A jednak... nie dziala... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ciastka odczytuje sie tak:
[php:1:260e2040c7]<?php $_COOKIE["nazwa"]; // lub w starszych werjsach $HTTP_COOKIE_VARS["nazwa"]; ?>[/php:1:260e2040c7] -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 18.08.2003 Skąd: Słońce Ostrzeżenie: (0%) ![]() ![]() |
Ehh, a takie to proste
![]() ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chcesz po staremu ustaw w php.ini RegisterGlobals na On - ale nie polecam ;]
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.06.2025 - 08:54 |