Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Inserta valor vacio de COOKIE

Estas en el tema de Inserta valor vacio de COOKIE en el foro de PHP en Foros del Web. Buenas. Llevo dos horas con esto y no doy con el fallo... Se trata de un codigo para votar productos. Se puntua de 1 a ...
  #1 (permalink)  
Antiguo 23/09/2014, 10:22
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años
Puntos: 4
Inserta valor vacio de COOKIE

Buenas.
Llevo dos horas con esto y no doy con el fallo...
Se trata de un codigo para votar productos.
Se puntua de 1 a 5,

votar.php
Código PHP:
            <table id='tabla-votacion' cellspacing='10'>
                  <
tr>
                    <
td id='tabla-voto'><a href='enviar-voto-ac.php?Nombre=$nombrea&ID=$ide&valor=1'>1</a></td>
                       <
td id='tabla-voto'><a href='enviar-voto-ac.php?Nombre=$nombrea&ID=$ide&valor=2'>2</a></td>
                    <
td id='tabla-voto'><a href='enviar-voto-ac.php?Nombre=$nombrea&ID=$ide&valor=3'>3</a></td>
                    <
td id='tabla-voto'><a href='enviar-voto-ac.php?Nombre=$nombrea&ID=$ide&valor=4'>4</a></td>
                    <
td id='tabla-voto'><a href='enviar-voto-ac.php?Nombre=$nombrea&ID=$ide&valor=5'>5</a></td>
                  </
tr>
            </
table
y cuando pinchas en alguna puntuacion se carga el siguiente codigo:

enviar-voto-ac.php
Código PHP:
<?php
include("acceso.php");
//    Nos conectamos a phpmyadmin
$conectar mysql_connect($dbhost$dbuser$dbpasswd);
//    Comprobamos que  nos pudieramos conectar a phpmyadmin
if (!$conectar) {
die(
'No se pudo conectar a la base: ' mysql_error());
}
//    Nos conectamos a la base
mysql_select_db($dbname);
//Establecemos variables
date_default_timezone_set('Europe/Madrid');
setlocale(LC_ALL,"es_ES@euro","es_ES","esp");
$id$_GET['ID'];
$nombre $_GET['Nombre'];
$valor $_GET['valor'];
$fecha2=date("Y-m-d H:i:s");

//Insertamos el voto
$sql "UPDATE Ac
        SET total_value = total_value + '$valor',
        total_votes = total_votes + 1
        WHERE IDA = '$nombre' AND ID = '$id'"
;
$result=mysql_query($sql$conectar);

if(
mysql_affected_rows()>0){
//Si se guarda, insertamos voto

$usuario $_COOKIE['nombre'];
$nuevo="INSERT INTO VotosAc (Voto, Usuario, IDA, IDA2, Registro) VALUES ('$valor', '$usuario', '$nombre', '$id', '$fecha2')";
$nuevor=mysql_query($nuevo$conectar);
    if(
mysql_affected_rows()>=1){
    
header ("Location: ".$_SERVER['HTTP_REFERER']);
    }
    else{
    echo
"<script>document.location='index.php?info=voto-error'</script>";
    }
}
else{
echo
"<script>document.location='index.php?info=voto-error'</script>";    
}

?>
El problema es que consulto la tabla VotosAc y se insertan correctamente todos los datos menos el campo Usuarios que se queda vacio.

He comprobado que la cookie esta bien haciendo echo $_COOKIE['nombre'] y me devuelve el nombre de usuario.

Pero no entiendo que no inserte el nombre de usuario, alguna idea?
  #2 (permalink)  
Antiguo 23/09/2014, 12:24
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Inserta valor vacio de COOKIE

Si tienes el nombre en una cookie, tómalo de la cookie al registrar el voto, porque ahora lo estás enviando por GET, no tiene caso.

De hecho, tanto la cookie como los valores de GET son fácilmente manipulables, pero no parece que requieras mucha seguridad en este caso.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 23/09/2014, 12:34
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años
Puntos: 4
Respuesta: Inserta valor vacio de COOKIE

He probado a no pasarlo por la variable $usuario y en VALUES poner directamente $_COOKIE['nombre'] pero tampoco funciona.
  #4 (permalink)  
Antiguo 23/09/2014, 12:49
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: Inserta valor vacio de COOKIE

pues entonces fijate si esta bien escrito el campo, veo que esta con una mayuscula, el campo debe de ser exacto como esta escrito en la bd
  #5 (permalink)  
Antiguo 23/09/2014, 12:56
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años
Puntos: 4
Respuesta: Inserta valor vacio de COOKIE

Si, los campos se corresponden.

"Lo he solucionado".
Para votar con un 3 tenias que hacer clic en este enlace

<a href='http://www.miweb.es/enviar-voto-ac.php?Nombre=$nombrea&ID=$ide&valor=3'>3</a>

Al ponerlo asi:

<a href='enviar-voto-ac.php?Nombre=$nombrea&ID=$ide&valor=3'>

Si funciona.
Fallo tonto :(
  #6 (permalink)  
Antiguo 23/09/2014, 13:02
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: Inserta valor vacio de COOKIE

no veo la diferencia entre un enlace y otro pero bueno si te funca esta bien
  #7 (permalink)  
Antiguo 23/09/2014, 13:13
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 11 años
Puntos: 4
Respuesta: Inserta valor vacio de COOKIE

Yo tampoco la verdad, pero ha sido modificar eso y funciona.

Etiquetas: inserta, mysql, registro, select, sql, tabla, usuarios, vacio, valor, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:02.