"Server": Windows 7, desktop PC
The software is running on a local desktop PC with intranet. This workstation is used for testing purposes. PHPMyAdmin is accessed via http://localhost/ or its computers local IP address. Via a secundairy PC, PHPMyAdmin can be accessed too.
tbl_replace.php: Missing parameter: goto (Link: http://localhost/SQL%20phpMyAdmin/Documentation.html#faqmissingparameters\)
I startup any browser, IE or FF, on my workstation PC. Go to the address of PHPMyAdmin and select a already excisting database. In any database I select a random table, and try to insert a new row. No matter if i fill in information for the new row, the above error will appear.
Though!!! If i repeat the same above steps with from a secundairy PC, PHPMyAdmin functions normally and gives me the expected error that the sql Query is incorrect.
The check that causes the error "tbl_replace.php: Missing parameter: goto", is initiated on line 32 of tbl_replace.php:
"PMA_checkParameters(array('db', 'table', 'goto'));"
function PMA_checkParameters (line 2055 of common.lib.php), checks wherever $GLOBALS['goto'] exists.
The fact that false is returned (that is, $GLOBALS['goto'] is not set), means that $_POST['goto'] is not submitted to tbl_replace.php
The HTML source generated by "navigation.php?...." does however create a hidden field for goto:
<input type="hidden" name="goto" id="LeftDefaultTabTable" value="tbl_structure.php" />
Thus, or this is not submitted once pressed the submit button, or something is broke.
Printing the content of $_POST ABOVE line 28 of tbl_replace.php, tells me that $_POST['goto'] is submitted correctly. Thus, something is broke.
Printing the content of $_POST directly BELOW line 28, shows only a few values:
[db] => jeabsyweb_main
[table] => jb_mods
[lang] => en
which indicates that "./libraries/common.inc.php" has done something with the values of $_POST, and yes... after tracking down some code it seems $_REQUEST (a merge from $_POST and $_GET) handles over the goto value to $GLOBALS['goto'], so far, it works as expected.
However on line 516 of common.inc.php, $GLOBALS['goto'] had disappeared!
common.inc.php:516 = PMA_remove_request_vars($allow_list);
Since goto is not in the $allow_list, its being unset on line 25 of cleanup.lib.php
So, why does the script cleanup? well... the tokens are off :|
on line 489 of common.inc.php i added:
echo PMA_isValid($_REQUEST['token']) . '<br />';
echo $_SESSION['PMA_token'] . '<br />';
giving the result:
Since the problem lays in the tokens, I have removed all PHP session files. thought without success.
In order to solve my problem for now, i have disabled PMA_remove_request_vars by returning directly...
So, the actual bug is that the tokens are not corresponding on the workstation, while they are on the secundairy computer.
#1: config.inc.php does not contain $cfg['PmaAbsoluteUri'], so it is empty.
#2: Maybe you have a broken PHP installation or you need to upgrade your Zend Optimizer. Regarding the PHP bug, I do not have thisone on my workstation, nor is PHP acting weird in other scripts on the workstation.
#3 I do not use "Hardened PHP"
#4: php.ini "arg_separator.input" is currently set to ";&", thought "&" and "&;" do not solve the problem.
#5: I do not use "Hardened PHP"
#6: php.ini "session.save_path" is set, and to an existing directory. It also contains files which tells me it works correctly.
If i can provide extra information, I love to hear it.