Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rozdzielczość ekranu, ZAWSZE wykonuje! Dziwne...
shpaque
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


Witam, mam taki wpis:

  1. <?
  2. $width = "<script>document.write(screen.width); </script>";
  3. if ($width < 1000)
  4. {
  5. header("Location: "."/mobile/index-mobile.php");
  6. }
  7. ?>


Dość prosty i chyba bez błędów, ale dziwne jest to, że nawte kiedy $width jest większe niż 1000 - przerzuca mnie na mobile...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mstraczkowski
post
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

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


Dla php poniższe wyrażenie jest zwykłym przypisaniem stringa do zmiennej:

  1. $width = "<script>document.write(screen.width); </script>";

Jest to tyle warte co przykładowo:

  1. $width = 'ala ma kota';

Później porównujesz sobie:

  1. if ($width < 1000)

PHP rzutuje sobie string na int, podczas tego porównywania co daje mu w wyniku 0 < 1000
Więc zawsze wykona się przekierowanie

W taki sposób tego nie zrobisz, kod JS nie wykona się w PHP (IMG:style_emoticons/default/wink.gif)
Nie otrzymasz w zmiennej rozdzielczości tylko zwyczajnie string("<script>document.write(screen.width); </script>");
Co możesz zobaczyć sprawdzając sobie:

  1. var_dump($width);


Jeżeli chcesz to zrobić w taki sposób możesz pobawić się ajaxem i wysłać pobraną przez javascript szerokość do skryptu PHP za pomocą metody POST / GET

Ten post edytował mstraczkowski 1.05.2013, 12:18:05
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.08.2026 - 01:15