Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript] Jak sprawdzić czy włączone JS, cookies?
Forum PHP.pl > Forum > Przedszkole
obelix94
Witam!

Chciałbym stworzyć skrypt:
- który sprawdza włączenie js
- który sprawdza włączenie cookies
- który sprawdza przeglądarkę
- blokuje dostęp do strony (gdy js, i cookies wył)
- wyświetla faq jak włączyć cookies/js w danej przeglądarce

Myślę że temat dość prosty i niezbyt wymagajacy. Chciałbym to zrobić w php, ponieważ PHP umiem, a o gotowca w js nie będę prosił.

Liczę na pomoc!
Fifi209
Cytat(obelix94 @ 19.03.2009, 17:56:55 ) *
Witam!

Chciałbym stworzyć skrypt:
- który sprawdza włączenie js
- który sprawdza włączenie cookies
- który sprawdza przeglądarkę
- blokuje dostęp do strony (gdy js, i cookies wył)
- wyświetla faq jak włączyć cookies/js w danej przeglądarce

Myślę że temat dość prosty i niezbyt wymagajacy. Chciałbym to zrobić w php, ponieważ PHP umiem, a o gotowca w js nie będę prosił.

Liczę na pomoc!


1.

W znaczniku:
<noscript>
</noscript>

Ja tam umieszczałem znacznik meta z przekierowaniem do strony innej

2. W javascript/php robisz tak:
zapisujesz ciasteczko np. 'test' o byle jakiej wartości może być nawet true i czasie time() + 10 <- dla php

3. Dla java script:
Kod
navigator.appName


4.
Do znacznika <noscript> wrzuć meta z przekierowaniem
np.
<META HTTP-EQUIV=Refresh CONTENT="0; URL=brak_js.html">

A jak brak cookie, ja bym na początku ładowania strony zapisał w javascript cookie i je odczytał i w razie czego później:
Kod
document.location = adres;

// lub

window.location = adres;


5. W punkcie 4 odeślij do strony z faq i po problemie ;p
(ja też za js nie przepadam ale masz gotowca w necie ;d jak coś to pisz na pw)
obelix94
Jak mówisz że jest gotowiec w necie to poszukam dokładniej. Tutaj kolega fifi napisałe wyogólnikowany kod dla js, a ma ktoś może takie coś ale np. w php? Czy istnieją tam podobne funkcje?
phpion
PHP (w przeciwieństwie do JS) działa po stronie serwera, a nie klienta. No ale to już powinieneś wiedzieć, "ponieważ PHP umiesz". Tyle na ten temat.
obelix94
Dlatego js nie sprawdzę z poziomu PHP. Znalazłem funkcję w php sprawdzania przeglądarki i zrobiłem funckję do sprawdzenia cookie.

1. COOKIES
Zapisujemy cookie i sprawdzamy czy ono jest. Jak nie ma odsyłamy do strony info.php?alert=brakcookies, sprawdzamy przeglądarkę i wyswietlamy odpowiednie faq jak włączyć obsługę cookie.

2. JAVASCRIPT
Jedyne rozwiązanie dla js, to przy <noscript> przekierować na info.php?alert=brakjs i za pomocą php odpowiednio to odebrać oraz sprawdzic przeglądarkę i wyświetlić odpowiednie faq jak włączyć js.

3. UŁATWIENIE
Zamykamy wszystko w funkcji i dajemy na początek każdej strony: sprawdz_uzyt('js'); / sprawdz_uzyt('cookie); / sprawdz_uzyt('all'); zaleznie od tego co mamy na danej podstronie.

Kodu nie podam bo jeszcze ktoś go później znajdzie i będzie miał gotowca.

Dziękuję za pomoc.
kamil4u
Ach - a nie łatwiej tak:
Kod
if(document.cookie) alert("tak"); else alert("nie");
zamiast zapisywanie jakiś ciasteczek w PHP czy Bóg wie co?
thomson89
A jakbym dał:
  1. <noscript>
  2.   <?php $z = "nie" ?>
  3. </noscript>
  4. <?php $z = 'tak' ?>


To czy kod php wykona się gdy noscript?
kamil4u
Sprawdź - w końcu to około min roboty smile.gif
Fifi209
Nie, gdyż php działa po stronie serwera i wysyła gotowy wynik do użytkownika. winksmiley.jpg Poza tym takie łączenie html z php jest nieeleganckie, nieestetyczne i w ogóle jest do niczego. ;d
thomson89
No nie działa. Będę kombinował z tym bo mnie zaciekawiło...

  1. <?php
  2. setcookie('test', 'tak', time()+10000);
  3. //SPRAWDZANIE PRZEGLĄDARKI
  4. $przeglad = $_SERVER['HTTP_USER_AGENT'];
  5.  
  6. if(substr_count($przeglad,"pera")!=0)
  7.   { $przegladarka = "Opera"; }
  8. else if(substr_count($przeglad,"MSIE")!=0)
  9.   { $przegladarka = "Internet Explorer"; }
  10. else if(substr_count($przeglad,"etscape6")!=0)
  11.   { $przegladarka = "Netscape 6"; }
  12. else if(substr_count($przeglad,"rv:1.")!=0)
  13.   { $przegladarka = "Mozilla 1.x"; }
  14. else if(substr_count($przeglad,"4.7")!=0)
  15.   { $przegladarka = "Netscape 4.7x"; }
  16. else
  17.   { $przegladarka = "inna"; }
  18.  
  19. //sprawdzenie cookies
  20.  
  21. if($_COOKIE['test'] != 'tak'){
  22.    $ciasteczka = "nie ";
  23. }
  24. else $ciasteczka = '';
  25.  
  26. echo "Twoja przegladarka to ".$przegladarka."<br>";
  27. echo "Twoja przegladarka ".$ciasteczka."obsługuje cookies!</br>"
  28. ?>
  29. <noscript>
  30.    Twoja przegladarka nie obsługuje javascript!
  31. </noscript>
  32. <script type=text/javascript>
  33.    document.write('Twoja przegladarka obsluguje javascript');
  34. </script>


Pochwalę się moim kilku minutowym dziełem "sprawdź mnie!".
I na dodatek wszystko działa, tzn. gdy wyłącze js to wyświetla się Twoja przegladarka obsluguje javascript, a jak wyłacze cookies wyswietla się Twoja przegladarka nie obsługuje cookies!

Jeszcze myślałem nad tym aby dać:
  1. $szukaj = "
  2. ?>
  3. <noscript>
  4. Twoja przegladarka nie obsługuje javascript!
  5. </noscript>
  6. <script type=text/javascript>
  7. document.write('Twoja przegladarka obsluguje javascript');
  8. </script>
  9. <?php
  10. ";


Ale wtedy JS nie działa. A zna ktoś moze podobny sposób? Bo o ile COOKIE i to wszystko mozna na poziomie php to dlaczego sprawdzenia JS nie można?

Potem jakbym miał to w zmiennej mogę dać strstr i poszukać nie.
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.