Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Czy użytkownik ma włączone cookies
Szunaj85
post 11.09.2008, 17:17:23
Post #1





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


W jaki sposób przy pomocy PHP sprawdzić czy użytkownik ma włączone cookies w swojej przeglądarce?
Chodzi mi tu o prosty warunek.
Jeżeli użytkownik ma włączone cookies wykonaj tą czynność w przeciwnym wypadku wykonaj inną czynność.


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
sowiq
post 11.09.2008, 17:37:16
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


http://www.webdeveloper.com/forum/archive/...hp/t-67426.html
Go to the top of the page
+Quote Post
Szunaj85
post 11.09.2008, 18:10:32
Post #3





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


A mógłbyś być bardziej precyzyjny i wrzucić odpowiedni kod na forum bo próbuje ale coś nie kula. sadsmiley02.gif


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
simple programme...
post 11.09.2008, 18:12:15
Post #4





Grupa: Zarejestrowani
Postów: 74
Pomógł: 5
Dołączył: 17.07.2007
Skąd: Krakow

Ostrzeżenie: (0%)
-----


To jest ten kod z forum:
Kod
<?PHP
setcookie("cookies","yes",time() +"3600");
$js = 0;
$cookies = 0;
if (isset($_GET["js"])) {
$js = 1;
}
if (isset($_COOKIE["cookies"])) {
$cookies = 1;
}
if ($cookies == 0 || $js == 0) { #in english: if $cookies equals zero or $js equals 0
header("Location:http://www.livejournal.com");
}
else { #if js and cookies are enabled
header("Location:http://www.yahoo.fr");

}
?>
<html>
<head>
<script type="text/javascript">
if (!window.location.search.substr(1)) {
window.location.href = "test.php?js=yes"; //set test.php to the name of this page...
}
</script>
</head>
<body>
</body>
</html>


--------------------
Pozdrawiam
Go to the top of the page
+Quote Post
--Jarek--
post 11.09.2008, 18:35:36
Post #5





Goście







Ten kod nie wykrywa czy ktoś ma włączone cookies czy nie.
Go to the top of the page
+Quote Post
Pilsener
post 11.09.2008, 22:16:57
Post #6





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Sprawa jest banalna:
http://pl2.php.net/manual/pl/function.setcookie.php
Cytat
Zwracane wartości
If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.
- prawie każda funkcja, poza tym że coś robi, zwraca TRUE albo FALSE - nic prostszego, jak to wykorzystać:

  1. <?php
  2. $value = 'string';
  3. $godzina = time()+3600;
  4. if(setcookie("TestCookie", $value, $godzina)){
  5.   echo 'ciacho dobre';
  6.   }else{
  7.   echo 'ciacho niedobre';
  8. }
  9. ?>
Go to the top of the page
+Quote Post
Szunaj85
post 12.09.2008, 12:17:09
Post #7





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


Ciekawe podejście do sprawy Pilsener, ale czy w ogóle sprawdzałeś czy to działa?
Testowałem twój skrypt oraz inny, który znalazłem w internecie, ale podobny do twojego.
Jednak bez względu na to czy miałem włączone cookies w swojej przeglądarce czy nie (pisząc twoim językiem) wyświetlał "ciacho niedobre". Identycznie było przy tym drugim skrypcie.
Nie wiem czy to przypadek czy wskazówka, ale w obu skryptach wyświetlany był ten tekst, który był po "else".
  1. <?php
  2. //skrypt
  3. //warunek if
  4. {
  5. echo 'ciacho dobre';
  6. }else{
  7. //wyświetla tekst znajdujący się poniżej
  8. echo 'ciacho niedobre';
  9. }
  10. ?>



--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
mike
post 12.09.2008, 12:20:50
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(Pilsener @ 11.09.2008, 23:16:57 ) *
Nie ma to jak rzucać linkiem do manuala nie wiedząc co jest w środku, co? tongue.gif
Cytat
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);.
Go to the top of the page
+Quote Post
sowiq
post 12.09.2008, 12:29:28
Post #9





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@Szunaj85,
PHP działa na serwerze, więc nie ma bezpośrednio możliwości 'zajrzeć' w ustawienia przeglądarki.

