在php中创建的COOKIE在JAVASCRIPT中被误读

时间:2019-03-09 20:13:03

标签: javascript php cookies

我遇到以下问题,我在PHP中创建了一个cookie,然后在javascript中读取并打印了它,并且发生了这种情况。我不知道如何纠正它。请帮忙。

我阅读了javascript中的cookie:

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

所以他用PHP创建了cookie:

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 个答案:

答案 0 :(得分:1)

您可以像这样在javascript中解码字符串:

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

decodeURIComponent((micookie + '').replace(/\+/g, '%20'))