Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 30. 7. 2008, 13:58:22
Dá se nějak pomocí PHP zjistit, že je v adrese #? Zatím jsem na to nepřišel, pomocí Java Scriptu vím, ale nevim jak pak přenést infromaci o tom z Java Scriptu do PHP. Třeba předáním pomocí cookie mi nevyhovuje...
Díky za nápady. |
||
roberta Profil |
#2 · Zasláno: 30. 7. 2008, 14:19:38
pozri si echo phpinfo() a tam si nájdi serverovú premennú, v ktorej je adresa a použi na ňu funkciu strstr
|
||
Alphard Profil |
#3 · Zasláno: 30. 7. 2008, 14:53:06
teď si nejsem úplně jistý, ale kotvu v PHP zjistit nelze, předpokládm, že # taky ne
|
||
Chamurappi Profil |
#4 · Zasláno: 30. 7. 2008, 15:33:43
Reaguji na joa:
Část adresy počínaje znakem „#“ se vůbec neposílá na server. Skript na straně serveru nemůže o kotvě nic vědět. |
||
joe Profil |
#5 · Zasláno: 30. 7. 2008, 15:37:13
roberta
A zkoušel jsi to? Ne, kdyby to bylo tak jednoduchý, tak sem s tím nechodím :-) Alphard Já si to myslel a o to je to horší :-) --- A věděl by někdo jak předat hodnotu proměnné z Java Scriptu do PHP? |
||
Chamurappi Profil |
#6 · Zasláno: 30. 7. 2008, 15:42:38
Reaguji na joa:
Přesměrováním, <iframe>m nebo XMLHttpRequestem. |
||
joe Profil |
#7 · Zasláno: 30. 7. 2008, 15:50:48
Chamurappi
Díky, iframe mě nenapadl, myslel jsem, že by mohl existovat i trochu jednodušší způsob, i když zmíněné způsoby jsou celkem jednoduché, udělám to XMLHttpRequestem, to bude asi nejlepší řešení. Přesměrováním, nevím, to by možná stránka problikla a pak naběhla znovu, jestli tím bylo myšleno změna location. |
||
roberta Profil |
#8 · Zasláno: 30. 7. 2008, 16:14:01
A zkoušel jsi to?
prepáč, neskúšal, jasne, že to nefunguje. bol to iba taký "narýchlo" nápad... |
||
Greeg Profil |
#9 · Zasláno: 30. 7. 2008, 17:51:45 · Upravil/a: Greeg
Alpharad
nie som si celkom istý čo si myslel tou kotvou ale $_SERVER['PHP_SELF'].$_SERVER['SERVER_NAME'] resp. $_SERVER['REQUEST_URI'].$_SERVER['HTTP_HOST'] ti krásne vráti adresu prave spúšťaného scriptu. |
||
Alphard Profil |
#10 · Zasláno: 30. 7. 2008, 18:12:04
Greeg
http://www.jakpsatweb.cz/zalozky.html kotvou jsem myslel zalozku, tedy část adresy od # adresu spuštěného scriptu samozřejmě vrátit lze |
||
joe Profil |
#11 · Zasláno: 30. 7. 2008, 18:22:43
Greeg
Potřebuju mít třeba toto: index.php?request=#xmp a potřebuju zjistit to #xmp pomocí PHP, ale nejde to, protože to je brané jako název záložky, kotvy apod... |
||
Izzi Profil |
#12 · Zasláno: 30. 7. 2008, 18:34:07
Neviem.. ja v tom nesom nejaky odbornik... nemyslel si nahodou nieco take?
<?php $celeurl=($_SERVER['REQUEST_URI']); if (preg_match("/#xmp/i",$celeurl)) echo ""; else echo ""; ?> ...ak nie tak to ber ako keby to tu nebolo :))) |
||
Alphard Profil |
#13 · Zasláno: 30. 7. 2008, 19:33:16
Izzi
četl jsi tohle? Část adresy počínaje znakem „#“ se vůbec neposílá na server. nejde to |
||
bukaj Profil |
#14 · Zasláno: 30. 7. 2008, 20:12:59
joe
Potřebuju mít třeba toto: index.php?request=#xmp A potřebuješ to tedy jako mít jako kotvu, nebo to poslat jako hodnotu? V druhém případě by šlo použít urlencode(), či podobně, takže by prohlížeč nebral # a všechno zatím jako kotvu, ale normálně by to připojil do požadavku (alespoň doufám). |
||
Timy Profil |
#15 · Zasláno: 30. 7. 2008, 20:15:27
Když zadáš do prohlížeče http://example.com/stranka#nadpis2, tak prohlížeč pošle http požadavek a požádá o stránku http://example.com/stranka; po načtení a vykreslení stránky se poté přesune na požadované ID. Na server část za hashem vůbec nejde.
|
||
joe Profil |
#16 · Zasláno: 30. 7. 2008, 21:10:38
bukaj
Kotva mě teď nezajímá, chci tu hodnotu, včetně křížku:-) index.php?request=#xmp A teď bych chtěl zjistit hodnotu "#xmp", ale prostě to nejde, protože proto, jak napsal třeba Timy. |
||
Alphard Profil |
#17 · Zasláno: 30. 7. 2008, 21:34:51
joe
prožeň to funkcí urlencode() (jak psal Bukaj), vytvoříš odkaz ve tvaru index.php?request=%23xmp a ten PHP bez problémů vezme a dokonce automaticky dekóduje, takže pak jen použiješ $_GET['request'] |
||
joe Profil |
#18 · Zasláno: 30. 7. 2008, 21:42:34
Alphard
Ale tak to nemůžu mít, musí být v adrese křížek vidět.. Jediná možnost je Java Script, jinak to prostě nejde, kotvu sice nechci, ale s kotvou to souvisí :-) Jinak dík moc za rady, jak jsem psal, udělám to XMLHttpRequestem, jak poradil Chamurappi. |
||
bukaj Profil |
#19 · Zasláno: 30. 7. 2008, 21:50:13
joe
Ale tak to nemůžu mít, musí být v adrese křížek vidět.. Mohu vědět, proč je tak důležité, aby byl v adrese ten křížek vidět? :o) |
||
joe Profil |
#20 · Zasláno: 30. 7. 2008, 22:26:36
bukaj
Kvůli ajaxu... |
||
Timy Profil |
#21 · Zasláno: 30. 7. 2008, 22:34:07
joe
Pokud je to kvůli ajaxu, tak to na stránce zase Ajaxem zpracuj :-). |
||
bukaj Profil |
#22 · Zasláno: 30. 7. 2008, 22:50:52
joe
Kvůli ajaxu... Takže jestli to chápu dobře, tak ty z odkazů vytahuješ, kam míří, a cestou AJAXu posíláš požadavek na server, že? Pak nevím, ale proč bys nemohl v Javascriptu adresu dekódovat? Či poslat klidně zakódované, protože na serveru se ti to stejně dekóduje zase do normální podoby. Taky je možné, že jsem nepochopil, oč ti jde. |
||
joe Profil |
#23 · Zasláno: 31. 7. 2008, 02:57:28 · Upravil/a: joe
Timy
Však zpracuju:-), jenže je to trošku "složitější", protože když bych to tak udělal, načetl bych normální obsah a potom použil XMLHttpRequest, takže by se napřed načetla normální stránka a teprve potom ta, kterou chci. bukaj Pak nevím, ale proč bys nemohl v Javascriptu adresu dekódovat? Mohl bych ji dekódovat, jde o to, jestli by to k něčemu bylo, myslim, že by to ale pak nefungovalo. Chci docílit toho, že když změním ajaxem nějakou část webu a uživatel refreshne stránku, bude zase tam, kde byl po provedení ajaxu a ne na původním obsahem. --- Ale ještě jsem se k tomu nedostal, není čas:-) |
||
peta Profil |
#24 · Zasláno: 31. 7. 2008, 08:27:04 · Upravil/a: peta
joe
viz bukaj 'Ale tak to nemůžu mít, musí být v adrese křížek vidět.' a co se tim zmeni? javascript <form onsubmit=funkce() <input type=hidden value=... "name=hodnotaskrizkem"> funkce -> najdi hodnotu s # a uloz do inputu, pak odesli formular jaky problem? kdyz uz pouzivas javascript na ajax, tak proc ne primo pri odesilani formulare? tez v adrese 'aaa.php#'+text+'?skrizkem='+escape(text) ted si nejsem jisty, ktere z toho se pise driv, zda ? nebo # - tez to muzes ukladat do cookies - tez muzes udelat JS, ktery najde na strance vsechny zalozky a prida na nich funkci onclick, ktera dopise input - a uplne nejlepsi reseni je prave pri tom odeslani vzit celou location.x a vyseparovat z ni, co potrebujes, jak jsem psal. jakpsatweb - javascript - objekt window.location jakpsatweb - javascript - httpgetvars - a nebo ajaxem odesilat / prepisovat na pozadi, to nikam skakat nebude ani nic refreshovat |
||
joe Profil |
#25 · Zasláno: 31. 7. 2008, 09:59:25
'Ale tak to nemůžu mít, musí být v adrese křížek vidět.'
a co se tim zmeni? Prostě musí tam být, nemůže být zakódovaný pomocí urlencode. a co se tim zmeni? Hodně se toho změní. javascript <form onsubmit=funkce() <input type=hidden value=... "name=hodnotaskrizkem"> Tímhle se nic nevyřeší podle mě, nevidím na tom žádný způsob použití k tomu, co potřebuju:) funkce -> najdi hodnotu s # a uloz do inputu, pak odesli formular jaky problem? Když bych udělal tohle, to znamená, že stránka by se musela načíst, v kódu by to došlo k formuláři a ten bych znovu odeslal. Tzn, stránka by jakoby problikla, tedy načítala by se zbytečně dvakrát, to nechci. - tez to muzes ukladat do cookies Cookies mají jednu velkou nevýhodu pro mě a to nejen tu, že se dají vypnout. - tez muzes udelat JS, ktery najde na strance vsechny zalozky a prida na nich funkci onclick, ktera dopise input Taky to takhle normálně dělám.-) - a nebo ajaxem odesilat / prepisovat na pozadi, to nikam skakat nebude ani nic refreshovat Nevím proč a co bych na tom pozadí měl odesílat, to mi přijde zbytečné. --- Každopádně asi nikdo neprokoukl to, co chci udělat :) Je možné, že to jde i návodem, který tu někdo psal, já si myslím, že spíš ne. Až to udělám, ukážu :) |
||
Časová prodleva: 16 let
|
0