Hola amigos,
Tengo un problema con un script que compré, ya he resuelto varios fallos que daba pero como no tengo muchos conocimientos de scripts esto se me resiste, y quizás sea una tontería, pero ya estoy desesperado y veo que cómo no lo arregle perdí dinero tontamente :(. La web es:
http://www.noticion.net
Resulta que cuando un usuario entra en su cuenta, la sesión entra y sale como le da la gana. Se supone que al estar logeado arriba aparece "gestionar mis anuncios/salir/contacto", pero si te logeas y vuelves a la página principal a veces cambiar de nuevo a "acceder a mi cuenta/contacto". Luego refrescas y de repente vuelves a estar logeado, luego entras en la página de contacto y vuelve a deslogearse, hace cosas muy raras. Podéis probarlo:
noticion.net/acceder
usuario:
[email protected]
contraseña: noticion
Lo mismo pasa al deslogearse. Cuando le doy a salir parece que no hace efecto, sigue igual de logeado, pero le das a gestionar anuncios y los anuncios no aparecen y deslogea, de nuevo no funciona bien.
Sé que debería funcionar bien porque en la demo original sí funciona y no pasan estas cosas. Los scripts son:
En el main para los enlaces está:
Código:
<div id="header_main"><a href="" ><h1><? echo $h1SEO; ?></h1></a><div id="nav"><ul><? if(!isset($_SESSION['mail'])){ ?><li><a href="acceder" rel="nofollow">Acceder a mi Cuenta</a></li><? }else{ ?><li><a href="mis-anuncios" rel="nofollow">Gestionar Mis Anuncios</a></li>
<li><a href="salir" rel="nofollow">Salir</a></li>
<? } ?><li class="n"><a href="contactar" rel="nofollow">Contacto</a></li></ul></div><div class="h2"><? echo $h2SEO; ?></div></div>
el script del login es:
Código:
<?php
error_reporting(0);
require_once('../content/config.php');
require_once('sql.php');
if(isset($_POST['mail']) && !isset($_SESSION['mail'])){
$mail = mysql_real_escape_string($_POST['mail']);
$pass = md5($_POST['pass']);
$result = recoger("usuarios", $a=array('email' => $mail, 'pass' => $pass), "");
if(count($result) != 0){
@session_start();
$_SESSION["id_usuario"] = $result[0]['id_usuario'];
$_SESSION["mail"] = strtolower($result[0]['email']);
$_SESSION["pass"] = $result[0]['pass'];
$sesion = $_SESSION["id_usuario"] . "." . $_SESSION["mail"];
setcookie("sesion", $sesion, time()+5184000, "/", "noticion.net");
if($result[0]['chpass']!=1){$url = "../../index.php";}else{$url="../../cambiar-pass/";}
}else{
$url = "../../acceder";
}
}else{
$url = "../../acceder";
}
echo '<script type="text/javascript">
location.href = "'.$url.'";
</script>';
?>
El script del logout es:
Código:
<?php
@session_start();
error_reporting(0);
require_once('../content/config.php'); // Aqui me conecto a BD (funtion connectar)
setcookie ("sesion", "", time()-5184000 , "/", "noticion.net");
session_destroy();
echo '<script type="text/javascript">
location.href = "../../index.php";
</script>';
?>
Parece ser que hay algo mal en la configuración.
¿Algún alma caritativa puede echarme una mano? :confused:
Si necesitáis que adjunte algo más no hay problema