Hola por favor necesito ayuda! Verán yo tengo hecho un formulario donde se supone que el usuario va a cambiar su contraseña y su password, y nesiiito que por medio del hidden en el formulario darle la función de que cuando el usuario este cambiando su correo o su contraseña lo sepa la base de datos, que verifique que efectivamente el correo que puso si es el que estaba almacenado a la base de datos y que sea ingresado el nuevo correo y/o contraseña.
No se si me explique pero no puedo hacerlo mejor... Please ayuda!
1 respuesta
Respuesta de innet
1
1
innet, Técnico Informático con amplia experiencia en Desarrolo de...
Bien yo creo que lo que deberías hacer es una consulta a la base de datos en la que obtengas con la id del usuario el password y el email y esos datos pasárselos a la página en la que está el formulario y mediante javascript puedes hacer una función que compruebe si los campos de email y contraseña coinciden o no.
Muchas Graciias peroo miraa... este es mi formulario... se supone que en la misma pag tengo que hacer que el usuario cambie su correo o su contraseña o los dos... para esto me pidieron hacer las validaciones de email y password respectivamente ii asta ahi me quede.... <html> <head> <title> CORREO </title> <script> function valida_envia(){ //validando correo electronico var ncorreo = document.fvalida.ncorreo.value; var rnuevo = document.fvalida.rnuevo.value; var espacios = false; var cont = 0; // Este bucle recorre la cadena para comprobar // que no todo son espacios while (!espacios && (cont < ncorreo.length)) { if (ncorreo.charAt(cont) == " ") espacios = true; cont++; } if (espacios) { alert ("El email no puede contener espacios en blanco"); return false; } if (ncorreo.length == 0 || rnuevo.length == 0) { alert("Los campos del email no pueden quedar vacios"); return false; } if (ncorreo != rnuevo) { alert("Las emails deben de coincidir"); return false; } valor=document.fvalida.canterior.value; valor=document.fvalida.ncorreo.value; valor=document.fvalida.rnuevo.value; var reg=/(^[a-zA-Z0-9._-]{1,30})@([a-zA-Z0-9.-]{1,30}$)/; if(reg.test(valor)) { //alert("La dirección de email " + valor + " es correcta."); } else { alert("La dirección de email es incorrecta."); return (false); } //el formulario se envia alert("Muchas gracias por enviar el formulario"); document.fvalida.submit(); } //contra function valida_envia_contra(){ //validando las password var clave1 = document.fvalida.clave1.value; var clave2 = document.fvalida.clave2.value; var espacios = false; var cont = 0; // Este bucle recorre la cadena para comprobar // que no todo son espacios while (!espacios && (cont < clave1.length)) { if (clave1.charAt(cont) == " ") espacios = true; cont++; } if (espacios) { alert ("La contraseña no puede contener espacios en blanco"); return false; } if (clave1.length == 0 || clave2.length == 0) { alert("Los campos de la password no pueden quedar vacios"); return false; } if (clave1 != clave2) { alert("Las passwords deben de coincidir"); return false; } //el formulario se envia alert("Muchas gracias por enviar el formulario"); document.fvalida.submit(); } </script> </head> <body> <center> <h2> CAMBIA TU CORREO ELECTRONICO</h2> <form name="fvalida" method="POST" action="noseconex.php"> <tr> <td><span class="Estilo1">Correo Anterior:</span></td> <td><input type="text" name="canterior" size="30" maxlength="100"></td> </tr><br> <label><? echo "".$_SESSION['s_usuario']."" ?> <tr> <td><input name="usuario" type="hidden" id="usuario" value="<? echo "".$_SESSION['s_usuario']."" ?>" checked="checked" /> </tr> </label> <tr> <td><span class="Estilo1">NUevo Correo:</span></td> <td><input type="text" name="ncorreo" size="30" maxlength="100"></td> </tr><br> <tr> <td><span class="Estilo1">Repetir Nuevo:</span></td> <td><input type="text" name="rnuevo" size="30" maxlength="100"></td> </tr> <br> <br> <tr> <td colspan="2" align="center"><input type="button" value="Enviar" onclick="valida_envia()"></td> </tr> <h2> CAMBIA TU PASSWORD</h2> <tr> <td><span class="Estilo1">Contraseña Anterior:</span></td> <td><input type="text" name="coanterior" size="30" maxlength="100"></td> </tr><br> <tr> <td><span class="Estilo1">NUeva Contraseña:</span></td> <td><input type="text" name="clave1" size="30" maxlength="100"></td> </tr><br> <tr> <td><input name="nuevapass" type="hidden" id="nuevapass" value="ponga aquí su contraseña nueva" size="32" /> </tr> <tr> <td><span class="Estilo1">Repetir Nueva Contraseña:</span></td> <td><input type="text" name="clave2" size="30" maxlength="100"></td> </tr><br> <tr> <td colspan="2" align="center"><input type="button" value="Enviar" onclick="valida_envia_contra()"></td> </tr> <center> </form> </body> </html> Este es todo mi codiigoo... después me piden que en ese mismo formulario con botones que sean "invisibes" pueda validar que los campos dee tu correo pasado y tu contraseña pasada coincidan con los almacenados ya en la BD. Y que almacene los nuevos que el usuario ingrese, sinceramente soy nueva en esto de la programación pero si puedes ayudarme te alo agradecería... lo segundo ya no se como hacerlo...
¿Supongo qué en el SESSION tienes la ID del usuario o el nombre del que esta logueado no? Lo que deberías es con eso antes que nada hacer una consulta a la base de datos para saber cuales son los datos actuales de correo y contraseña... una query tipo SELECT email, password from usuarios where id = $_SESSION['s_id'], Y luego lo que deberás es con javascript comprobar en una función que hayan cambiado o no. Si no han cambiado no hagas nada y si cambia lo rediriges a otra página en php en la cuál lo cambies con un sentencia UPDATE.