COOKIE, созданный в php, неправильно прочитан в JAVASCRIPT - PullRequest
0 голосов
/ 09 марта 2019

У меня следующая проблема, я создаю cookie в PHP, а затем читаю его в javascript и распечатываю, и это происходит. Я не знаю, как это исправить. Пожалуйста, помогите.

Я прочитал печенье в javascript:

var micookie = (document.cookie.indexOf('resultado=') === -1 ? '' : ("; " + document.cookie).split('; resultado=')[1].split(';')[0]);

Итак, он создал cookie в PHP:

setcookie("resultado","success",time() + 1, "/kira");

И это печатается так, как вы можете видеть на изображении

Cerraste+sessi%C3%B3n 

Код, который создает уведомление

var i = -1;
var toastCount = 0;
var $toastlast;


var micookie = (document.cookie.indexOf('resultado=') === -1 ? '' : ("; " + document.cookie).split('; resultado=')[1].split(';')[0]);
var micookietipo = (document.cookie.indexOf('tipo_result=') === -1 ? '' : ("; " + document.cookie).split('; tipo_result=')[1].split(';')[0]);
micookietipo = decodeURIComponent((micookietipo + '').replace(/\+/g, '%20'))
var micookiedesc = (document.cookie.indexOf('desc_result=') === -1 ? '' : ("; " + document.cookie).split('; desc_result=')[1].split(';')[0]);
micookiedesc = decodeURIComponent((micookiedesc + '').replace(/\+/g, '%20'))


function alerta() {
  var shortCutFunction = micookie;
  var msg = micookiedesc || '';
  var title = micookietipo || '';
  var $showDuration = $(300);
  var $hideDuration = $(1000);
  var $timeOut = $(2000);
  var $extendedTimeOut = $(500);
  var toastIndex = toastCount++;
  var addClear = $('#addClear').prop('checked');
  toastr.options = {
    closeButton: false,
    debug: false,
    newestOnTop: false,
    progressBar: true,
    positionClass: 'toast-bottom-right' || 'toast-top-right',
    preventDuplicates: true,
    onclick: null
  };
  toastr.options.showEasing = 'swing';
  toastr.options.hideEasing = 'linear';
  toastr.options.showMethod = 'fadeIn';
  toastr.options.hideMethod = 'fadeOut';
  var $toast = toastr[shortCutFunction](msg, title); // Wire up an event handler to a button in the toast, if it exists
  $toastlast = $toast;

  if (typeof $toast === 'undefined') {
    return;
  }
};

if (typeof micookie !== 'undefined' && typeof micookietipo !== 'undefined' && typeof micookiedesc !== 'undefined') {
  alerta();
}

VALIDATE.PHP

    <?php
    $error = $_COOKIE['resultado'];

    if($error == 'error'){
    header("location: ../../index.php");
    } else {
    require_once "../biblioteca.php";
    session_start();

    $db = ConectaDb($dbHost, $dbUser, $dbPass, $dbName);

    $nombre=recoge("nombre");
    $email=recoge("email");
    $password=recoge("password");

    $consulta="SELECT * FROM users WHERE nombre='$nombre' AND email='$email' AND password='$password'";

    $result = $db->query($consulta);

    if (!$result) {
            print "<p>Error en la consulta.</p>\n";
    } 
    elseif ($result->fetchColumn() == 0) {
            setcookie("resultado","error",time() + 1, "/kira");
            setcookie("tipo_result","Datos incorrectos",time() + 1, "/kira");
            setcookie("desc_result","Usuario o contraseña incorrectos",time() + 1, "/kira");
            header("Location: ../../index.php");

    } 
    else {
            $consulta =  "SELECT * FROM users WHERE nombre = '$nombre'";
            $result = $db->query($consulta); 
            if (!$result) {
                print "    <p>Error en la consulta.</p>\n"; print "\n";
            } else {
                $consulta =  "SELECT * FROM users WHERE nombre = '$nombre'";
                $result = $db->query($consulta); 
                foreach ($result as $valor) {
                $tipo_usuario = $valor['tipo_usuario'];
                $foto = $valor['foto'];

                if($tipo_usuario == "admin"){  
                    setcookie("resultado","success",time() + 1, "/kira");
                    setcookie("tipo_result","Bienvenido Administrador $nombre",time() + 1, "/kira");
                    setcookie("desc_result","Has iniciado sessión correctamente",time() + 1, "/kira");
                    $_SESSION['tipo_user'] = 'administrador';
                    $_SESSION['usuario'] = $nombre;
                    $_SESSION['email'] = $email;
                    $_SESSION['fotoperfil'] = $foto;

                                        $carpeta = '../resources/musica/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                                        $carpeta = '../resources/voz/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                                        $carpeta = '../resources/luz/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                                        $carpeta = '../resources/comida/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                                        $carpeta = '../resources/foto/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                        header("Location: ../../panelcontrol_admin.php");
                return;
                }
                elseif($tipo_usuario=="user"){
                    setcookie("resultado","success",time() + 1, "/kira");
                    setcookie("tipo_result","Bienvenido Usuario $nombre",time() + 1, "/kira");
                    setcookie("desc_result","Has iniciado sessión correctamente",time() + 1, "/kira");
                    $_SESSION['tipo_user'] = 'usuario';
                    $_SESSION['usuario'] = $nombre;
                    $_SESSION['email'] = $email;
                    $_SESSION['fotoperfil'] = $foto;

                                        $carpeta = '../resources/musica/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                                        $carpeta = '../resources/voz/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                                        $carpeta = '../resources/luz/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                                        $carpeta = '../resources/comida/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                                        $carpeta = '../resources/foto/'.$nombre;
                    if (!file_exists($carpeta)) {
                        mkdir($carpeta, 0777, true);
                    }
                        header("Location: ../../panelcontrol_user.php");
                return;
                }
                }
            }

    }    
        $db = null;
    }
?>

1 Ответ

1 голос
/ 09 марта 2019

Вы можете декодировать строку в javascript следующим образом:

var micookie = (document.cookie.indexOf('resultado=') === -1 ? '' : ("; " + document.cookie).split('; resultado=')[1].split(';')[0]);

decodeURIComponent((micookie + '').replace(/\+/g, '%20'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...