Autor
|
Tema: Duda en formulario para cambiar un registro (Leído 5,737 veces)
|
Linton
Desconectado
Mensajes: 239
|
En una web para aprender PHP, encuentro un punto confuso en el formulario para modificar un registro en base de datos. Tras el primer archivo con el form (en el ejemplo se cambiará el mail de un alumno), se muestra el segundo archivo. Y contiene un nuevo formulario con algo que no comprendo, esta parte: <form action="pagina3.php" method="post"> Ingrese nuevo mail: <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>"> <br> <input type="hidden" name="mailviejo" value="<?php echo $reg['mail'] ?>"> <input type="submit" value="Modificar"> </form> Vale, este botón de texto recoge el nuevo mail: <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>">
...y ahora el mail anterior tiene el mismo value, o sea "<?php echo $reg['mail'] ?>"> El manual no ha explicado los botones hidden y no entiendo cómo funciona esta parte del código: el mail nuevo y el anterior son, según el código PHP, el mismo elemento del array ¿Alguien me lo aclara? ¡Gracias por la ayuda!
|
|
|
En línea
|
|
|
|
basickdagger
Desconectado
Mensajes: 650
System.out.println("this is weird as fuck");
|
En una web para aprender PHP, encuentro un punto confuso en el formulario para modificar un registro en base de datos. Tras el primer archivo con el form (en el ejemplo se cambiará el mail de un alumno), se muestra el segundo archivo. Y contiene un nuevo formulario con algo que no comprendo, esta parte: <form action="pagina3.php" method="post"> Ingrese nuevo mail: <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>"> <br> <input type="hidden" name="mailviejo" value="<?php echo $reg['mail'] ?>"> <input type="submit" value="Modificar"> </form> Vale, este botón de texto recoge el nuevo mail: <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>">
...y ahora el mail anterior tiene el mismo value, o sea "<?php echo $reg['mail'] ?>"> El manual no ha explicado los botones hidden y no entiendo cómo funciona esta parte del código: el mail nuevo y el anterior son, según el código PHP, el mismo elemento del array ¿Alguien me lo aclara? ¡Gracias por la ayuda! con el pedazo de código q pusiste realmente no se sabe, yo solo veo q metes el mismo value a los dos input.... y el input hidden es oculto... muchos lo utilizan para enviar valores cargados que el usuario no puede ver.... mas q con f12 xD, tendrias q poner el otro pedazo de código y tal vez nos podamos entender mejor salu2
|
|
|
En línea
|
|
|
|
Linton
Desconectado
Mensajes: 239
|
Vaaaaale, pues lo copio enterito y pleno Archivo 1: <html> <head> <title>Problema</title> </head> <body> <form action="pagina2.php" method="post"> Ingrese el mail del alumno: <input type="text" name="mail"><br> <input type="submit" value="buscar"> </form> </body> </html> Segundo archivo: <html> <head> <title>Problema</title> </head> <body> <?php $conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion"); mysql_select_db("base1",$conexion) or die("Problemas en la selección de la base de datos"); $registros=mysql_query("select * from alumnos where mail='$_REQUEST[mail]'",$conexion) or { ?> <form action="pagina3.php" method="post"> Ingrese nuevo mail: <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>"><br> <input type="hidden" name="mailviejo" value="<?php echo $reg['mail'] ?>"> <input type="submit" value="Modificar"> </form> <?php } else echo "No existe alumno con dicho mail"; ?> </body> </html>
Y finalmente el tercero: <html> <head> <title>Problema</title> </head> <body> <?php $conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion"); mysql_select_db("base1",$conexion) or die("Problemas en la selección de la base de datos"); $registros=mysql_query("update alumnos set mail='$_REQUEST[mailnuevo]' where mail='$_REQUEST[mailviejo]'",$conexion) or echo "El mail fue modificado con exito"; ?> </body> </html>
|
|
|
En línea
|
|
|
|
basickdagger
Desconectado
Mensajes: 650
System.out.println("this is weird as fuck");
|
Archivo 1: Ingrese el mail del alumno: <input type="text" name="mail"><br>
Segundo archivo: Ingrese nuevo mail: <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>"><br> <input type="hidden" name="mailviejo" value="<?php echo $reg['mail'] ?>">
Y finalmente el tercero: <html> <head> <title>Problema</title> </head> <body> <?php $conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion"); mysql_select_db("base1",$conexion) or die("Problemas en la selección de la base de datos"); $registros=mysql_query("update alumnos set mail='$_REQUEST[mailnuevo]' where mail='$_REQUEST[mailviejo]'",$conexion) or echo "El mail fue modificado con exito"; ?> </body> </html>
mm sinceramente no entiendo... primer archivo: primero envian el email... segundo archivo: buscan si existe el alumno con dicho email en la BD y si este existe.. crean dos input uno oculto y otro visible pero ambos con el mismo valor.... tercer archivo: modifican el mail quiero entender... q solamente imprimen el valor en el archivo 2 para q el usuario pueda verlo y después modificarlo...y así enviar el correo nuevo <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>"><br> y el viejo(este no se vera en pantalla pero el valor estará ahí)... <input type="hidden" name="mailviejo" value="<?php echo $reg['mail'] ?>"> pero si existen dos correos iguales... te va crear 2 forms si hay 5 iguales te va crear 5 forms, etc... olvide decirte... en el archivo 3 modifica el mail nuevo donde email sea igual a email viejo salu2
|
|
« Última modificación: 28 Enero 2014, 18:35 pm por basickdagger »
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
quiero entender... q solamente imprimen el valor en el archivo 2 para q el usuario pueda verlo y después modificarlo... y así enviar el correo nuevo
Así de simple es la respuesta. El atributo name="mailnuevo" solo es para mostrar el email que se busco en el anterior form. El atributo name="mailviejo" es para poder utilizarlo en la sentencia donde se actualizará el email.
|
|
|
En línea
|
abc
|
|
|
Linton
Desconectado
Mensajes: 239
|
Hum, no lo entiendo bien... Lo que me sorprende es que en otros manuales modifican datos de una tabla con un solo archivo
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
la clave está en la consulta.. este es un ejemplo muy sencillo y no recomendable hacer actualizaciones con email por seguridad. los sistemas grandes utilizan variables como id del usuario, la variable de sesión, o alguna otra clave generada. En este ejemplo es forzoso realizarlo así. ACTUALIZA tabla_alumos coloca MAIL='nuevomail' DONDE MAIL='mailanterior' Lo que me sorprende es que en otros manuales modifican datos de una tabla con un solo archivo Esto es posible hacerlo mediante metodos tipo POST
|
|
|
En línea
|
abc
|
|
|
Linton
Desconectado
Mensajes: 239
|
¿Y por qué entonces enseñan el método más complicado? Bueno, a ver si mañana lo termino de chapar... ¡Gracias!
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
No es un método complicado, de hecho es un método correcto.
Si partimos desde lo primordial que es la programación orientada a objetos, te darás cuenta que así se deben hacer las cosas.
Un archivo para realizar la busqueda, otro podria usarse para mostrar los resultados (o utilizando ajax o jquery puede presentarse el resultado en la misma página) pero eso si, lo correcto es realizar tus funciones que tendrán las consultas en archivos separados.
|
|
|
En línea
|
abc
|
|
|
Linton
Desconectado
Mensajes: 239
|
Sí, que se organice el proceso con dos archivos lo entiendo y me parece diáfano. Lo que no entiendo es que el nuevo email anotado en el input sea a la vez (hidden mediante) el antiguo Nuevo mail......<?php echo $reg['mail'];?> Anterior mail....<?php echo $reg['mail'];?>
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como cambiar el registro de w98se para cambiar el lugar de un archivo de sistema
Windows
|
carlosega
|
5
|
4,847
|
19 Enero 2011, 15:56 pm
por Randomize
|
|
|
Cambiar Resolucion para Formulario?
Programación Visual Basic
|
ranslsad
|
4
|
4,437
|
7 Mayo 2009, 22:33 pm
por ranslsad
|
|
|
[PHP+CSS] Error en el formulario para cambiar de color el fondo. ¿Cual?
Desarrollo Web
|
Ori-chan
|
3
|
4,794
|
30 Enero 2013, 16:46 pm
por Ori-chan
|
|
|
Crear un Script para cambiar un Registro
Software
|
javifergavilan
|
1
|
3,762
|
19 Septiembre 2021, 10:55 am
por Randomize
|
|
|
Crear un Script para cambiar un Registro
Scripting
|
javifergavilan
|
2
|
3,225
|
19 Septiembre 2021, 19:27 pm
por javifergavilan
|
|