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í.