Jedyne wyjście to spróbować ustawić ciacho, przeładować stronę i sprawdzić czy ciastko jest widoczne. Możesz też posiłkować się JS, ale i tak wszystko sprowadza się do dwukrotnego wysłania zapytania do serwera.

[edit]
Pisane na szybko i z palca:
  1. <?php
  2. // ciacho.php
  3. if(!isset($_GET['set'])){
  4.    setcookie('test', '1', time() + 3600);
  5.    header("Locatio: ciacho.php?set");
  6. }
  7. else{
  8.    if(isset($_COOKIE['test']))
  9.        echo "OK";
  10.    else
  11.        echo "DUPA";
  12. }
  13. ?>


ps. powinno być Location:, ale forum nie przepuszcza.

Ten post edytował sowiq 12.09.2008, 12:35:21
Go to the top of the page
+Quote Post
Szunaj85
post 12.09.2008, 14:37:51
Post #10





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


Sowiq, Ogólnie skrypt działa. Trochę się jednak pokomplikowało i chciałbym zapytać jakie polecenie można wykorzystać do takiej sytuacji.
Jeżeli użytkownik ma włączone cookies nie rób nic w przeciwnym wypadku wykonaj czynność.


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
mike
post 12.09.2008, 14:40:02
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


No przecież potrafisz już sprawdzić czy ciastka są, prawda?
O co więc chodzi? Podstawy logiki są z tego co pamietam w pierwszej klasie liceum (czy tam teraz w gimnazjum, nie wiem).
Go to the top of the page
+Quote Post
sowiq
post 12.09.2008, 17:12:07
Post #12





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Szunaj85 @ 12.09.2008, 15:37:51 ) *
Jeżeli użytkownik ma włączone cookies nie rób nic w przeciwnym wypadku wykonaj czynność.

Może tak?
Kod
// ciacho.php
if(!isset($_GET['set'])){
   setcookie('test', '1', time() + 3600);
   header("Locatio: ciacho.php?set");
}
else{
    if(!isset($_COOKIE['test'])){
        czynnosc();
        echo "Czynność wykonana;)";
    }
}


Ten post edytował sowiq 12.09.2008, 17:13:02
Go to the top of the page
+Quote Post
Szunaj85
post 12.09.2008, 22:30:03
Post #13





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

Ostrzeżenie: (0%)
-----


Sowiq nie zupełnie o to mi chodziło, myślałem raczej o jakimś poleceniu. dry.gif
  1. <?php
  2. // ciacho.php
  3. if(!isset($_GET['set'])){
  4.    setcookie('test', '1', time() + 3600);
  5.    header("Locatio: ciacho.php?set");
  6. }
  7. else{
  8.    if(isset($_COOKIE['test']))
  9. // tutaj wstawić polecenie, które sprawi, że skrypt nic nie zrobi tylko przejdzie dalej
  10.    else
  11.        echo "DUPA";
  12. }
  13. ?>

I jeszcze jedno. Tak z ciekawości do czego służy lub co daje "?set"? tongue.gif


--------------------
Jeśli Ci pomogłem wciśnij Jeśli mi pomożesz wcisnę
Go to the top of the page
+Quote Post
sowiq
post 14.09.2008, 18:32:06
Post #14





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Bez komentarza... blinksmiley.gif
Go to the top of the page
+Quote Post
wookieb
post 14.09.2008, 19:00:59
Post #15





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jakie polecenia?? Człowieku... Ipconfig itd?

Ten post edytował wookieb 14.09.2008, 19:01:15


--------------------
Go to the top of the page
+Quote Post
sowiq
post 14.09.2008, 19:49:21
Post #16





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


[ironia]
Znalazłem - chyba o to Ci chodziło winksmiley.jpg

  1. <?php
  2. // ciacho.php
  3. if(!isset($_GET['set'])){
  4.    setcookie('test', '1', time() + 3600);
  5.    header("Locatio: ciacho.php?set");
  6. }
  7. else{
  8.    if(isset($_COOKIE['test'])){
  9.        // nie rób nic
  10.    }
  11.    else
  12.        echo "DUPA";
  13. }
  14. ?>

[/ironia]

biggrin.gif
Go to the top of the page
+Quote Post
Black-Berry
post 14.09.2008, 19:57:35
Post #17





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


haha.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.08.2025 - 02:42