Я думаю, что существует или ошибка в моем коде, или мой PHP или Apache настраиваются неправильно.
Когда я отправляю форму со скрытым полем в нем, я не получаю данных в своем $ _POST массив...
Когда я комментирую скрытое поле в своем коде, данные POST возвращаются правильно...
HTML-ФОРМА
<form action='/utils/login.php ' method='POST'>
<table>
<tr>
<td colspan='2'>
Login
</td>
</tr>
<tr>
<td>
Username
</td>
<td>
<input type='text' name='userid' value='' size='12' />
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input type='password' name='password' size='12' />
</td>
</tr>
<tr>
<td>
<input type='hidden' name='formtype' value='login' />
</td>
</tr>
<tr>
<td>
<input type='submit' value='Submit' />
</td>
</tr>
</table></form>
Вот код, который обрабатывает его в PHP...
foreach ($_POST as $var => $value) {
echo "$var = $value<br>";
}
Я использую PHP 5 и Apache 2.2 на моем сервере.
Какие-либо идеи?
Править...
Я сузил его к этому...
$command = $_POST['formtype'];
Когда я удалил знак от моего $ _POST, я получаю следующую ошибку...
Уведомление: Неопределенная переменная: formtype в C:\webroot\utils\login.php на строке 17
Если я комментирую ту строку, данные POST передаются в программу без проблемы.
Я бы посоветовал изменить код, который вы используете для отображения содержимого $ _ POST
, на один вызов:
print_r($_POST);
Каждый раз, когда вы показываете все содержимое массива , это лучше, чем цикл с эхом, поскольку он покажет каждое значение на каждом уровне массива.
Кроме того, как было упомянуто в комментарии, убедитесь, что вы закрыли форму в html.
Вы никогда не закрывали свой тег
.
И теперь я вижу, что кто-то опередил меня в комментариях. Тем не менее, это правильный ответ.