Vkládání nechtěných mezer do URL

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Miky0007
Člen | 73
+
0
-

Ahoj neví prosím někdo co by mohlo způsobovat to že se mně do URL vkládají mezery navíc?
Př. chci se přihlásit, tak kliknu na tento odkaz:

<div class="prihlaseni" n:if="!$user->loggedIn">
                <a n:href="Sign:in">přihlásit</a>|<a n:href="Sign:up">registrovat</a>
            </div>

A místo tohoto:
http://satec.loc//sign/in
Mně to vloží do URL toto
http://satec.loc/%EF%BB%BF/sign/in
Takže nette temlate in vůbec nenajde…Blbnou jen dva odkazy..A když umažu ty mezery…Tak pak odkaz začne fungovat..(když na něj opětovně kliknu…mezery už nevloží)..Zbytek jede bez problému..
Dříve mně to normálně fungovalo, ale ted jsem asi něco zmršil a nemůžu přijít na to co..

Takto vypadá HTML odkazu:

<div class="prihlaseni">
               <a href="/sign/in">přihlásit</a>|<a href="/sign/up">registrovat</a>
           </div>

Editoval Miky0007 (20. 4. 2013 20:18)

Miky0007
Člen | 73
+
0
-

Ve firefoxu se mně na localhostu po kliku na přihlášení do URL vložilo toto:

http://127.0.0.1/satec/www/%EF%BB%BF/satec/www/sign/in

Editoval Miky0007 (20. 4. 2013 20:48)

Jan Tvrdík
Nette guru | 2595
+
0
-

%EF%BB%BF je BOM, ale teď mě nenapadá, jak by se tam dostal. Koukni na zkompilovanou šablonu.

Miky0007
Člen | 73
+
0
-

Mě je spíš divný, že to chvíli funguje a chvíli ne…Všechny odkazy fungují jak mají jen přihlášení a odhlášení blbne..

Šablona vypadá takto:

<?php //netteCache[01]000395a:2:{s:4:"time";s:21:"0.45607800 1366484271";s:9:"callbacks";a:2:{i:0;a:3:{i:0;a:2:{i:0;s:19:"Nette\Caching\Cache";i:1;s:9:"checkFile";}i:1;s:73:"C:\Program Files (x86)\EasyPHP-12.1\www\satec\app\templates\@layout.latte";i:2;i:1366484253;}i:1;a:3:{i:0;a:2:{i:0;s:19:"Nette\Caching\Cache";i:1;s:10:"checkConst";}i:1;s:25:"Nette\Framework::REVISION";i:2;s:30:"c0332ac released on 2013-03-08";}}}?><?php

// source file: C:\Program Files (x86)\EasyPHP-12.1\www\satec\app\templates\@layout.latte

?><?php
// prolog Nette\Latte\Macros\CoreMacros
list($_l, $_g) = Nette\Latte\Macros\CoreMacros::initRuntime($template, 'xerwptqzvo')
;
// prolog Nette\Latte\Macros\UIMacros
//
// block head
//
if (!function_exists($_l->blocks['head'][] = '_lb031f908ebf_head')) { function _lb031f908ebf_head($_l, $_args) { extract($_args)
;
}}

//
// end of blocks
//

// template extending and snippets support

$_l->extends = empty($template->_extended) && isset($_control) && $_control instanceof Nette\Application\UI\Presenter ? $_control->findLayoutTemplateFile() : NULL; $template->_extended = $_extended = TRUE;


if ($_l->extends) {
	ob_start();

} elseif (!empty($_control->snippetMode)) {
	return Nette\Latte\Macros\UIMacros::renderSnippets($_control, $_l, get_defined_vars());
}

//
// main template
//
?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8" />
	<meta name="description" content="Nette Framework web application skeleton" />
<?php if (isset($robots)): ?>	<meta name="robots" content="<?php echo htmlSpecialChars($robots) ?>" />
<?php endif ?>

	<title><?php Nette\Latte\Macros\UIMacros::callBlock($_l, 'title', $template->getParameters()) ?></title>

	<link rel="stylesheet" media="screen,projection,tv" href="<?php echo htmlSpecialChars($basePath) ?>/css/style.css" />
	<link rel="stylesheet" media="print" href="<?php echo htmlSpecialChars($basePath) ?>/css/print.css" />
	<link rel="shortcut icon" href="<?php echo htmlSpecialChars($basePath) ?>/favicon.ico" />
        <link rel="stylesheet" media="screen,projection,tv" href="<?php echo htmlSpecialChars($basePath) ?>/css/dark-hive/jquery-ui.css"  />
        <link rel="stylesheet" media="screen,projection,tv" href="<?php echo htmlSpecialChars($basePath) ?>/css/start/jquery-ui.css" />
        <link rel="stylesheet" media="screen,projection,tv" href="<?php echo htmlSpecialChars($basePath) ?>/css/ui-lightness/jquery-ui.css" />
        <script type="text/javascript" src="<?php echo htmlSpecialChars($basePath) ?>/js/jquery.js"></script>
        <script type="text/javascript" src="<?php echo htmlSpecialChars($basePath) ?>/js/jquery-ui.js"></script>
        <script type="text/javascript" src="<?php echo htmlSpecialChars($basePath) ?>/js/hlavni.js"></script>


	<script src="<?php echo htmlSpecialChars($basePath) ?>/js/netteForms.js"></script>
        <script src="<?php echo htmlSpecialChars($basePath) ?>/js/jquery.nette.js"></script>

	<?php if ($_l->extends) { ob_end_clean(); return Nette\Latte\Macros\CoreMacros::includeTemplate($_l->extends, get_defined_vars(), $template)->render(); }
