Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]wyłączony javascript
Forum PHP.pl > Forum > Przedszkole
sweter
Jak sprawdzić czy użytkownik ma wyłączony js tylko za pomocą PHP?

Szukałem w googlach, ale znalazłem tylko jak sprawdzić za pomocą skryptów js.
Fifi209
Masz znaczniki noscript smile.gif w html.
sweter
Ale mi chodzi o php
TrevorGryffits
W samym php nie dasz rady. Ale możesz zaprząc do tego PHP + JS / AJAX
iwosz
Cytat
Masz znaczniki noscript w html.


...i mozesz go wykorzystac np ustawiajac zmienna js=0 i przesylajac dalej do PHP, w tej sposob w php bedziesz mial info ze JS jest wylaczony, pamietaj ze JS dziala po stronie klienta(przrgladarki) a PHP po stronie servera i nie maja ze soba bezposredniej komunikacji.
Fifi209
Cytat(iwosz @ 30.07.2009, 14:36:19 ) *
...i mozesz go wykorzystac np ustawiajac zmienna js=0 i przesylajac dalej do PHP, w tej sposob w php bedziesz mial info ze JS jest wylaczony, pamietaj ze JS dziala po stronie klienta(przrgladarki) a PHP po stronie servera i nie maja ze soba bezposredniej komunikacji.


Jeżeli javascript jest wyłączony to i zmiennej nie prześlesz ani jej wartości nie zmienisz!

Tak samo ajax odpada! Czemu? Bo to też javascript jak nazwa wskazuje.
TrevorGryffits
iwosz: jak chcesz ustawić w noscript ustawić jakąś zmienną i przesłać ją dalej? Tak z ciekawości pytam.

Edit UP:AJAX wcale nie odpada. Tylko robisz trochę inne założenia. Zakaładasz, że AJAX nie wysłał jakiejś zmiennej to znaczy, że nie ma JS włączonego. A jak coś przesłał to wszystko ok. Nie trzeba wcale AJAXa. Można dodawać do linków zmienne. Różne rzeczy czynić można:)
michaJlS
Cytat(TrevorGryffits @ 30.07.2009, 15:43:59 ) *
iwosz: jak chcesz ustawić w noscript ustawić jakąś zmienną i przesłać ją dalej? Tak z ciekawości pytam.

ja bym próbował <img src="skrypt.php?no-js=1" > - tylko nie wiem czy by bez względu na to, że to w sekcji noscirpt, przeglądarka tego fakeowanego obrazka nie pobrała.

albo jeszcze inaczej - założyć, że obsługi nie ma, i czekać na informację ze skryptu, że to js jednak jest;]
iwosz
Cytat(TrevorGryffits @ 30.07.2009, 15:41:45 ) *
iwosz: jak chcesz ustawić w noscript ustawić jakąś zmienną i przesłać ją dalej? Tak z ciekawości pytam.


w sensie: w momencie wczytywania sie strony, mozesz sprawdzic czy JS jest uruchomiony (jest na to wiele sposobow) i np. wyswietlic linka do strony z parametrem js=1 lub js=0

