Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak przypisać wartosć cookie do zmiennej
Forum PHP.pl > Forum > Przedszkole
-krzych-
  1. <?
  2. // Sprawdzamy czy cookie istnieje.
  3.  
  4. $USERID = $HTTP_COOKIE_VARS["USERID"];
  5.  
  6. // Jeżeli cookie nie istnieje to przyznajemy klientowi nowy numer id
  7. if (!isset($USERID)) 
  8. {
  9.  
  10. $string = crypt(rand());
  11. $uid = md5($string);
  12.  
  13. // Tworzymy cookie o nazwie USERID w którym będziemy przechowywać identyfikator i 
  14.  
  15. // witamy nowego gościa:)
  16. setcookie("USERID", "$uid", time()+604800);
  17. echo "Jesteś na mojej stronie pierwszy raz!";
  18.  
  19. }
  20. echo "twój identyfikator to: " ;
  21. ?>

chciałbym żeby w miejscu "twój identyfikator to:" wyświetlał się identyfikator pobrany z cookie, i mam pytanie w jaki sposób mogę przypisać go do zmiennej
gox
no w $uid go masz chyba co nie?
gox
a po odswiezeniu bedzie dostepny w superglobalnej $_COOKIE
-krzych-
  1. <?
  2. // Sprawdzamy czy cookie istnieje.
  3.  
  4. $USERID = $HTTP_COOKIE_VARS["USERID"];
  5.  
  6. // Jeżeli cookie nie istnieje to przyznajemy klientowi nowy numer id
  7. if (!isset($USERID)) 
  8. {
  9.  
  10. $string = crypt(rand());
  11. $uid = md5($string);
  12.  
  13. // Tworzymy cookie o nazwie USERID w którym będziemy przechowywać identyfikator i 
  14.  
  15. // witamy nowego gościa:)
  16. setcookie("USERID", "$uid", time()+604800);
  17. echo "Jesteś na mojej stronie pierwszy raz!";
  18.  
  19. }
  20. echo "twój identyfikator to: ",$uid ;
  21. ?>

------------------------------------------------------------
dodałem ten $uid ale nie wyświetla on żadnej wartości
gox
  1. <?php
  2. $uid = $_COOKIE_['USERID'];
  3. if (empty($uid)) {
  4. $uid = md5(uniqid());
  5. setcookie('USERID', $uid, time()+604800);
  6. echo 'Jesteś na mojej stronie pierwszy raz!';
  7. }
  8. echo "twój identyfikator to: $uid";
  9. ?>


Jesteœ na mojej stronie pierwszy raz!twój identyfikator to: 0d815ba86cd2922f0e9654f244e70eeb
gox
Czekaj, zle Ci napisalem, ten kod dziala:

  1. <?php
  2. $uid = $_COOKIE['USERID'];
  3. if ($uid == NULL) {
  4. $uid = md5(uniqid());
  5. setcookie('USERID', $uid, time()+604800);
  6. echo 'Jesteś na mojej stronie pierwszy raz!<br />';
  7. }
  8. echo "twój identyfikator to: $uid";
  9. ?>
-krzych-
Dzięki że sie staracie ale twój skrypt powoduje że użytkownik za każdym razem dostaje inny identyfikator

a mnie chodzi o to żeby miał taki sam dopóki sam nie usunie cookie, a następnie żeby go przypisać do zmiennej
ten mój skrypt właśnie tak robi sprawdza czy użytkownik ma ciastko z jakimkolwiek numerem id, a jeśli go nie ma to tworzy nowy unikatowy id.
następnie chciałbym go odczytać i przesłać do formularza tak żeby można było na podstawie tego unikatowego numeru zidentyfikować użytkownika
właśnie dlatego chce go odczytać z ciastka i przypisać do zmiennej
-krzych-
Oops!!!

najpierw użyłem twój skrypt jako nowy i nie działał dopiero później go wkleiłem pod mój

i działa exclamation.gif!!!
WIELKIE DZIEKI
gox
nie za ma co ;P
-krzych-
Hmm myślałem ze już sprawa jest załatwiona, ale tak nie jest

Twój skrypt działa za pomocą niego jest tworzony unikatowy i nie zmienny id, ale do każdej podstrony nadawany jest nowy.

zatem jeśli osoba odwiedzi pięć stron to otrzyma 5 nowych id (oczywiście od tej pory każdy z pięciu będzie niezmienny)

Więc mam prośbę abyś zmodyfikował skrypt tak aby niezależnie od ilości stron odczytywał id z cookie lub lub jesli go nie znajdzie tworzył nowy ale jeden dla wszystkich
stron.

Mimo wszystko i tak dzięki, postaram sam znaleźć rozwiązanie
-krzych-
exclamation.gif!! pisząc strony miałem na myśli podstrony
gox
hmm, a zobacz jak bedzie kiedy path '/' ustawisz.
gox
path to taki parametr wywolania funkcji cookie(), domain tez nie zaszkodzi.
-krzych-
php to ja się uczę się od 3 dni wiec jeśli
byś mógł wkleić gotowca to byłbym wdzięczny
gox
Bez przesadyzmu.... ja sie ucze 3 miesiace i co tongue.gif

http://pl.php.net/manual/pl/function.setcookie.php

bool setcookie ( string $name [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly ]]]]]] )

czwarty parametr, po expire... i piaty to domain.
-krzych-
uff
udało się

stworzyłem plik z twoim skryptem i nazwałem go ciastko.php

następnie do każdej z podstron w nagłówku napisałem

<?php include "ciastko.php";?>

Narazie działa, mam tylko nadzieje że zaraz znowu nie pojawi się jakiś problem bo męcze się z tym od 08 rano
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.