$_REQUEST и setcookie устарели

Пожалуйста, помогите мне с этим вопросом. У меня есть скрипт и для админки он запрашивает файл "login.php" со следующим кодом:

<?
if($_COOKIE["ok"]==1){
    setcookie("user",$_REQUEST["name_theuser"]);
    setcookie("tipe",$_REQUEST["thetipe"]);
}else{
    echo "<script>document.location.href='disconnect.php';</script>";
}
echo "<script>document.location.href='bord.php';</script>";

?>

Как я понимаю из моих небольших знаний и поиска, они устарели в php 5.3.x

Признак состоит в том, что при правильном имени пользователя и пароле он не будет входить в систему, он не будет перенаправлен правильно.

Если кто-то может получить руку, это будет высоко ценится.

Спасибо!

2 ответа

Решение

Ваш JavaScript перенаправлен неправильно. У тебя есть document.location так должно быть window.location, $_REQUEST не амортизируется, но вы должны убедиться, что используете его правильно. Если ваша форма отправляется, убедитесь, что вы проверяете, установлена ​​ли кнопка отправки. На самом деле ваш код должен выглядеть примерно так, если вы используете $_POST метод, который является более безопасным:

<?php
session_start();
if(isset($_POST['submitButton']) && isset($_COOKIE['ok']) && $_COOKIE['ok'] === '1'){
  setcookie('user', $_POST['name_theuser']);
  setcookie('tipe', $_POST['thetipe']);
  //send a header or do your thing here
}
else{
  header('LOCATION:disconnect.php'); die();
}
?>

Мне также было непонятно, почему вы пытаетесь перенаправить, несмотря ни на что, внизу вашей страницы.

Примечание:

Вам не нужно использовать window.location.href =, Вы можете просто использовать window.location = как ярлык. Короче говоря, вы можете просто использовать location =, так как window неявно.

setcookie а также $_REQUEST не устарели. Проверьте: http://php.net/manual/en/migration53.deprecated.php

В зависимости от конфигурации вашего сервера $_REQUEST может быть недоступен, что, вероятно, происходит здесь. Это также предпочтительная конфигурация, потому что $_REQUEST воспринимается как плохой.

$_REQUEST это комбинированный ввод $_GET а также $_POST, Исправление состоит в том, чтобы заменить его на правильный.

Если вы пришли из формы с action="post" ваш вклад в $_POST, Если вы заходите на URL, как mysite/login.php?name_theuser=john&thetipe=foo тогда вы найдете свой вклад в $_GET,

Другие вопросы по тегам