Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemZamknutoVyřešeno rozlišení obrazovky v PHP

Stáhl jsem si nějaký script na zjištění rozlišení v PHP.
http://regretless.com/scripts/basics/get_screen_wid th_height.php
Funguje to tak, že na klientově počítači se zjistí rozlišení pomocí javascriptu a to se odešle na server. PHP si to vybere z cookies.

Všechno je v pořádku, ale pokud klient má vypnutý javascript, nebo cookies, nebo jde přes anonymní proxy, tak se tento script stále volá dokola (zacyklí se to).

Potřeboval bych jednu z těchto dvou možností:
1. Aby se to necyklilo (nejlépe).
2. Pokud nemá zapnutý javascript, či cookies, či to jde přes nějakou anomynizační proxy, aby se to neprovedlo.

Nevím, jestli jsem to srozumitelně napsal. Prostě potřebuju zjistit rozlišení a pokud to nějakým způsobem nejde, aby to nic neudělalo.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Tak si s tím od včerejška hraju. Mám to udělaný tak, že mám script index.php ve kterém mám include(…
Matej 30.04.2006 15:31
Matej
Tak bys tady měl ten skript zveřejnit. To čeho chceš dosáhnout je běžně praktikovaná rutina a problé…
Flash_Gordon 30.04.2006 15:52
Flash_Gordon
Zacyklí se to na klientské straně a je to přesně ten script, co jsem zveřejnil nahoře. Jinak jsem t…
Matej 30.04.2006 16:22
Matej
A hlavně je to bez cookies 3-[ poslední
Matej 30.04.2006 16:23
Matej

Tak si s tím od včerejška hraju.
Mám to udělaný tak, že mám script index.php ve kterém mám

include("get_resolution.php");

Nejprve jsem zkoušel na klientské straně zavést proměnou x (byla vytvořena v hlavním scriptu index.php), kterou jsem inkrementoval v get_resolution.php a tím jsem zjistil kolikrát byl reloadnut. Skutečně se to nezacyklí, ale bohužel zůstane to viset na tom scriptu get_resolution.php. Nepředá se řízení zpět do index.php. Vůbec nechápu proč, neboť jej neukončuju, pouze pokud je splněná podmínka, že to proběhlo víckrát, tak se přestane cookies používat.

Zkusil jsem i ten nápad z session, ale nakonec se ukázalo, že to vede k obdobným výsledkům.

Zkoušel jsem i nejdřív testovat, zda počítač má zapnutý cookies, ale abych to zjistil, tak zase musím stránku reloadnout. Takže jsem tam, kde jsem byl předtím.

Nakonec ztrácím chuť použít na to cookies. Asi to není vůbec dobré řešení.

Má někdo nějaký jiný nápad, jak to dostat na server. Mělo by to jít pomocí obrázku, ale nevím jak rozlišení monitoru propašovat v javascriptu do url na klientské straně. Pak bych si to měl přečíst na serveru pomocí $_GET. Jestli to jde. Hledám nějaký příklad (hotový jednoduchý script), ale nemůžu nic najít.

Tak bys tady měl ten skript zveřejnit.
To čeho chceš dosáhnout je běžně praktikovaná rutina a problém, který popisuješ může způsobovat jen programátorská nedomyšlenost = krpa.
Asi by jsi měl uvést přesně skripty, které se údajně zacyklí.
Provádění skriptu PHP lze ukončit příkazem exit; nebo die();

Pokud i přesto je skrip volán stále dokola tak už to může být snad jen vyloženě na volání na klientské straně.

Zacyklí se to na klientské straně a je to přesně ten script, co jsem zveřejnil nahoře.

Jinak jsem to vyřešil pomocí javascriptu na klientské straně:

<img name="obr" src="1x1.php">
<script language="javascript">
  obr.src ="1x1.php?w=" + screen.width + "&h=" + screen.height;
</script>

A pomocí $_GET na serverové straně:

if (isset($_GET['w']))
  {$param_w = $_GET['w'];}
else
  {$param_w = 0;}

if (isset($_GET['h']))
  {$param_h = $_GET['h'];}
else
  {$param_h = 0;}

A je to!

Zpět do poradny Nahoru