Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wykrywanie JavaScript'u
Forum PHP.pl > Forum > Przedszkole
-Bartek-
Witam.

Podpowie mi ktoś jak napisać mały skrypcik w PHP który wykrywa obsługę JavaScript'u i w zależności od rezultatu podejmuję odpowiednią akcję.
Byłbym bardzo wdzięczny za pomoc.

Pozdrawiam.
gox
Dobre pytanie do ktorego z cala stanowczoscia sie dolaczam.
Sam stawiam pierwsze kroki w JS i wyrzezbilem sobie z nudow cos takiego:

  1. <script language="javascript" type="text/javascript">
  2.  
  3. function $(p) {
  4. return document.getElementById(p);
  5. }
  6.  
  7.  
  8.  
  9. <style type="text/css">
  10.  
  11. nojs {
  12. min-height:100%;
  13. height:100%;
  14. min-width:100%;
  15. width:100%;
  16. background-color:red;
  17. font-size:500%;
  18. color:red;
  19. }
  20.  
  21. <body onload="
  22. $('nojs').style.visibility = 'hidden';
  23. ">
  24.  
  25. <div id="nojs">
  26. Aby zobaczyc ta strone musisz miec wlaczona obsluge javascript
  27. <br ><br ><br ><br ><br ><br ><br ><br ><br ><br ><br ><br >
  28. </div>
erix
Cytat
Kod
<div id="nojs">
Aby zobaczyc ta strone musisz miec wlaczona obsluge javascript
<br ><br ><br ><br ><br ><br ><br ><br ><br ><br ><br ><br >
</div>

A o <noscript/> słyszałeś?
bim2
W php tego nie wykryjesz, a gość -gox- ma pytanie z innej beczki, bo mu php nie potrzebny.

Możesz zrobić tak jak erix podał <noscript> ale to nadal html, nie php.
gox
Fajnie, noscript, w moim przypadku, (a przypadek jest taki, ze chce uniemozliwisc wysweitlanie calej strony) kodzi powinien wygldac tak:

  1. <div style="
  2. position: fixed; 0px 0px;
  3. min-height:100%;
  4. height:100%;
  5. min-width:100%;
  6. width:100%;
  7. background-color:white;
  8. font-size:500%;
  9. color:black;
  10. ">
  11. Twoja przeglądarka nie obsługuje JavaScript!
  12. <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
  13. </div>


A to wielokrotne BR, to daletego, ze IE nie respektuje height 100% ani tym bardziej min-height

dzieki za pomoc, bez nerowow tongue.gif
erix
A Google gryzie? tongue.gif
http://www.google.com/search?hl=pl&cli...=Szukaj&lr=
gox
Hmm, z niewyjaśnionych przyczyn, taki kod zaczął poprawnie działać pod IE 6.0.29 winSP3
poprawnie tj, wysokość -> 100% okna przeglądarki
Ktos domyśla się dlaczego?

  1. <div style="
  2. position: fixed; 0px 0px;
  3. min-height:100%;
  4. height:100%;
  5. min-width:100%;
  6. width:100%;
  7. background-color:gray;
  8. font-size:500%;
  9. color:black;
  10. ">
  11. Twoja przeglądarka nie obsługuje JavaScript!
  12. </div>
-Bartek-
Cytat
Witam,

Problem taki jak w temacie.
Czy można z poziomu PHP wykryc czy przglądarka ma włączoną obslugę JS


Cytat
teoretycznie nie, poniewasz PHP działa na serverze i jak skończy prace(w uproszczeniu) strona jest wtsyłana do przeglądarki, a tam dopiero JS zaczyna prace, więc w chwili kiedy PHP działa jeszcze nie działa JS na przegladarce

prakrycznie,
robisz strone index tak że jeśłi PHP niewie czy JS jest na przeglądarce wkleja kod JS który przeładuje strone z GET['js']==Tak , urzytkownik prawie nie zauważy (jak będzie dobrze zrobione) a PHP będzie wiedział (dobrze to potem w sesje zapisać)


Źródło - forum.webdiary.pl


Zamienił by ktoś to w piękny kod PHP? smile.gif


Pozdrawiam.
bim2
No teoretycznie się tak da, ale można to oszukać. smile.gif Może powiedz nam, po co ci w php wiedzieć, czy ktoś ma js? To wtedy coś poradzimy?
-Bartek-
Potrzebuję czegoś co zablokuje dostęp dla użytkowników bez obsługi js nie blokując przy tym botów indeksujących (o ile 'nie php'owe' metody tego nie robią). Robią? smile.gif
bim2
Hmmm, tak na logikę, ja mogę się podszyć bod bota indexującego więc i tak dostanę to co chce. Najlepszym wyjściem bedzie
  1. <noscript>
  2. <?php
  3. if(bot===false)
  4. {
  5. echo '<div style="height: 100%; width: 100%; background: black; position: absolute; top: 0; left: 0"></div>';
  6. }?>
  7. </noscript>
-Bartek-
Wielkie dzięki. Jesteś WIELKI smile.gif



Pozdrawiam i jeszcze raz dziękuję.
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.