Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: .:UND3R:. en 25 Febrero 2012, 03:08 am



Título: Problema con formulario de registro
Publicado por: .:UND3R:. en 25 Febrero 2012, 03:08 am
Hola a todos, bueno les comento tengo un formulario prediseñado en mi página web para registrarse, se podría decir que funciona correctamente, pero tengo un pequeño problema en cuanto al registro de la web, al verificar si la ID o Mail existen, un script se encarga de esto y funciona bien pero es muy inestable, el script lo logré hacer funcionar gracias a EFEX, si el script no funciona me muestra un mensaje que dice failed me gustaría como hacer para que en ves de mostrarme el el mensaje failed lo vuelva a intentar. Desconozco de PHP, por eso acudo a su ayuda.


Adjunto un estracto de Register.php

Código
  1. <?
  2.  
  3. $get_config = simplexml_load_file('engine/config_mods/register_settings.xml');
  4. if($get_config->active == '0'){
  5. echo msg('0',text_sorry_feature_disabled);
  6. }else{
  7. $register_method = $get_config->method;
  8.  
  9. $verification_config = simplexml_load_file('engine/config_mods/human_verification.xml');
  10. if($verification_config->human_verification_type == 'reCAPTCHA'){
  11. $is_reCAPTCHA = '1';
  12. require_once('engine/recaptchalib.php');
  13. $privatekey = $verification_config->reCAPTCHA_private_key;
  14. $resp = recaptcha_check_answer ($privatekey,$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
  15. }
  16.  
  17.  
  18.  
  19. echo '
  20. <script type="text/javascript">    
  21. load_image= new Image(16,16);
  22. load_image.src="template/'.$core['config']['template'].'/images/load.gif";
  23.  
  24. function Ajax(div,id, page, form, append, data){
  25.  
  26.    document.getElementById(div).innerHTML = \'<img src="template/'.$core['config']['template'].'/images/load.gif" width="16" height="16"> Please wait...\';
  27. var veri = \'\';
  28. if( typeof(data) == "string")
  29. veri = data;
  30. else
  31. veri = $(form).serialize();
  32. $.ajax({
  33.   type: "POST",
  34.   url: page,
  35.   data: veri,
  36.   error: function(html)
  37.   {
  38. <--------------------Aquí está el señor problema :B-------------------->
  39.   alert("falied");
  40.   },
  41.   success: function(html)
  42.   {
  43.     if( typeof(append) == "boolean")
  44. $(id).append(html);
  45. else
  46. $(id).html(html);
  47.   }
  48.  });
  49.  return false;
  50. }
  51. </script>
  52.  
  53. <script type="text/javascript">
  54. function cs_ua_a(){
  55. if (document.sign_up_frm.userid.value.length < 4){
  56. alert(\'User ID, 4-10 characters\n(letters and numbers only)\');
  57. }else{
  58. uss = document.getElementById(\'userid\').value;
  59. url_p = "get.php?aA="+uss;
  60. Ajax(\'c_uss\',\'#c_uss\',url_p, null, \'data=c_uss\');
  61. }
  62.  
  63. }
  64.  
  65. function csm_uam_am(){
  66. if (document.sign_up_frm.email_address.value.length < 2){
  67. alert(\'Please enter an valid mail address \n(e.g: somebody@yahoo.com)\');
  68. }else{
  69. uss = document.getElementById(\'email_address\').value;
  70. url_p = "get.php?aMl="+uss;
  71. Ajax(\'c_mss\',\'#c_mss\',url_p, null, \'data=c_mss\');
  72. }
  73.  
  74. }
  75.  
  76. function parse_inputs(){
  77. if (document.sign_up_frm.userid.value.length < 4){
  78. alert(\'User ID, 4-12 characters\n(letters and numbers only)\');
  79. return false;
  80. }
  81.  
  82. if (document.sign_up_frm.password.value.length < 6){
  83. alert(\'Password, 6-12 characters\n(letters and numbers only, passwords are case-sensitive.)\');
  84. return false;
  85. }
  86.  
  87. if (document.sign_up_frm.confirm_password.value.length < 6){
  88. alert(\'Confirm Password, 6-12 characters\n(letters and numbers only, passwords are case-sensitive.)\');
  89. return false;
  90. }
  91. if (document.sign_up_frm.password.value != document.sign_up_frm.confirm_password.value){
  92. alert(\'Passwords did not match.\');
  93. return false;
  94. }
  95. ';
  96. if($get_config->pers_id_active == '1'){
  97. echo 'if (document.sign_up_frm.pers_id.value.length < '.$get_config->pers_id_length.'){
  98. alert(\'Please enter an valid Personal ID number \n(12 digits, numbers

Muchas gracias, Saludos

PD:Si tienen duda con el registro, adjunto la página para que corroboren:

http://mu-caos.cl/index.php?page_id=register (http://mu-caos.cl/index.php?page_id=register)


Título: Re: Problema con formulario de registro
Publicado por: Pablo Videla en 25 Febrero 2012, 03:20 am
Usa excepciones

http://php.net/manual/es/language.exceptions.php

Cuando te lance la excepción puedes hacer que vuelva a intentar el método nuevamente.


Título: Re: Problema con formulario de registro
Publicado por: .:UND3R:. en 25 Febrero 2012, 17:12 pm
No entiendo muy bien, disculpa, es que desconozco de PHP solo me marca errores haciendo pruebas jaja, Saludos


(Entiendo que lo más recomendable es que aprenda PHP pero es algo tan puntual que por el momento no lo necesito, Muchísimas gracias por entenderme)


Título: Re: Problema con formulario de registro
Publicado por: Pablo Videla en 25 Febrero 2012, 17:55 pm
Recien me di cuenta que no es un problema de php, sino de javascript, lo que tienes que hacer es en el error llamar nuevamente al metodo, no se como lo llamaste, no comprendo mucho el codigo, si me puedes explicar como haces para llamar el ajax y en que momento lo hace, entonces podriamos echarte una mano.


Título: Re: Problema con formulario de registro
Publicado por: .:UND3R:. en 25 Febrero 2012, 18:53 pm
Recien me di cuenta que no es un problema de php, sino de javascript, lo que tienes que hacer es en el error llamar nuevamente al metodo, no se como lo llamaste, no comprendo mucho el codigo, si me puedes explicar como haces para llamar el ajax y en que momento lo hace, entonces podriamos echarte una mano.

No sé exactamente, pero bueno subiré register.php y los .JS que utiliza a ver que se puede hacer.

JS: http://www.mediafire.com/download.php?17724bm8hadb2uv (http://www.mediafire.com/download.php?17724bm8hadb2uv)

Register.php: http://www.mediafire.com/download.php?leh2qil3ymp0f7j (http://www.mediafire.com/download.php?leh2qil3ymp0f7j)

Una cosa más, sabes he intentado alinear los textbox para que queden todos en la misma posición con respecto a Nombre de la cuenta, pero no he podido, podrías decirme como lograr eso, puedes verlo en la web que comenté.

Muchísimas gracias por tu gran ayuda, Saludos