У меня была эта проблема в течение последних двух дней.У меня есть два файла на моем локальном хосте.http://localhost/project/sign-in.php и http://localhost/project/form-handle/index.php
Когда пользователь попадает на страницу входа, создается переменная сеанса
<?php
ob_start();
session_start();
$token = strtoupper(uniqid());
$_SESSION['token-string'] = $token;
Затем я помещаю значение сеанса в скрытое поле
<input type='hidden' name='token-string' value='<?php echo $token; ?>'>
Пока все хорошо.Однако когда я отправляю значения формы в http://localhost/project/form-handle/index.php и возвращаю значение сеанса строки токена, оно отличается от того, что находится в скрытом поле.Я использую JQuery AJAX для отправки запроса.Вот как я проверяю это на странице дескриптора формы:
<?php
ob_start();
session_start();
if(isset($_SESSION['token-string'])){
$token = $_SESSION['token-string'];
echo $token;
}
?>
Возвращаемое значение совершенно другое!Также важно знать, что возвращаемое неверное значение является строкой, сгенерированной функцией
strtoupper(uniqid());
Я что-то здесь не так делаю?Вот jQuery, который отправляет форму
$('#service-login').click(function (evt) {
evt.preventDefault();
var form = $('#Ads-Login');
var data = form.serialize();
var url = 'form-handle/index.php';
var method = form.attr('method');
$.ajax({
type: method,
url: url,
data: data,
success: function (response) {
alert(response);
},
error: function () {
}
})
});
HTML-форма здесь
<form action="" method="post" id="Ads-Login">
<div class="form-group">
<input type="email" name="email" id="" class="form-control" placeholder="Email Address">
</div>
<div class="form-group">
<input type="hidden" name="token-string" value="<?php echo $token; ?>">
<input type="password" name="Password" id="" class="form-control" placeholder="Account Password">
<a class="btn btn-white dark-grey-text font-bold ml-0" href="" id="service-login"><i class="fa fa-play mr-1"></i> Login</a>
</div>
</form>