Tema: PHP/galleta
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2009, 18:07
erick_perez
 
Fecha de Ingreso: agosto-2009
Mensajes: 95
Antigüedad: 15 años, 2 meses
Puntos: 0
PHP/galleta

saludos!!! perdon pero no sabia si revivir este post (porque ya habia creado un tema para el mismo objetivo) o crear uno nuevo, bien, llevo varios dias tratando de solucionar un problema con cookies, lo que necesito es "cachar" los datos del usuario, esto para que no tenga que hacer login cada vez que visite una pag diferente, el codigo que he empleado es el sigueinte :

Formulario html :

Cita:
<form action="validar_usuario.php" method="post">
<label>Usuario (mail):</label>
<input type="text" name="usuario" class="txtBox" />
<label>Password:</label>
<input type="password" name="password" class="txtBox" />
<input type="submit" name="go" value="" class="go" />
<a HREF="javascript:form('formulario.html')">&iexcl;& iexcl;registrate</a>
</form>
archivo validar_usuario.php

Cita:
<?php
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('usuario')or die ('Error al seleccionar la Base de Datos: '.mysql_error());


function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{

$usuario = $_POST['usuario'];
$password = $_POST["password"];
$result = mysql_query('SELECT mail_v,pass_v FROM visitantes WHERE mail_v=\''.$usuario.'\'');
if($row = mysql_fetch_array($result)){
if($row["pass_v"] == $password){

//creo las galletas----aqui me gustaria que la secion termine cuando el usuario cierre el navegador
setcookie("usuario",$usuario,time()+7776000);
setcookie("pass",$password,time()+7776000);

?>

<SCRIPT LANGUAGE="javascript">
location.href = "slectxpo1.php";
</SCRIPT>


<?
}
else{
echo "<script> alert (\"Password incorrecto.\"); </script>";
print "<meta http-equiv=Refresh content=\"2 ; url=index.php#login\">";
}

//si el usuario no existe en la BD o esta mal escrito su correo electronico
}

else{
echo "<script> alert (\"El usuario no existe en la Base de Datos... porfavor Registrate es .\"); </script>";
print "<meta http-equiv=Refresh content=\"2 ; url=index.php#login\">";
}

mysql_free_result($result);
}else{
echo "<script> alert (\"Debes colocar tu correo electronico como usuario y tu password en los cuadros de texto.\"); </script>";
echo "<script language=Javascript> location.href=\"index.php\"; </script>";
}
mysql_close();
?>

El siguiente archivo PHP es donde verifica si hay datos en la cookie, entra a la BD y compara registros con datos "cachados" que el usuario ha mandado atravez del formulario, de aqui mi problema por que no se si enverdad "cacha" los datos

archivo verificar.php

Cita:
<?php

mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('usuario')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

//variables para recuperar galleta
$loginCorrecto = false;
$usuario;
$password;

if(isset($HTTP_COOKIE_VARS["usuario"]) && isset($HTTP_COOKIE_VARS["pass"]))
{
$result = mysql_query("SELECT pass_v, mail_v FROM visitantes WHERE pass_v='".$HTTP_COOKIE_VARS["usuario"]."' AND password='".$HTTP_COOKIE_VARS["pass"]."'");

if($row = mysql_fetch_array($result))
{
setcookie("usuario",$HTTP_COOKIE_VARS["usuario"],time()+7776000);
setcookie("pass",$HTTP_COOKIE_VARS["pass"],time()+7776000);
$loginCorrecto = true; //DUDA AQUI--------ESTA VARIABLE PASA AL ARCHIVO acceso_login.php
$password = $row["pass_v"];
$usuario = $row["mail_v"];
}
else
{
//Destruirlas cookies.
setcookie("usuario","x",time()-3600);
setcookie("pass","x",time()-3600);
}
mysql_free_result($result);
}
mysql_close();
?>
Despues, aqui lo que hice es un archivo con el nombre de acceso_login.php el cual es invocado cada vez que el usuario oprima una liga a otra pag, por ejemplo, supongamos que un usuario ya se logio, al dar clic en "examen" en este boton puese una liga a acceso_login.php, lo que hace, es llamar a verificar.php para que le de resultados de la cookie

este es el archivo acceso_login.php

Cita:

<?php
//Coneccion con BD
mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('usuario')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

//llamada a login.php

include("verificar.php");

//aqui es donde tengo duda----------------
//si exixte la galleta con los datos del usuario, aparece un archivo php diferente,
if(isset($loginCorrecto)
{
print "<meta http-equiv=Refresh content=\"2 ; url=archivo.php\">";
}
else
{
echo "Area restringida, solo usuarios registrados";
}
?>

no marca error ni nada de nada, y no se si "cache" los datos del usuario, he tratado de imprimir la cookie pero la pag sale en blanco cada vez que lo intento, alguien me puede decir que tengo que hacer ? Ayudaaa!!!!!