$ _POST может передавать данные на локальный хост, но не на живой сервер

0

Я действительно пытался выяснить эту проблему, но не добился успеха. На моем веб-сайте у меня есть две основные формы. Один для входа в систему и один для регистрации. Когда я тестировал код в 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 может быть слишком старой, но для меня это невозможно, потому что это просто обработка формы.

Поэтому я надеюсь, что кто-нибудь скажет мне, что не так. Из-за этой странной проблемы я не мог спать. Спасибо огромное!

  • 0
    этот код работает для меня
  • 0
    Попробуйте изменить атрибут action на /register_check.php и /login_check.php и посмотрите, поможет ли это.
Показать ещё 3 комментария
Теги:
forms

2 ответа

1
Лучший ответ

Есть ли .htaccess на вашем реальном сервере? Если да, попробуйте удалить его и отправить свои данные снова.

  • 0
    Огромное спасибо. Это работает сейчас. Я пытался решить эту проблему сам и потратил 5 часов на просмотр кодов. Все еще трудно поверить, что удаление .htaccess решает все проблемы. Спасибо!
1

Проверьте конфигурацию вашего сервера в реальном времени. Apache базово настроен для использования в разработке, поэтому почти все включено. Возможно, ваш Live-сервер заблокирован.

  • 0
    Огромное спасибо. Я думаю, вы правы. Конфигурация в .htaccess отличалась от конфигурации в Apache. Я удалил .htaccess, и это решило проблему. Спасибо еще раз.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню