在php中创建的COOKIE在JAVASCRIPT中被误读
我有下面的问题,我用PHP创建了一个cookie,然后用javascript读取并打印它,这就发生了。我不知道如何纠正它。请帮忙 我用javascript阅读cookie:在php中创建的COOKIE在JAVASCRIPT中被误读,javascript,php,cookies,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
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;
}
?>
您可以在javascript中解码字符串,如下所示:
var micookie = (document.cookie.indexOf('resultado=') === -1 ? '' : ("; " + document.cookie).split('; resultado=')[1].split(';')[0]);
decodeURIComponent((micookie + '').replace(/\+/g, '%20'))
time()+1
表示cookie在一秒钟后被销毁我知道,我需要这个,正在工作。无法正确处理文本请尝试将其设置更长时间,看看是否可以用PHP阅读。并包含更多的PHP代码。我们需要查看setcookie函数的所有内容PHP正在子目录上设置cookie。我怀疑您看到的是根目录中的cookie,因为子目录cookie已过期。setcookie已启动,全部在这里。cookie的内容是这个Cerraste Sesión,但是JAVASCRIP阅读这个,打印其他文本,这个Cerraste+sessi%C3%B3nI现在将尝试。谢谢你的欢迎。如果这个答案是你想要的,请将它标记为最佳答案。谢谢@davidricopw这跟它有什么关系?问题不在于编码,而是值完全错误。@Barmar不,值没有错。我对它进行了测试,结果证明它是关于编码的。因为David使用的是普通英语字母以外的其他字符,所以cookie应该包含success
。这里面有什么特别之处?