Fórum Root.cz
		Ostatní => O serveru Root.cz => Téma založeno: RDa  12. 11. 2012, 10:38:25
		
			
			- 
				Pri pokusu o odpoved ve foru jsem skoncil na:
 
 Numeric request keys are invalid.
 
 Nebyt TCPDUMPu a "try again" ve firefoxu, tak bych se hodne nastval... neslo pak zalozit ani nove tema, musel jsem smazat session/domain cookies.
 
 Proc se neumi Vas web vzpamatovat z nejake podobne chyby vytvorenim nove session? Nebyt funkce na mazani cookies v prohlizeci, tak je Vas web nepouzitelny :(
- 
				Tohle se tu už řešilo několikrát. Shrnu, co o tom víme.
 
 - Je to zjevně problém v SMF, což je software, který tvoří tohle fórum.
- Podle všeho je to tak, že si fórum (nebo nějaká funkce v PHP?) občas vygeneruje špatnou cookie, se kterou pak odmítne pracovat. Po smazání se vygeneruje cookie znovu a už většinou správně.
- Naši vývojáři to několikrát zkoumali a na nic kloudného nepřišli. Objevili jen nějakou kontrolu, která tam byla kvůli jakési staré chybě v PHP. Ta chyba už není aktuální, kontrolu smazali a stejně to tu chybu hází.
- Když to dáte do Google, najdete spoustu otázek, ale žádnou odpověď. Trápí to očividně hodně lidí a je to záhada.
- Pokud umíte (nejen tazatel, to je obecná výzva) programovat v PHP a umíte zjistit, čím to je, budeme jen rádi, když dostaneme konkrétní tip. Ona by stačila možná i ta vadná cookie.
 
- 
				// Clean the request variables - add html entities to GET and slashes if magic_quotes_gpc is Off.
 function cleanRequest()
 {
 global $board, $topic, $boardurl, $scripturl, $modSettings, $smcFunc;
 
 // Makes it easier to refer to things this way.
 $scripturl = $boardurl . '/index.php';
 
 // What function to use to reverse magic quotes - if sybase is on we assume that the database sensibly has the right unescape function!
 $removeMagicQuoteFunction = @ini_get('magic_quotes_sybase') || strtolower(@ini_get('magic_quotes_sybase')) == 'on' ? 'unescapestring__recursive' : 'stripslashes__recursive';
 
 // Save some memory.. (since we don't use these anyway.)
 unset($GLOBALS['HTTP_POST_VARS'], $GLOBALS['HTTP_POST_VARS']);
 unset($GLOBALS['HTTP_POST_FILES'], $GLOBALS['HTTP_POST_FILES']);
 
 // These keys shouldn't be set...ever.
 if (isset($_REQUEST['GLOBALS']) || isset($_COOKIE['GLOBALS']))
 die('Invalid request variable.');
 
 // Same goes for numeric keys.
 foreach (array_merge(array_keys($_POST), array_keys($_GET), array_keys($_FILES)) as $key)
 if (is_numeric($key))
 die('Numeric request keys are invalid.');
 taky mi to dělá ve Firefoxu :-P
- 
				Dobrý den,
 
 Petr přesně a věcně shrnul vše, co o problému víme. Bohužel má pravdu i v tom, že navzdory mnoha reportům této chyby (nejen) v SMF nebyla jejími autory opravena. Mysleli jsme, že jsme problém dílčími úpravami odstranili, ale pravděpodobně byl jen potlačen a občas se vrací. Odstranil jsem tedy teď ze SMF celou část kódu, která provádí test a vede k tomuto výsledku - podle našich informací už pro aktuální verze PHP nemá smysl. Snad to chybu definitivně odstraní.