Autor | Zpráva | ||
---|---|---|---|
Perry Profil |
#1 · Zasláno: 19. 11. 2008, 18:12:43
Dá se nějakým způsobem v PHP zjistit, zda má uživatel povolený nebo bloknutý JS ? Klidně i při opakovaném načtení (podobně, jako se dají otestovat koláčky)
|
||
Měsíček Profil |
#2 · Zasláno: 19. 11. 2008, 18:22:21
|
||
bohyn Profil |
#3 · Zasláno: 19. 11. 2008, 18:24:27
Co treba merici tecka?
<noscript> <img ...> </noscript> |
||
Měsíček Profil |
#4 · Zasláno: 19. 11. 2008, 18:24:46
|
||
bohyn Profil |
#5 · Zasláno: 19. 11. 2008, 18:29:09
Měsíček
To nerika nic o tom jestli ma JS zapnuty |
||
Měsíček Profil |
#6 · Zasláno: 19. 11. 2008, 18:30:07
Ale ano :) je tam hodnota "javascript" a pokud je zapnutý tak má "1" pokud ne tak "0", problém je v tom, že správce serveru musí mít správně nakonfigurovaný server s určitým souborem, aby tato funkce mohla fungovat, čti příště pořádně :o)
|
||
bohyn Profil |
#7 · Zasláno: 19. 11. 2008, 18:37:10
Měsíček
A jak to z $_SERVER['USER_AGENT'] poznas? To jestli je 1 nebo 0 zalezi na tom jestli dany browser JS umi nebo ne (nehlede na zapnuti/vypnuti). |
||
Leo Profil |
#8 · Zasláno: 19. 11. 2008, 18:39:58
"Ale ano :) je tam hodnota "javascript"...."
Měsíček Kecate. Vzhledem k tomu, ze - jak pise bohyn - se info o zapnutem js automaticky nepredava v zadne http hlavicce, slo by to jedine telepatii. Leo |
||
Měsíček Profil |
#9 · Zasláno: 19. 11. 2008, 18:42:37 · Upravil/a: Měsíček
"A jak to z $_SERVER['USER_AGENT'] poznas? "
Nijak, .. nespletl sis kontext? :) .. upřímně nevím proč si vytáhl superglobální pole $_SERVER[] k funkci get_browser. "To jestli je 1 nebo 0 zalezi na tom jestli dany browser JS umi nebo ne (nehlede na zapnuti/vypnuti)." Možná. Možná taky 1 znamená zapnutý, 0 vypnutý a prázdný znamená "promiň neumím". Nechceš to nechat tak pro Perryho budou tvé a mé poslední příspěvky v tomto vlákně nejméně důležité. EDIT:// OK, leo a bohyne beru zpět. |
||
Chamurappi Profil |
#10 · Zasláno: 19. 11. 2008, 18:45:20
Reaguji na Měsíčka:
Tvůj příspěvek #4 je velmi zavádějící, protože server nedostává od prohlížeče informaci, jestli má zapnutý JavaScript. Odkázaná funkce může nanejvýš tipovat z User-Agenta a z něj nikdy nemůže zjistit, jestli je JS povolený. |
||
Leo Profil |
#11 · Zasláno: 19. 11. 2008, 18:45:30
Doplnim pro mene chapave: browscap.ini obsahuje informace jen o tom, jestli dany prohlizec javascript umi v principu, ne jestli je zapnuty v dane chvili - takze je to informace na dve veci. Leo
|
||
Měsíček Profil |
#12 · Zasláno: 19. 11. 2008, 18:46:23
Tak to jsem blbě pochopil, promiň Bohyne.
|
||
bohyn Profil |
#13 · Zasláno: 19. 11. 2008, 18:48:05
Měsíček
Superglobalni promenou sem pletu proto ze se to z ni urcuje. Perrymu by melo pomoci co sem psal vyse - vlozit obrazek (smerijici na PHP script) mezi noscript tagy |
||
Leo Profil |
#14 · Zasláno: 19. 11. 2008, 18:53:47
Jeste k puvodnimu tematu - at uz zvolite jakekoliv reseni, mel byste myslet jednak na uzivatele s vypnutym js (i kdyz tech je uz malo) a taky na to, jak se budou chovat roboti vyhledavacu. Me osobne je sympaticke treba reseni s meta refresh v noscriptu (i kdyz mozna neni validni, ale to neresim), ale otazka je, jak se k nemu postavi roboti, ze. Leo
|
||
bohyn Profil |
#15 · Zasláno: 19. 11. 2008, 19:01:38
Leo
Vylekat navstevnika refreshem se mi moc nelibi, kdyztak to aspon schovat nekam do 1x1 px iframe |
||
Perry Profil |
#16 · Zasláno: 19. 11. 2008, 19:25:41
bohyn
Nějak ten obrázek nechápu... jak z toho poznám, zda JS běží nebo ne ? Leo Zajímavé řešení, to bych mohl zkusit, ovšem pokud to nebude validní, tak je mi to na nic... (práce musí být validní). --- JS potřebuji kontrolovat kvuli AJAXu. Když ho uživatel zablokuje, tak mi nebude fungovat admin sekce, kde ho hojně využívám v tabulkách. Přeci jenom beru to tak, že admin by měl mít JS povolený, ale náhoda je blbec, a pak to nepojede :)... takže pokud nemá JS, tak se nebude moci přihlásit |
||
bohyn Profil |
#17 · Zasláno: 19. 11. 2008, 19:30:23
Perry
Pokud se odesle dotaz na obrazek (script) tak je vypnuty JS a nastavis session/cookie. Na to ze je vypnuty JS muzes upozornit i nejakym "transparentem" pres obrazovku taktez pres noscript. |
||
Leo Profil |
#18 · Zasláno: 19. 11. 2008, 19:38:35
"JS potřebuji kontrolovat kvuli AJAXu. Když ho uživatel zablokuje, tak mi nebude fungovat admin sekce, kde ho hojně využívám v tabulkách. Přeci jenom beru to tak, že admin by měl mít JS povolený, ale náhoda je blbec, a pak to nepojede :)... takže pokud nemá JS, tak se nebude moci přihlásit"
Ona nakonec nejlepsi cesta (pokud se na adminy, co nemaji zapnuty js nemuzete vykaslat) neni test zapnuteho js na strane php, ale proste udelate stranky tak, aby s vypnutym js fungovaly taky, i kdyz ne tak elegantne. Muzete sice treba pres js nastavit cookie, tu na serveru detekovat, ale co kdyz si admin vypne js az pak? Vy predpokladate, ze je zapnuty a cela aplikace je v troskach. Takze - tam, kde ajax na pozadi stranky muze stahnout nejaka data ze serveru proste musite udelat klasicky formular v jednotlivych krocich - vyplnit cast dat, odeslat, pockat na data ze serveru, vyplnit dalsi cast formulare atd. Leo |
||
Leo Profil |
#19 · Zasláno: 19. 11. 2008, 19:39:53
"takže pokud nemá JS, tak se nebude moci přihlásit"
Eee, k cemu je potreba ajax na prihlaseni? Leo |
||
Perry Profil |
#20 · Zasláno: 19. 11. 2008, 19:43:03 · Upravil/a: Perry
Leo
Na přihlášení ne... ale potom se použije v admin sekci, tak nemá cenu se logovat, když není povolený a lepší je upozornit a nepřihlásit se. Problém je, ze bez toho vypnutého JS (a následně nefunkčního AJAXu), by to bylo hrozně nepřehledné a zbytečné to dělat... to je lepší právě ten test a když JS nebude, tak ho přesměruju v PHPku na nějakou error stránku a má smůlu... rozhodně lehčí, než to dělat 2x kvůli cca. 2% lidí (bohužel, pár lidí, co to vypínají osobně znám ... a mě se dokonce diví, že JS mám povolené) |
||
Leo Profil |
#21 · Zasláno: 20. 11. 2008, 00:23:55
V tom pripadku bych proste na prihlasovaci strance javascriptem vygeneroval ve formulari dalsi, skryty input (type="hidden"), a v PHP skriptu, ktery zpracovava udaje z prihlasovaciho formulare testoval, jestli z inputu prisla data. Leo
|
||
Chamurappi Profil |
#22 · Zasláno: 20. 11. 2008, 00:54:29
Reaguji na Lea:
+ rovnou otestoval, jestli prohlížeč podporuje XMLHttpRequest. Reaguji na Perryho: Mohl jsi od základu psát administraci tak, aby fungovala i bez JS, ne? |
||
Aesir Profil |
#23 · Zasláno: 20. 11. 2008, 12:57:08
Perry:
„rozhodně lehčí, než to dělat 2x kvůli cca. 2% lidí “ Proč něco dělat dvakrát? Pouze se na základě typu requestu rozhodnete jak vrátíte odpověď. Pokud se bude jednat o request javascriptem (viz Chamurappi a XMLHttpRequest), vrátíte jako plain text/json/... Pokud se bude jednat o normální http request, tak normálně flushnete obsah do šablony. Nic neděláte dvakrát. Navíc na to stačí jedna kontrola globálně pro celou administraci pro každý request. |
||
Mastodont Profil |
#24 · Zasláno: 20. 11. 2008, 14:04:35
Perry
Už jsme to tu řešili: http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=64 654 |
||
Časová prodleva: 15 let
|
0