Foros del Web » Programando para Internet » PHP »

Problema con variable post

Estas en el tema de Problema con variable post en el foro de PHP en Foros del Web. ¡Hola! Tengo un problema: resulta que tengo en mi página una barra superior que tiene un include a un menú. En ese menú, hay un ...
  #1 (permalink)  
Antiguo 14/02/2012, 16:36
 
Fecha de Ingreso: septiembre-2011
Ubicación: La Plata, Buenos Aires
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 0
Problema con variable post

¡Hola!
Tengo un problema:
resulta que tengo en mi página una barra superior que tiene un include a un menú. En ese menú, hay un link que dice 'Registrarse'.
Bien, este te manda (en ese mismo div, mediante JQUERY) a un formulario que te hace ingresar un nombre de usuario.
El formulario se envía perfectamente y también se procesa bien, el problema es que no puedo imprimir la variable de post ya que no me la toma ni como $_POST['name'], $_POST[name], ni $user (habiendo ya asignado la variable de post a esta).

Código de formulario:
Código PHP:
Ver original
  1. <style>
  2. .success{  
  3.  
  4.     border: 2px solid #009400;  
  5.    background: #B3FFB3;  
  6.    color: #555;  
  7.    font-weight: bold;  
  8.  
  9. }  
  10.  
  11. .error{  
  12.  
  13.     border: 2px solid #DE001A;  
  14.    background: #FFA8B3;  
  15.    color: #000;  
  16.    font-weight: bold;  
  17. }
  18. </style>
  19. <script type="text/javascript">
  20. $(document).ready(function(){  
  21.  
  22.     $("#comprobacion").submit(function(){  
  23.  
  24.         $.ajax({  
  25.             type: "POST",  
  26.             url: "../registro/2.php",  
  27.             data: $("#comprobacion").serialize(),  
  28.             dataType: "json",  
  29.  
  30.             success: function(msg){  
  31.                 $("#log").removeClass('error');  
  32.                 $("#log").removeClass('success');  
  33.                 $("#log").addClass(msg.status);  
  34.                 $("#log").html(msg.message);  
  35.  
  36.             },  
  37.             error: function(){  
  38.                 $("#log").removeClass('success');  
  39.                 $("#log").addClass('error');  
  40.                 $("#log").html("Ahora mismo no podemos comprobar la disponibilidad del usuario. Inténtalo más tarde.");  
  41.             }  
  42.         });  
  43.  
  44.         //make sure the form doesn't post  
  45.         return false;  
  46.  
  47.     });  
  48.  
  49. });  
  50. </script>
  51. <form id="comprobacion" style="margin: 0 auto; width: 300px;" method="post">  
  52.   <div id="formResponse">
  53.     <input name="name" type="text">
  54. <input name="submitForm" type="submit" value="Submit Form">
  55. </div>
  56. </form>

Código del procesamiento:
Código PHP:
Ver original
  1. <?  
  2.    include('../conectar.php');
  3. //response array with status code and message  
  4. $response_array = array();  
  5.    
  6.  
  7. // proceso
  8. $user = $_POST['name'];
  9. if($user == "")
  10. {
  11.      $response_array['status'] = 'error';  
  12.     $response_array['message'] = '¡Para poder comprobar la disponibilidad del nombre de usuario, debes ingresar uno!';  
  13. }
  14. if($user != "")
  15. {
  16.     $consulta = mysql_query("SELECT usuario FROM datosp WHERE usuario = '$user'",$conexion);
  17.     $num = mysql_num_rows($consulta);
  18.     if($num == 0)
  19.     {
  20.          $response_array['status'] = 'success';  
  21.     $response_array['message'] = '¡$user está disponible!';  
  22.     }
  23.    
  24.     if($num == 1)
  25.     {
  26.          $response_array['status'] = 'error';  
  27.     $response_array['message'] = '¡$user está en uso!';  
  28.     }
  29.    
  30. }
  31.  
  32. //send the response back  
  33. echo json_encode($response_array);  
  34. ?>

Aclaro que efectivamente la solicitud responde a si está disponible o en uso (lo hace correctamente) , pero que al imprimir el mensaje, este dice $user ó $_POST[user] en vez del nombre que el usuario eligió


Gracias =)
  #2 (permalink)  
Antiguo 14/02/2012, 16:58
Avatar de scorpion3d  
Fecha de Ingreso: mayo-2011
Mensajes: 92
Antigüedad: 12 años, 11 meses
Puntos: 19
Respuesta: Problema con variable post

Que tal?
pruba con el codigo de esta forma:

Código PHP:
Ver original
  1. <?  
  2. include('../conectar.php');
  3. //response array with status code and message
  4. $response_array = array();
  5.  
  6.  
  7. // proceso
  8. $user = $_POST['name'];
  9. if($user == "")
  10. {
  11. $response_array['status'] = 'error';
  12.  $response_array['message'] = '¡Para poder comprobar la disponibilidad del nombre de usuario, debes ingresar uno!';
  13. }
  14. if($user != "")
  15. {
  16. $consulta = mysql_query("SELECT usuario FROM datosp WHERE usuario = ".$user,$conexion);
  17. $num = mysql_num_rows($consulta);
  18. if($num == 0)
  19. {
  20. $response_array['status'] = 'success';
  21. $response_array['message'] = $user." está disponible!";
  22. }
  23.  
  24. if($num == 1)
  25. {
  26. $response_array['status'] = 'error';
  27. $response_array['message'] = $user." está en uso!";
  28. }
  29.  
  30. }
  31.  
  32. //send the response back
  33. echo json_encode($response_array);
  34. ?>
__________________
www.elias.com.sv
  #3 (permalink)  
Antiguo 14/02/2012, 17:02
 
Fecha de Ingreso: septiembre-2011
Ubicación: La Plata, Buenos Aires
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema con variable post

¡Hola! ¡Antes que nada, gracias por responderme!
Bien, cambiando el código , lo único que recibo es:

¡Para poder comprobar la disponibilidad del nombre de usuario, debes ingresar uno!
(ya sea que esté registrado o no)

La verdad no sé que es

Será que la variable pasa por JSON y yo debería hacer algo?
  #4 (permalink)  
Antiguo 17/02/2012, 13:01
 
Fecha de Ingreso: febrero-2012
Mensajes: 66
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Problema con variable post

No puedes usar comillas simples con la variable php dentro de ella, es decir,
'¡$user está en uso!' no es correcto, el cambio de valor por variable solo funciona con comillas dobles.
Espero que sea eso tu error.
un saludo.

Etiquetas: formulario, html, mysql, post, registro, 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 18:34.