Problemita al crear Cookie

Iniciado por dimitrix, 9 Abril 2011, 15:59 PM

0 Miembros y 1 Visitante están viendo este tema.

dimitrix

A ver, se que las cookies al crear se tienen que poner lo más arribla posible, pero no puedo ponerlo más arriba que el if y no me funciona entonces :-/

Código (php) [Seleccionar]
<?php
include("configuracion.php");
 
$cuenta=$_POST[cuenta];
 
$pass=sha1($_POST[contra]);

##########  SQL   ##################
$sql="SELECT * FROM usuario WHERE Usuario='".$cuenta."' AND Passhash='".$pass."'";
$resultado mysql_db_query($db_name$sql);
$valor mysql_fetch_array($resultado);

########  FIN SQL   ################

if($valor["Cookie"]==NULL){
echo(
'<font color="red">Disculpe, los datos introducidos no coenciden</font>');
}else{
setcookie ("identificado""yes"time () + 604800);
};


A ver si me podeis ayudar :-)




Nakp

existe la columna cookie en la tabla?

simplemente deberias comprobar que la cantidad de filas que devuelva la query sea 1 y entonces setear las cookie, si no el echo :P

ademas tienes un error aqui:

Código (php) [Seleccionar]
$cuenta=$_POST[cuenta];
$pass=sha1($_POST[contra]);


faltan las comillas :P mejor deberias postear el error que te da tu script :P
Ojo por ojo, y el mundo acabará ciego.

dimitrix

Cita de: Nakp en  9 Abril 2011, 21:27 PM
existe la columna cookie en la tabla?

simplemente deberias comprobar que la cantidad de filas que devuelva la query sea 1 y entonces setear las cookie, si no el echo :P

ademas tienes un error aqui:

Código (php) [Seleccionar]
$cuenta=$_POST[cuenta];
$pass=sha1($_POST[contra]);


faltan las comillas :P mejor deberias postear el error que te da tu script :P


1. No me da ningún error, simplemente no se crea la Cookie.
2. Si está en la DB, no tengo problemas con eso.
3. el problema es que si pongo arriba el 'setcookie' se crea y si lo pongo abajo no (y lo necesito poner abajo).




WHK

Intenta así:

Código (php) [Seleccionar]
<?php
include(dirname(__file__).'/configuracion.php');

if(
$res mysql_query('
select * from usuario where
Usuario="'
.mysql_real_escape_string($_POST['cuenta']).'" and
Passhash="'
.mysql_real_escape_string(sha1($_POST['contra'])).'"
limit 1
'
)){
//$valor = mysql_fetch_array($resultado); /* Para que? */
mysql_free_result($res);
if(headers_sent())
echo '<span style="color:red;font-weight:bold;">Imposible crear una nueva cabecera.</span>';
else
setcookie ('identificado''yes'null'/');
}else{
?>

<span style="color:red;font-weight:bold;">Disculpe, los datos introducidos no coenciden</span>
<?php ?>


Recuerda que no puedes declarar una cookie si ya has enviado texto en la webya que esta se declara en el header y el header se envía una sola ves.

dimitrix

Hola WHK, te comento, realmente lo del setcookie de antes era de prueba, pero en verdad se mete el valor que saco de la consulta (de ahí la consulta), a ver si me puedes ayudar please.

PD: Y gracias (este sería el bueno que no funciona.

Código (php-brief) [Seleccionar]
<?php
include("configuracion.php");
 
$cuenta=$_POST[cuenta];
 
$pass=sha1($_POST[contra]);
 
##########  SQL   ##################
$sql="SELECT * FROM usuario WHERE Usuario='".$cuenta."' AND Passhash='".$pass."'";
$resultado mysql_db_query($db_name$sql);
$valor mysql_fetch_array($resultado);
 
########  FIN SQL   ################

if($valor["Cookie"]==NULL){
echo(
'<font color="red">Disculpe, los datos introducidos no coenciden</font>');
}else{
setcookie ("identificado"$valor["Cookie"], time () + 604800);
};




dimitrix

Bien, ya lo solucioné de una forma mucho más ordenada:

Código (php-brief) [Seleccionar]
<?php
include("config.php");
include(
"funciones.php");

 
$cuenta=$_POST[cuenta];
 
$pass=$_POST[contra];

//Comprueba/mira/elimina Cookies 
if($_COOKIE["valorco"]==NULL){
//si no existe cookie

if($cuenta != NULL || $pass != NULL){ //FC

$cook=SacarCookie(limpiasql($cuenta),limpiasql($pass));

if($cook != NULL){
setcookie ("valorco"$cooktime () + 604800);
}else{
echo('<font color="red">Disculpe, los datos introducidos no coenciden</font>');
};
};
};


Gracias por la ayuda igualmente.