Autor
|
Tema: No puedo encontrar el error alguien lo ve? (actualizando registro en db con php) (Leído 2,689 veces)
|
jdc
|
No puedo encontrar el error, alguien lo ve? <?php $usuario = @$_POST['editUser']; $pass = @$_POST['editPass']; $tipo = @$_POST['editTipo']; //int $sede = @$_POST['editSede']; //int $hash = md5($usuario.$pass); $id = @$_POST['idetable']; //int $query = mysql_query("UPDATE `sistema`.`usuarios` SET `usuario` = \'$usuario\', `passwd` = \'$hash\', `tipo` = \'$tipo\', `sede` = \'$tipo\' WHERE `usuarios`.`id` =\'$id\';", $link); ?>
Gracias ñ_ñ
|
|
|
En línea
|
|
|
|
Shell Root
|
Lo mismo de siempre, imprime la query y verifica su contenido. $sql = "UPDATE `sistema`.`usuarios` SET `usuario` = \'$usuario\', `passwd` = \'$hash\', `tipo` = \'$tipo\', `sede` = \'$tipo\' WHERE `usuarios`.`id` =\'$id\';"; print $sql;
|
|
« Última modificación: 6 Diciembre 2011, 02:05 am por Shell Root »
|
En línea
|
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
|
|
|
jdc
|
Doh toda la razon... UPDATE `sistema`.`usuarios` SET `usuario` = \'\', `passwd` = \'fe703d2586565a194907f \', `tipo` = \'1 \', `sede` = \'1 \' WHERE `usuarios`.`id` = \'5 \';
- No esta recibiendo usuario
- tengo que usar \" para las strings y nada para los enteros no?
A ver pruebo y te cuento
|
|
|
En línea
|
|
|
|
jdc
|
Lo mismo de siempre, imprime la query y verifica su contenido. $sql = "UPDATE `sistema`.`usuarios` SET `usuario` = \'$usuario\', `passwd` = \'$hash\', `tipo` = \'$tipo\', `sede` = \'$tipo\' WHERE `usuarios`.`id` =\'$id\';"; print $sql;
Gracias Shell Root quedo funcionando todo ok te pasaste! <?php $usuario = @$_POST['editUser']; $pass = @$_POST['editPass']; $tipo = @$_POST['editTipo']; //int $sede = @$_POST['editSede']; //int $hash = md5($usuario.$pass); $id = @$_POST['idetable']; //int $query = mysql_query("UPDATE `sistema`.`usuarios` SET `usuario` = \"$usuario\", `passwd` = \"$hash\", `tipo` = \"$tipo\", `sede` = \"$tipo\" WHERE `usuarios`.`id` =\"$id\";", $link); ?>
En la Query habia problema de comillas y ademas habia un error mio, al tener un campo como disabled no enviaba los datos y cuando comparaba si estaba vacio siempre me daba true xD Gracias otra vez :p
|
|
|
En línea
|
|
|
|
s00rk
Desconectado
Mensajes: 195
|
Por que no usar simples comillas como ' , asi te ahorras las \ ?
"UPDATE `sistema`.`usuarios` SET `usuario` = '$usuario', `passwd` = '$hash', `tipo` = '$tipo', `sede` = '$tipo' WHERE `usuarios`.`id` ='$id';"
Las \, son comunmente usadas cuando tu tu string empieza por el mismo tipo de comillas y quiere imprimir ejemplo:
echo "hola como estas \"juan\""; echo 'hola como estas \'juan\''; echo "hola como estas 'juan'"; echo 'hola como estas "juan"';
Si empieza con " dentro de la cadena puedes poner ' directamente sin poner \ a menos que decees poner " ocuparas poner \ puesto que iniciaste con " , bueno espero haberme explicado jejeje
|
|
|
En línea
|
|
|
|
jdc
|
Gracias, de hecho ya lo habia hecho ñ_ñ solo puse esto para mostrar como habia quedado funcionando, en mi sistema ya esta con comilla simple sin \
|
|
|
En línea
|
|
|
|
WHK
|
Y que pasa si realmente necesitas insertar un $?, además por asuntos de seguridad, evitar pasar clases y esas cosas me acostumbré a usar siempre comillas simples ya que ahi el código arbitrario no funciona, o sea: echo "$algo"; imprime la variable echo '$algo'; imprime $algo De hecho habia un bug que permitia ejecución de código arbitrario en vbuletin por causa de esto. Además recuerda que desde php no vale de nada enviar punto y coma ";" porque no puedes hacer multiples querys, recuerda que ya no estás en el phpmyadmin. Así lo haría yo: <?php if( isset($_POST['editUser']) and isset($_POST['editPass']) and isset($_POST['editTipo']) and isset($_POST['editSede']) and isset($_POST['idetable']) ){ if exists ( select id from `usuarios` where id = '.(int)$_POST['idetable'].' limit 1 ) update `usuarios` set `passwd` = "'.md5($_POST['editUser'].$_POST['editPass']).'", `tipo` = '.(int)$_POST['editTipo'].', `sede` = '.(int)$_POST['editSede'].' where `id` = '.(int)$_POST['idetable'].' ', $link)) echo 'Editado!'; else echo 'El usuario que se desea editar no existe.'; } ?>
|
|
|
En línea
|
|
|
|
|
|