Не получить массив $ _POST после отправки формы. PHP 5.6. Как это решить?

Иметь форму с методом = post, см. Ниже:

<form action="/includes/process.php" method="post">
<input type="hidden" name="breakDown" value="1" />
<input type="hidden" name="string" value="2" />
<a href="javascript:;" class="btn btn-primary itemCheckout add-cart formSubmitCheckout">Checkout</a>
</form>

И это JS, который отправляет форму, когда пользователь нажимает ссылку Checkout (<a>):

   $('.formSubmitCheckout').click(function() {
var t=$(this);
var isItemCheckout = t.hasClass('itemCheckout');
var form = t.parents('form');

if(!isItemCheckout) {console.log('testOk');console.log($('form').serialize());
form.submit();
}
});

Код перенаправляет нас в правильное местоположение process.php, как и должно быть, но массив $ _POST не создается. Это то, что я получаю в intellij:

Inisrir a descrição da imagem aqui

Я попробовал тот же процесс в Firefox и Safari, и результат тот же: нет $ _POST.

if (isset($_POST['string'])) { display something ...

Делать console.log($('form').serialize()); внутри $('.formSubmitCheckout'){... Я вижу переменную «строка» (это имя переменной) string=type%3Dpurchase%26priceAmo,

Итак, суть в том, что $ _POST не создается на стороне php в process.php.

Кто-то знает, что происходит и может объяснить, как это исправить?

0

Решение

Есть несколько решений:

1) вы можете использовать $ _REQUEST вместо $ _POST

2) проблема может быть в .htaccess. Чтобы это исправить, вы должны добавить это правило в htaccess:

RewriteRule ^includes/process.php - [PT]

3) убедитесь, что у вас есть права на чтение / запись для файла «includes / process.php». если так: sudo chmod 0777 includes/process.php

4) добавить атрибут: enctype="application/x-www-form-urlencoded" к вашей форме

5) проверьте свой php.ini. Там должен быть:
post_max_size = 8M
variables_order = "EGPCS"

затем перезагрузите сервер

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector