URL se vkládá za konec existující
- Pepča
- Člen | 12
Ahoj,
mám obyčejné routy, podobných jste viděli jistě miliony:
<?php
$router[] = new Route('admin/<presenter>/<action>/<id>', array(
'module' => ':Admin',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL
), Route::SECURED);
$router[] = new Route('index.php', array(
'module' => 'Front',
'presenter' => 'Default',
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>/<id>', array(
'presenter' => ':Front:Default',
'action' => 'default',
'id' => NULL,
));
?>
vygenerují mi obyčejné odkazy, podobných jste již viděli jistě miliardy:
<a href="http://localhost/nejaky-web/document_root/
admin.default/nejaka-sablona1/">nejake misto1</a>
<a href="http://localhost/nejaky-web/document_root/
admin.default/nejaka-sablona2/">nejake misto2</a>
Otákzou zůstává, jestli jste už viděli, aby se (nacházíme se ve front modulu) spodní URL přidával za existující URL, přestože první i ostatní fungují na 100%:
tzn, že se mi neodkáže na:
„http://localhost/nejaky-web/document_root/admin.default/nejaka-adminska-sablona“
ale na:
„http://localhost/wg-acl/document_root/front.default/uplne-jedno-co/http://localhost/nejaky-web/document_root/admin.default/nejaka–adminska-sablona“
To nechápu. Podezříval jsem SimpleRouter, ale nevimnevim :( Poraďte prosím jak to odstranit.
EDIT: Ještě bych mě dodat, že to nejprve fungovalo, ale pak najednou začne dělat tyhle psí kusy a nechce přestat :O
PHP 5.2.6
Apache/2.2.10 (Win32) PHP/5.2.6
Nette Framework 1.0-dev (revision 1ac0863 released on 2010–07–01)
Editoval Pepča (23. 10. 2010 23:06)
- mancze
- Člen | 58
A jak přesně vypadá vygenerovaný zdroj HTML? Zkus tu admin routu
linkovat absolutně, jestli to pomůže ({link //Admin:...}
).
Je divný, že to je SECURED routa a přesto i v tom zmršeném URL není o https ani ň.
Edit:
teoreticky by tebou popisovanou chybu mohl generovat Latte kód:
<a href="./{link Admin:Presenter:go}">Administrace</a>
Editoval mancze (23. 10. 2010 23:15)
- Pepča
- Člen | 12
tak jsem zjistil (světe div se, pomocí IE), že se za předchozí výsledný HTML kód není takový, jak se zdá. Totiž před ony adresy jsou vloženy prázdné znaky, které Opera vykreslí jako "" (hodnota mezi uvozovkami, tedy nic). Ovšem IE místo nich hodí „?“:
<a href="???https://localhost/web/document_root/secured/nastaveni/">Nastavení</a>
<a href="?https://localhost/web/document_root/secured/">Administrace</a>
Podle mě to je UTF-8 šotek, který je tam hází…zkusím přepsat kód…ale kdyžtak můžete dumat nad tím, co by mohlo pomoct, kdyby přepsání nevyšlo :D
Nevyšlo :/ nicméně další fakt: postižené jsou 2. a 3. odkazy. 1., 4. až x-tý jsou v pořádku. tudíž jsem to „vyřešil“ tím, že 2. a 3. odkaz hodím jako prázdné (takže se nezobrazí)…
Editoval Pepča (24. 10. 2010 20:15)