call_user_func(reset($_l->blocks['head']), $_l, get_defined_vars())  ?>

</head>

<body>
  <div id="obal">
	<div id="logo">
        <div id="logo1"><h1> SATEC</h1></div>
<?php if (!$user->loggedIn): ?>            <div class="prihlaseni">
                <a href="<?php echo htmlSpecialChars($_control->link("Sign:in")) ?>
">přihlásit</a>|<a href="<?php echo htmlSpecialChars($_control->link("Sign:up")) ?>
">registrovat</a>
            </div>
<?php endif ;if ($user->loggedIn): ?>         <div class="prihlaseni">
               <a href="<?php echo htmlSpecialChars($_control->link("#")) ?>"><?php echo Nette\Templating\Helpers::escapeHtml($user->getIdentity()->nick, ENT_NOQUOTES) ?>
</a> |<a href="<?php echo htmlSpecialChars($_control->link("Sign:out")) ?>">odhlasit</a>
         </div>
<?php endif ?>

<?php $iterations = 0; foreach ($flashes as $flash): ?>            <div class="flash" class="flash <?php echo htmlSpecialChars($flash->type) ?>
"><?php echo Nette\Templating\Helpers::escapeHtml($flash->message, ENT_NOQUOTES) ?></div>
<?php $iterations++; endforeach ?>


        </div>
        <div id="menuObal">
            <div id="menu">
                <ul>
                    <li <?php try { $_presenter->link("Homepage:default"); } catch (Nette\Application\UI\InvalidLinkException $e) {}; if ($_presenter->getLastCreatedRequestFlag("current")): ?>
class="current"<?php endif ?> ><a href="<?php echo htmlSpecialChars($_control->link("Homepage:default")) ?>
">Úvodní stránka</a></li>
                    <li <?php try { $_presenter->link("Homepage:vzkazy"); } catch (Nette\Application\UI\InvalidLinkException $e) {}; if ($_presenter->getLastCreatedRequestFlag("current")): ?>
class="current"<?php endif ?>><a href="<?php echo htmlSpecialChars($_control->link("Homepage:vzkazy")) ?>
">Vzkazy</a><li>
                    <?php if ($user->isInRole('admin')): ?> <li <?php try { $_presenter->link("Sign:admin"); } catch (Nette\Application\UI\InvalidLinkException $e) {}; if ($_presenter->getLastCreatedRequestFlag("current")): ?>
class="current"<?php endif ?>><a href="<?php echo htmlSpecialChars($_control->link("Sign:admin")) ?>
">Admin</a><li><?php endif ?>

                    <?php if ($user->isAllowed(array('vzkaz', $user->id, 1), 'cist')): ?>
<li  <?php try { $_presenter->link("Homepage:projekce"); } catch (Nette\Application\UI\InvalidLinkException $e) {}; if ($_presenter->getLastCreatedRequestFlag("current")): ?>
class="current"<?php endif ?>><a href="<?php echo htmlSpecialChars($_control->link("Homepage:projekce")) ?>
">Projekce</a><li><?php endif ?>

                </ul>
            </div>

        </div>
        <div id="text">

<?php Nette\Latte\Macros\UIMacros::callBlock($_l, 'content', $template->getParameters()) ?>
        </div>
        <div id="neviditelny">
        </div>
       <div id="paticka">
        <p class="stredText"></p>

       </div>
    </div>
</body>
</html>
Miky0007
Člen | 73
+
0
-

Na produkčním serveru mně to zase url zmrší takto:
http://projekt-skola.php5.cz/…/www/sign/in

voda
Člen | 561
+
0
-

Není ten BOM v SignPresenteru? By se tam mohl dostat při načítání souboru kvůli tvorbě odkazu.

Miky0007
Člen | 73
+
0
-

Ted nějak nerozumím otázce..Kde by tam měl bejt?

hAssassin
Člen | 293
+
0
-

viz wiki. Rekl bych to bude tim. Nepouzivas vic editoru? To by vysvetlovalo proc to obcas dela a obcas ne. A zkontroluj vsechny presentery od Sign vyse (v hirerarchii) + latte od in.latte az po @layout.latte (pripadne vsechny ze kterych in.latte dedi). Jak bom najit viz odkaz vyse.

Miky0007
Člen | 73
+
0
-

Ano tak to bylo opravdu kódováním…SignPresenter měl nastaveno windows 1250 a ostatní UTF-8..Takže jsem to přeuložil do UTF-8 a už to šlape jak má…Děkuji moc za rady