Foros del Web » Programando para Internet » PHP »

error de código en UPDATE

Estas en el tema de error de código en UPDATE en el foro de PHP en Foros del Web. Estoy tratando de que los usuarios tengan que meter su correo electrónico para iniciar sesión, pero al guardarlo me da el error, You have an ...
  #1 (permalink)  
Antiguo 14/06/2006, 04:35
 
Fecha de Ingreso: marzo-2003
Mensajes: 225
Antigüedad: 14 años, 9 meses
Puntos: 0
error de código en UPDATE

Estoy tratando de que los usuarios tengan que meter su correo electrónico para iniciar sesión, pero al guardarlo me da el error,

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '@a.a, visita = CURDATE(), ip = 'xx.xx.xxx.xx', contador = conta,
¿me podéis echar una mano?
gracias


Código PHP:
<?php
if (isset($checkbox)) {
setcookie("usu"$usernametime()+86400*30);
setcookie("pas"$passwordtime()+86400*30);
setcookie("correo"$correotime()+86400*30);
}
?>
<?php
session_start
(); 
?>
<?php 
require_once('../Connections/zona.php'); ?>
<?php
$IP 
$REMOTE_ADDR
$myUsername_rsLogin "0";
if (isset(
$HTTP_POST_VARS['username'])) {
  
$myUsername_rsLogin = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['username'] : addslashes($HTTP_POST_VARS['username']);
}
$myPassword_rsLogin "0";
if (isset(
$HTTP_POST_VARS['password'])) {
  
$myPassword_rsLogin = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['password'] : addslashes($HTTP_POST_VARS['password']);
}
$myCorreo_rsLogin "0";
if (isset(
$HTTP_POST_VARS['correo'])) {
  
$myCorreo_rsLogin = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['correo'] : addslashes($HTTP_POST_VARS['correo']);
}
mysql_select_db($database_zona$zona);
$query_rsLogin sprintf("SELECT Socio, Contraseña FROM socios WHERE Socio = '%s' AND Contraseña = PASSWORD('%s')"$myUsername_rsLogin,$myPassword_rsLogin);
$rsLogin mysql_query($query_rsLogin$zona) or die(mysql_error());
$row_rsLogin mysql_fetch_assoc($rsLogin);
$totalRows_rsLogin mysql_num_rows($rsLogin);

if(
$HTTP_POST_VARS['action']=="login"){
    if(
$totalRows_rsLogin==0){
        
$errorMessage "error de conexión";
    } else {
        
$query_rsMas sprintf("UPDATE socios SET email = '%s', $myCorreo_rsLogin, visita = CURDATE(), ip = '$IP', contador = contador+1 WHERE Socio = '%s' AND Contraseña = PASSWORD('%s')"$myUsername_rsLogin,$myPassword_rsLogin);
        
mysql_query($query_rsMas$zona) or die(mysql_error());
        
mysql_free_result($rsLogin);
        
session_register("usu");
        
$HTTP_SESSION_VARS['usu'] = $HTTP_POST_VARS['username'];
        
header("Location: ../socios/soclis.php");
    }
}
?>
  #2 (permalink)  
Antiguo 14/06/2006, 07:58
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 9 meses
Puntos: 17
Deberías poner comillas (o apóstrofes) alrededor del mail, porque es un string
$query_rsMas = sprintf("UPDATE socios SET email = '%s', '$myCorreo_rsLogin', visita = CURDATE(), ip = '$IP', contador = contador+1 WHERE Socio = '%s' AND Contraseña = PASSWORD('%s')", $myUsername_rsLogin,$myPassword_rsLogin);
  #3 (permalink)  
Antiguo 14/06/2006, 09:48
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Cita:
Iniciado por jossxx
Código PHP:
$query_rsMas sprintf("UPDATE socios SET email = '%s', $myCorreo_rsLogin, visita = CURDATE(), ip = '$IP', contador = contador+1 WHERE Socio = '%s' AND Contraseña = PASSWORD('%s')"$myUsername_rsLogin,$myPassword_rsLogin); 
Hola jossxx,

he mirado tu código y creo que debieras sustuir la línea de arriba por esta otra:
Código PHP:
$query_rsMas sprintf("UPDATE socios SET email = '%s', visita = CURDATE(), ip = '$IP', contador = contador+1 WHERE Socio = '%s' AND Contraseña = PASSWORD('%s')"$myCorreo_rsLogin$myUsername_rsLogin$myPassword_rsLogin); 
o sustituirla por esta otra:
Código PHP:
$query_rsMas "UPDATE socios SET email = '$myCorreo_rsLogin', visita = CURDATE(), ip = '$IP', contador = contador+1 WHERE Socio = '$myUsername_rsLogin' AND Contraseña = PASSWORD(' $myPassword_rsLogin')"
La que tú usabas daba error de falta de parámetros en la función sprintf. Prueba y dime que tal te va todo
__________________
http://www.nosoynadie.net/
  #4 (permalink)  
Antiguo 14/06/2006, 12:38
 
Fecha de Ingreso: marzo-2003
Mensajes: 225
Antigüedad: 14 años, 9 meses
Puntos: 0
ok, gracias

muchas gracias, tenías razón, ya funciona,
hasta luego
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 11:08.