Я действительно пытался выяснить эту проблему, но не добился успеха. На моем веб-сайте у меня есть две основные формы. Один для входа в систему и один для регистрации. Когда я тестировал код в Apache, он работал замечательно. Формы могут передавать входные данные на другую php-страницу и выполнять проверки. Но когда я переместил код на сервер хостинга, форма не смогла передать какие-либо данные (я убедился, что я набрал эти поля.) У меня действительно закончились идеи, что я сделал неправильно. Версия PHP в Apache - 5.4.7, а версия php в хостинге - 5.2.17. Ниже приведен код форм:
<form action="register_check.php" method="post" style="text-align:center">
<input type="text" name="username" class="form-control" autocomplete="off" placeholder="Username"/>
<input type="password" name="password" class="form-control" placeholder="Password"/>
<input type="password" name="password_again" class="form-control" placeholder="Please type the password again"/>
<input type="text" name="email" class="form-control" placeholder="Email"/><br/>
<input type="hidden" name="token" value="">
<input type="submit" name="register" class="btn btn-primary"/>
</form>
<form action="login_check.php" method="post" style="text-align:center">
<input type="text" name="username" class="form-control" autocomplete="off" placeholder="Username"/>
<input type="password" name="password" class="form-control" placeholder="Password"/>
<input type="hidden" name="token" value="">
<label
<input type="checkbox" name="remember" id="remember"> Remember Me
</label>
<input type="submit" name="login" class="btn btn-primary"/>
</form>
Когда я тестировал в Apache локально, данные могли успешно перейти на register_check.php или login_check.php, зависит от того, какую кнопку я нажал. Чтобы убедиться, что данные могут пройти, я написал это как на register_check.php, так и на login_check.php:
var_dump($_POST);
die();
Даже когда я ничего не ввел в поля, я получил массив назад:
array (6) {["username"] => string (0) "" ["password"] => string (0) "" ["password_again"] => string (0) "" ["email"] => string (0) "" ["token"] => string (0) "" ["register"] => string (6) "Отправить"}
Но теперь начинается моя головная боль. Я перевел точно такой же код на свой сервер хостинга. Я ничего не набрал в форме и нажал submit. Var_dump вернул мне этот результат:
array (0) {}
и даже когда я набрал что-то в поля ввода, это все равно дало мне тот же результат:
array (0) {}
Я действительно исчерпал идеи, что могло пойти не так. До того, как я подозревал, что версия PHP 5.2.17 может быть слишком старой, но для меня это невозможно, потому что это просто обработка формы.
Поэтому я надеюсь, что кто-нибудь скажет мне, что не так. Из-за этой странной проблемы я не мог спать. Спасибо огромное!
Есть ли .htaccess
на вашем реальном сервере? Если да, попробуйте удалить его и отправить свои данные снова.
Проверьте конфигурацию вашего сервера в реальном времени. Apache базово настроен для использования в разработке, поэтому почти все включено. Возможно, ваш Live-сервер заблокирован.
action
на/register_check.php
и/login_check.php
и посмотрите, поможет ли это.