Np:
  1. <script type="text/javascript"> document.write("<a href="index.php?js=1">Przejdz dalej</a>) </script>
  2. <noscript><a href="index.php?js=0">Przejdz dalej</a></noscript>


Oczywiscie to taki najprostrzy sposob, mozesz powiedziec ze to mozna 'obejsc' itd, oczywiscie ze mozna, ale podaje najszybsze i najprostrze rozwiazanie problemu, natomiast do pelnego wykrycia czy JS jest uruchomiony, jaka przegladarke ma klient itd sluza bardziej zaawansowane skrypty ktorych jest wiele w sieci.

Cytat(fifi209 @ 30.07.2009, 15:40:38 ) *
Jeżeli javascript jest wyłączony to i zmiennej nie prześlesz ani jej wartości nie zmienisz!

Tak samo ajax odpada! Czemu? Bo to też javascript jak nazwa wskazuje.


przeslac zmienna w sensie kliknac na link, to chyba mozna zrobic?
Fifi209
Cytat(iwosz @ 30.07.2009, 14:53:17 ) *
przeslac zmienna w sensie kliknac na link, to chyba mozna zrobic?


Do robienia znaków dialektycznych używa się alt + literka.

Co do pytania: Mówimy o przesyłaniu zmiennych za pomocą ajaxa tak? Więc nie odbiegaj od tematu i nie gadaj o zwykłym przesyłaniu za pomocą get'a. W dodatku popatrz na estetykę takiego rozwiązania:

index.php?action=news&id=1&js=0&sid=a4455d53es2ab789022c2e87aa1s5da0

Ładnie by to wyglądało. ;d
iwosz
Cytat(fifi209 @ 30.07.2009, 15:57:43 ) *
Do robienia znaków dialektycznych używa się alt + literka.

Co do pytania: Mówimy o przesyłaniu zmiennych za pomocą ajaxa tak? Więc nie odbiegaj od tematu i nie gadaj o zwykłym przesyłaniu za pomocą get'a. W dodatku popatrz na estetykę takiego rozwiązania:

index.php?action=news&id=1&js=0&sid=a4455d53es2ab789022c2e87aa1s5da0

Ładnie by to wyglądało. ;d


ok, co wniosla do tej dyskusji twoja odpowiedz? ;] Ani rozwiazania problemu nie widze, ani zadnych sesnownych informacji ;]

pytanie bylo "Jak sprawdzić czy użytkownik ma wyłączony js tylko za pomocą PHP? " gdzie tu masz info ze ma to byc przesylane AJAXem? Jak chcesz przeslac AJAXem informacje jesli JS jest wylaczony? ;] moje rozwiazanie nie jest estetyczne tylko najprostrze.

Jesli JS jest wylaczony w przegladarce, to nie ma duzego pola do manewru, mozna conajwyzej wyswietlic informacje o tym.
Fifi209
Cytat(iwosz @ 30.07.2009, 15:08:20 ) *
ok, co wniosla do tej dyskusji twoja odpowiedz? ;] Ani rozwiazania problemu nie widze, ani zadnych sesnownych informacji ;]

pytanie bylo "Jak sprawdzić czy użytkownik ma wyłączony js tylko za pomocą PHP? " gdzie tu masz info ze ma to byc przesylane AJAXem? Jak chcesz przeslac AJAXem informacje jesli JS jest wylaczony? ;] moje rozwiazanie nie jest estetyczne tylko najprostrze.

Jesli JS jest wylaczony w przegladarce, to nie ma duzego pola do manewru, mozna conajwyzej wyswietlic informacje o tym.


Popatrz człowieku lepiej na swoje posty. I zacznij używać polskich znaków bo gąszcz literek nie łatwo opanować wzrokiem.

A więc dla informacji: Po stronie PHP nie da się sprawdzić czy użyszkodnik ma włączoną obsługę javascript. (bez zewnętrznych danych)

Co do ajaxa - pisałem właśnie o tym, że nie da się ich przesłać jak jest js wyłączony. Czytanie ze zrozumieniem się kłania, parę postów wyżej.
(kolega zaproponował ajaxem (przy włączonym js) wysyłać dane np. postem (ukryte) aby skrypt wiedział, że js chodzi. Jeżeli danych nie dostanie to znaczy że js nie jest włączony)

I tu jest cała filozofia, to jest najprostsze i najestetyczniejsze rozwiązanie.
flashdev
Cytat(sweter @ 30.07.2009, 14:58:56 ) *
Jak sprawdzić czy użytkownik ma wyłączony js tylko za pomocą PHP?

Szukałem w googlach, ale znalazłem tylko jak sprawdzić za pomocą skryptów js.


Bezpośrednio przy pierwszych odwiedzinach strony się nie da, ale zrobić tak:
Kod
<a href="http://no-js.strona.pl/jakas-strona.htm" onClick="location='http://strona.pl/jakas-strona.htm';return false;">powrót</a>


Potem w php możesz subdomenę no-js sprawdzić przy pomocy zmiennej REQUEST_URI
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.