Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: warunek dla roznych przegladarek?
Forum PHP.pl > Forum > PHP
Volume
Wiem, ze mozna rozpoznac pzregladarke zmienna srodowiskowa $HTTP_USER_AGENT ale czy jest mozliwe zrobic warunek, ktory bedzie przyporzadkowywal odpowiedniej przegladarce odpowiednia tresc?

Chodzi mi aby np. ppp1.png obrazek wczytywaly tylko mozille a np. ppp2.png tylko opery czy IE - jest to mozliwe w php?
nospor
Skoro wiesz jak rozpoznać przeglądarke więc wczym problem?
  1. <?php
  2.  
  3. $obrazek=&#092;"default.png\";
  4. if ($jestIE) $obrazek=&#092;"ie.png\";
  5. elseif($jestOPERA) $obrazek=&#092;"opera.png\";
  6. elseif.....
  7. .......
  8. //zmienne $jestIE,... sam se wylicz bo mowisz ze wiesz jak
  9.  
  10. ?>
Volume
hmm
probowalem to np. tak zrobic:
  1. <?php
  2.  
  3. $jestIE='Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)';
  4.  
  5. if($jestIE==$HTTP_USER_AGENT)
  6. {
  7. echo 'to jest IE 5.0 pod win98';
  8. }
  9.  
  10. ?>

I tylko takie rowiazanie przyszlo mi teraz do glowy - ale ono jak widac jest malo uniwersalne, bo wystarczy ze ktos bedzie mial inny system czy inna wersje pzregladarki i juz lipa... Czyli musialbym w takiej sytuacji napisac wszystkie mozliwosci - a mi chodzi ogolnie zeby tylko uwzgledniac przegladarke - myslalem, zeby odpowiednie czesci jakos powicinac i wtedy porownac ale to raczej nie tak sie powinno robic... I to jest moj problem..
nospor
  1. <?php
  2. if (preg_match(&#8221;/MSIE/i”,$_SERVER[HTTP_USER_AGENT])) { $isIE = 1;
  3. } else { $isIE = 0;
  4. }
  5. ?>
bregovic
a) Używaj $_SERVER
cool.gif Uzależnianie całej zawartości strony od HTTP_USER_AGENT nie jest dobrym pomysłem - teoretycznie każdy użytkownik może sobie tą zmienną zmienić - np w IE zdaje się za pomocą Rejestru, a w Operze i Firefoxie możesz sobie spokojenie ustawić zmienną HTTP_USER_AGENT na "Jasio" za pomocą opcji lub rozszerzeń.
Volume
dziekie nospor, wlasnie o to chodzilo, nawet nie sadzilem, ze to moze byc takie proste i tak przydatne.

bregovic, a czy sa do tego jakies lepsze rozwiazania?

i jeszcze taki maly OT, dlaczego w informacji wg tej zmiennej $HTTP_USER_AGENT IE jest identyfikowany rowniez jako Mozilla? Wiem, ze jest jeszcze jeden znaczacy 'wyraz' - Gecko i tego sie póki co trzymam.
Zajec
User-agentów masz kilka(naście?) tysięcy. Będziesz miał kłopot, żeby je wszystie obsłużyć.

Poza tym użytkownicy Opery, Firefoksa i Konqueror mogą bez kłopotu zmieniać jego ciąg. I to bardzo prosto: choćby F12 w Operze.

Najbezpieczniejsza metoda:

Kod
<!--[if IE]> tutaj kod widoczny tylko dla IE <![endif]-->
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.