Hola chicos... tengo un problema grande con un sistem de usuarios que estoy haciendo.. el tema es que cuando el usuario se loguea genera la cookie (lo veo por medio de echo) pero cuando la llamo desde otro archivo php no la reconoce.... todo esto pasa online... localmente funcionaba bien... tengo en el archivo de conexion con la db el codigo session_start() para que me la levante cada vez que inicia alguna pagina pero tampoco funciona... les muestro los scripts
Archivo LOGIN.PHP (es el que recibe los datos de la form cuando se loguean)
Código PHP:
<?php
include_once ("mysql_config.php");
$username = strtolower($_POST['nickname']);
$password = strtolower($_POST['password']);
if ($username == "")
{
//echo "My name is login.php and i'm not stupid!";
$msj_usuario = "Debes ingresar un usuario.";
include ("../index.php");
die();
}
if ($password == "")
{
//echo "My name is login.php and i'm not stupid!";
$msj_usuario = "Debes ingresar la clave.";
include ("../index.php");
die();
}
/*// Comprobamos los datos
$link = mysql_connect($db[host],$db[username],$db[password]) or die("MySQL Say: Error connecting to the database.");
mysql_select_db($db[name],$link) or die("MySQL Say: Error selecting database.");*/
$query = mysql_query("SELECT password FROM $db[prefix]_data WHERE nick = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] == $password)
{
$_SESSION["user"] = $username;
// Crea la cookie y actualiza le nonce (md5 aleatorio para hacerlo más seguro.)
$nonce = md5(uniqid(rand(), true));
setcookie("nonce", $nonce, time() + 7776000);
$COOKIE = $_COOKIE["nonce"];
echo "COOKIE EN LOGIN:".$COOKIE;
$query = mysql_query("UPDATE $db[prefix]_data SET nonce = '$COOKIE' WHERE nick = '$username'")or die(mysql_error());
echo $_SESSION["user"];
$msj_usuario = "Log ok.";
?>
<SCRIPT language="JavaScript">
history.back(top)
//window.location="../index.php";
</script>
<?php
//include ("../../users/".$username."/index.php");
} else{
// echo "fail";
}
$msj_usuario = "Tu usuario no coincide con la contraseña.";
include ("../index.php");
?>
Archivo CHECK_USER.PHP (Checkea que el usuario este logueado)
Código PHP:
<?php
include_once ($index."mysql_config.php");
echo "COOKIE EN check_user: ".$_COOKIE['nonce']."<br>";
echo $_SESSION["user"];
function is_login() {
// Comprobamos si existe sesión
if(isset($_SESSION["user"])) return true;
//Comprobamos si hay cookie, si está bien y le asignamos una sesión
if(isset($_COOKIE["nonce"])) {
//$cookie = mysql_real_escape_string($_COOKIE["nonce"]);
$COOKIE = mysql_real_escape_string($_COOKIE["nonce"]);
echo "COOKIE EN check_user2:".$COOKIE."<br>";
$query = mysql_query("SELECT * FROM $db[prefix]_data WHERE nonce='$COOKIE'") or die(mysql_error());
$data = mysql_fetch_array($query);
if(isset($data['nick'])) {
$_SESSION["user"] = $data["nick"];
return true;
echo "OK";
$is_login="true";
die;
}
}
echo "MAL"."<br>";
echo "COOKIE NAME MAL: ".$_COOKIE ['nonce']."<br>";
echo "SESION NAME: ".$_SESSION["user"]."<br>";
$is_login="false";
return false;
die;
}
if(is_login()) {
// AquÃ* añadimos cualquier contenido que queramos que vean los usuarios registrados
//echo "Hola <strong>".$_SESSION["user"]."</strong>, ya estás dentro";
//echo "<a href='../db/logout.php'>Desconectar »</a>";
$is_login=="true";
echo "login OK";
}else{
$is_login !="true";
echo "mal login";
}