elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda en formulario para cambiar un registro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda en formulario para cambiar un registro  (Leído 3,897 veces)
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Duda en formulario para cambiar un registro
« en: 28 Enero 2014, 16:01 pm »

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:

Código:
<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:   
Código:
<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  :huh: ¿Alguien me lo aclara?

¡Gracias por la ayuda!  :)


En línea

basickdagger


Desconectado Desconectado

Mensajes: 649


System.out.println("this is weird as fuck");


Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #1 en: 28 Enero 2014, 17:23 pm »

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:

Código:
<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:   
Código:
<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  :huh: ¿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 Desconectado

Mensajes: 239



Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #2 en: 28 Enero 2014, 17:54 pm »

Vaaaaale, pues lo copio enterito y pleno  ;D

Archivo 1:

Código:
<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:
Código
  1. <html>
  2. <head>
  3. <title>Problema</title>
  4. </head>
  5. <body>
  6. <?php
  7. $conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
  8. mysql_select_db("base1",$conexion) or die("Problemas en la selección de la base de datos");
  9. $registros=mysql_query("select * from alumnos where mail='$_REQUEST[mail]'",$conexion) or
  10.  die("Problemas en el select:".mysql_error());
  11. if ($reg=mysql_fetch_array($registros))
  12. {
  13. ?>
  14.  <form action="pagina3.php" method="post">
  15.  Ingrese nuevo mail:
  16.  <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>"><br>
  17.  <input type="hidden" name="mailviejo" value="<?php echo $reg['mail'] ?>">
  18.  <input type="submit" value="Modificar">
  19.  </form>
  20. <?php
  21. }
  22. else
  23.  echo "No existe alumno con dicho mail";
  24. ?>
  25. </body>
  26. </html>

Y finalmente el tercero:
Código
  1. <html>
  2. <head>
  3. <title>Problema</title>
  4. </head>
  5. <body>
  6. <?php
  7. $conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
  8. mysql_select_db("base1",$conexion) or die("Problemas en la selección de la base de datos");
  9. $registros=mysql_query("update alumnos set mail='$_REQUEST[mailnuevo]' where mail='$_REQUEST[mailviejo]'",$conexion) or
  10.  die("Problemas en el select:".mysql_error());
  11.  echo "El mail fue modificado con exito";
  12. ?>
  13. </body>
  14. </html>
En línea

basickdagger


Desconectado Desconectado

Mensajes: 649


System.out.println("this is weird as fuck");


Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #3 en: 28 Enero 2014, 18:33 pm »



Archivo 1:

Código:

Ingrese el mail del alumno: <input type="text" name="mail"><br>


Segundo archivo:
Código
  1.  
  2.  Ingrese nuevo mail:
  3.  <input type="text" name="mailnuevo" value="<?php echo $reg['mail'] ?>"><br>
  4.  <input type="hidden" name="mailviejo" value="<?php echo $reg['mail'] ?>">
  5.  

Y finalmente el tercero:
Código
  1. <html>
  2. <head>
  3. <title>Problema</title>
  4. </head>
  5. <body>
  6. <?php
  7. $conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
  8. mysql_select_db("base1",$conexion) or die("Problemas en la selección de la base de datos");
  9. $registros=mysql_query("update alumnos set mail='$_REQUEST[mailnuevo]' where mail='$_REQUEST[mailviejo]'",$conexion) or
  10.  die("Problemas en el select:".mysql_error());
  11.  echo "El mail fue modificado con exito";
  12. ?>
  13. </body>
  14. </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
Código:
<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í)...
Código:
<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 Desconectado

Mensajes: 1.186


Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #4 en: 28 Enero 2014, 18:42 pm »

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 Desconectado

Mensajes: 239



Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #5 en: 28 Enero 2014, 21:26 pm »

Hum, no lo entiendo bien...   :-X

Lo que me sorprende es que en otros manuales modifican datos de una tabla con un solo archivo  :huh: :huh:
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #6 en: 28 Enero 2014, 21:51 pm »

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  :huh: :huh:

Esto es posible hacerlo mediante metodos tipo POST
En línea

abc
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #7 en: 28 Enero 2014, 22:23 pm »

¿Y por qué entonces enseñan el método más complicado?  :laugh:

Bueno, a ver si mañana lo termino de chapar... ¡Gracias! :)
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #8 en: 28 Enero 2014, 23:20 pm »

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 Desconectado

Mensajes: 239



Ver Perfil
Re: Duda en formulario para cambiar un registro
« Respuesta #9 en: 29 Enero 2014, 07:49 am »

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  :huh:

Nuevo mail......<?php echo $reg['mail'];?>
Anterior mail....<?php echo $reg['mail'];?>
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines