Autor Zpráva
joe
Profil
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
pozri si echo phpinfo() a tam si nájdi serverovú premennú, v ktorej je adresa a použi na ňu funkciu strstr
Alphard
Profil
teď si nejsem úplně jistý, ale kotvu v PHP zjistit nelze, předpokládm, že # taky ne
Chamurappi
Profil
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
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
Reaguji na joa:
Přesměrováním, <iframe>m nebo XMLHttpRequestem.
joe
Profil
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
A zkoušel jsi to?
prepáč, neskúšal, jasne, že to nefunguje. bol to iba taký "narýchlo" nápad...
Greeg
Profil
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
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
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
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
Izzi
četl jsi tohle?
Část adresy počínaje znakem „#“ se vůbec neposílá na server.

nejde to
bukaj
Profil
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
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
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
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
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
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
bukaj
Kvůli ajaxu...
Timy
Profil
joe
Pokud je to kvůli ajaxu, tak to na stránce zase Ajaxem zpracuj :-).
bukaj
Profil
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
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
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
'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 :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: