Foros del Web » Programando para Internet » PHP »

Problema al hacer una query a la db

Estas en el tema de Problema al hacer una query a la db en el foro de PHP en Foros del Web. Holas gente, bueno lo que necesito es que al crear el usuario te redireccione a la sección de usuarios con un mensaje que diga que ...
  #1 (permalink)  
Antiguo 17/08/2011, 16:27
 
Fecha de Ingreso: marzo-2008
Ubicación: Santa Cruz, Argentina
Mensajes: 433
Antigüedad: 16 años, 1 mes
Puntos: 5
Problema al hacer una query a la db

Holas gente, bueno lo que necesito es que al crear el usuario te redireccione a la sección de usuarios con un mensaje que diga que el usuario (y el nombre) ha sido creado. Por eso mismo utilizo mediante $_GET esto: (usuarios.php?usercreado=11&id=11) para que me muestre el mensaje y muestre el usuario con el ID 11.

Mi codigo es este:

Código PHP:
Ver original
  1. <?
  2. require('/home/polize/adrianweb/portal/conectar.php');
  3. require('/home/polize/adrianweb/portal/configuracion.php');
  4. require('login.php');
  5.  
  6. //recibimos las variables enviadas por el formulario
  7. $id=$_POST[id];
  8. $rango=$_POST[rango];
  9. $nick=$_POST[nick];
  10. $email=$_POST[email];
  11. $nombre=$_POST[nombre];
  12. $password= md5($_POST[password]);
  13.  
  14.  
  15. if(trim($_POST["nick"]) != "" && trim($_POST["email"]) != "")
  16. {
  17. $sql = "SELECT id FROM usuarios WHERE nick='".$_POST["nick"]."'";
  18. $result = mysql_query($sql);
  19. if($row = mysql_fetch_array($result))
  20. {
  21. echo "Error, nick escogido por otro usuario";
  22. }else{
  23.  
  24. //modificamos los datos de la base según variables recibidas
  25. mysql_query("insert into usuarios (nick,email,nombre,password,rango) VALUES ('$nick','$email','$nombre','$password','$rango')", $conexion);
  26.  
  27.  
  28. };
  29.  
  30. $destinatario = $email;
  31. $asunto = "Registro de usuario en ". $sitioweb;
  32. $cuerpo = '
  33. <html>
  34. <head>
  35.   <title>Registro de usuario en '. $sitioweb .'</title>
  36. </head>
  37. <body>
  38. <h1>Datos de Acceso en '. $sitioweb .'</h1>
  39. <p>
  40. Los datos para acceder al sitio son los siguientes:<br><br>
  41. <b>Usuario</b>: '.$nick.'<br>
  42. <b>Contraseña</b>: '.$_POST["password"].'
  43. </p>
  44. </body>
  45. </html>
  46. ';
  47.  
  48. //para el envío en formato HTML
  49. $headers = "MIME-Version: 1.0\r\n";
  50. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  51.  
  52. //dirección del remitente
  53. $headers .= "From: ".$sitioweb." <".$emailadmin.">\r\n";
  54.  
  55. //dirección de respuesta, si queremos que sea distinta que la del remitente
  56. $headers .= "Reply-To: ".$emailreply."\r\n";
  57. mail($destinatario,$asunto,$cuerpo,$headers);
  58. };
  59.  
  60. $id1=$_POST[id];
  61.  
  62. $resulta1=mysql_query("select * from usuarios where id='$id1'",$conexion);
  63. while($row=mysql_fetch_array($resulta1)) {
  64. header("location: usuarios.php?usercreado=".$row['id']."&id=".$row['id']."");
  65. };
  66. ?>


y el código que quiero implementar es el ultimo:

Código PHP:
Ver original
  1. $id1=$_POST[id];
  2.  
  3. $resulta1=mysql_query("select * from usuarios where id='$id1'",$conexion);
  4. while($row=mysql_fetch_array($resulta1)) {
  5. header("location: usuarios.php?usercreado=".$row['id']."&id=".$row['id']."");
  6. };

Y que no funciona


¿Porqué puede ser?

Desde ya, muchas gracias!
  #2 (permalink)  
Antiguo 17/08/2011, 16:33
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Respuesta: Problema al hacer una query a la db

Hola:

Si estas enviando información y/o variables por la URL. Es necesario que obtengas los valores por $_GET y no por post.
¿Porqué dices que no funciona? Podrias detallar mas esto.

Slds!
  #3 (permalink)  
Antiguo 17/08/2011, 16:35
 
Fecha de Ingreso: marzo-2008
Ubicación: Santa Cruz, Argentina
Mensajes: 433
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Problema al hacer una query a la db

Disculpá, los datos del usuario los envio por POST, pero uso los valores GET para mostrar el mensaje.

No funciona porque no me redirecciona, por ende hay algun error en el ultimo while creo yo.
  #4 (permalink)  
Antiguo 17/08/2011, 16:45
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Respuesta: Problema al hacer una query a la db

Lo primero cambia

Código PHP:
$resulta1=mysql_query("select * from usuarios where id='$id1'",$conexion); 
por
Código PHP:
$resulta1=mysql_query("select * from usuarios where id='".$id1."'",$conexion);
//suponiendo que id sea un string en caso contrario quita las comillas. (') 
Ahora bien ya checaste si realmente recibes el valor?

Código PHP:
$id1=$_POST[id];
echo 
$id1
Slds!
  #5 (permalink)  
Antiguo 17/08/2011, 16:52
 
Fecha de Ingreso: marzo-2008
Ubicación: Santa Cruz, Argentina
Mensajes: 433
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Problema al hacer una query a la db

Hay un pequeño error mio ahi, en verdad yo tendría que poner así

Código PHP:
Ver original
  1. $id1 = $_POST[nick];

Pero de todas formas, no funciona, y ahora me sale este error

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /home/polize/adrianweb/portal/admin/crearuser.php:62) in /home/polize/adrianweb/portal/admin/crearuser.php on line 65
Y el echo si anda, me tira exactamente el nick

Ahora el codigo quedó así.


Código PHP:
Ver original
  1. $id1=$_POST[nick];
  2. echo $id1;
  3. $resulta1=mysql_query("select * from usuarios where nick='".$id1."'",$conexion);
  4. while($row=mysql_fetch_array($resulta1)) {
  5. header("location: usuarios.php?usercreado=".$row['id']."&id=".$row['id']."");
  6. };
  7. ?>
  #6 (permalink)  
Antiguo 17/08/2011, 16:57
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Respuesta: Problema al hacer una query a la db

Puedes postear el código de la linea en donde te manda el error. Por favor.
Si es por echo te mostro algo la pagina??? Si no es que no llega el valor de tu $_POST["nick"];

Slds.
  #7 (permalink)  
Antiguo 17/08/2011, 17:00
 
Fecha de Ingreso: marzo-2008
Ubicación: Santa Cruz, Argentina
Mensajes: 433
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Problema al hacer una query a la db

Es la del while o la del header supongo.

edit:

El error ese es por el echo, disculpá.


Perfecto, entonces ya está solucionado, seguro era el tema de las comillas como me marcaste en tu respuesta.

Muchisimas gracias!!
  #8 (permalink)  
Antiguo 17/08/2011, 17:07
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Respuesta: Problema al hacer una query a la db

Tienes que estar seguro que estas recibiendo:

Código PHP:
$id1 $_POST["nick"]; 
En caso contrario no se va ejecutar tu query y por tanto tu redireccionamiento.

Por esto te recomendaba que antes que nada hicieras:


Código PHP:
$id1 $_POST["nick"];
echo 
"->".$id1."<-";
//Comenta todo lo demas. 
Slds!
  #9 (permalink)  
Antiguo 17/08/2011, 17:13
 
Fecha de Ingreso: marzo-2008
Ubicación: Santa Cruz, Argentina
Mensajes: 433
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Problema al hacer una query a la db

Ya se solucionó, era lo que me habias respondido, de las comillas, muchas gracias!

Etiquetas: html, mysql, query, registro, sql, formulario, variables, usuarios
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 01:24.