Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: lpnu en 10 Enero 2012, 22:49 pm



Título: Ayuda en PHP, envio de formularios , funciones
Publicado por: lpnu en 10 Enero 2012, 22:49 pm
Hola muchachos, vengo leyendo y estudiando php de tutoriales, pese a los calores y al poder  aprovechar mi tiempo libre en otras cosas, pero decidi invertir mi tiempo en aprender este lenguaje, pero me encontrè con un ejercicio , desde la mañana que no puedo resolverlo y necesitaria de su ayuda,


El enunciado me pide esto ,Confeccionar un formulario que solicite la carga del nombre de usuario y su clave en dos oportunidades. En la página que se procesan los datos del formulario implementar una función que imprima un mensaje si las dos claves ingresadas son distintas.


 y yo tengo 2 paginas, la que seria mi html pagina1 , y mi pagina2.php, en la la 1 tengo esto

<html>
<head>
<title>Problema</title>
</head>
<body>
<form method="post" action="pagina2.php">
Ingrese su nombre:
<input type="text" name="nombre">
Ingrese su contraseña:
<input type="text" name="valor1">
Repita su contraseña:
<input type="text" name="valor2">

<input type="submit" value="confirmar">


<?php

?>
</body>
</html>


y mi pagina 2 , que recibiria el formulario ,, esto :

<html>
<head>
<title>Problema</title>
</head>
<body>

<?php
function contraseña ($contra1 $contra2 )
  {
  if ($contra1 <> $contra2)
   echo "La contraseñas son diferentes" ;
  }

$uno=$_post[valor1];
$dos=$_post[valor2];


// Ovbiamente, sè que no està bien , esto que hice, pero sè qe desde html no puedo llamar una funcion, mi duda, es què poner en mi pagina 1, (que poner en el lenguaje php,) o como manejarlo, con un boolean, if contraseña(v1,v2) ) = true, o algo asi, para poder sacar el resultado, cualqier cosa qe me ayuden, me va a servir, muchachos gracias.


Título: Re: Ayuda en PHP, envio de formularios , funciones
Publicado por: #!drvy en 10 Enero 2012, 23:14 pm
Hola,

Puesto que el formulario, envía los datos a pagina2.php, esta es la pagina, en la que tendrás que trabajar con php. y no en la pagina 1 que es la html.

Si quieres que todo ocurra en la misma pagina, cambia el action de tu formulario por " # " (action="#").

Tu código esta mas o menos bien, te han faltado las comas declarando la función,
Código
  1. function contraseña($contra1,$contra2){

Para llamar una función simplemente escribe el nombre de la función, y si es necesario, un echo delante.

Ejemplo 1;


-> En la pagina1.html, tenemos el formulario y los datos se envían a pagina2.php.

pagina2.php contendría lo siguente:
Código
  1. <?php
  2.  
  3. function contraseña($contra1,$contra2){
  4.  if($contra1 <> $contra2){
  5.      // usa return en vez de echo. Asi te evitas mostrar el resultado antes del retorno.
  6.      return 'contraseña no coincide.';
  7.  } else {
  8.      return 'contraseña coincide.';
  9.  }
  10. }
  11.  
  12. // Comprobamos si el usuario ha introducido la contraseña, comprobando
  13. // si los valor1 y valor2 estan definidos.
  14.  
  15. if(isset($_GET['valor1']) && isset($_GET['valor2'])) {
  16.  // ejecutamos la funcion contraseña.
  17.   echo contraseña($_GET['valor1'],$_GET['valor2']);
  18. } else {
  19.  // en caso de que no esten definidos (valor1,valor2) mostramos mensaje de error)
  20.   echo 'No has introducido tu contraseña';
  21. }
  22. ?>

Ejemplo 2;

-> Aquí vamos a hacer todo desde un archivo. Por tanto solo nos hara falta un archivo que termine en .php. Por ejemplo  pagina.php.

Código
  1. <html>
  2. <head>
  3. <title>Problema</title>
  4. </head>
  5. <body>
  6. <form method="get" action="#">
  7. Ingrese su nombre:
  8. <input type="text" name="nombre">
  9. Ingrese su contraseña:
  10. <input type="text" name="valor1">
  11. Repita su contraseña:
  12. <input type="text" name="valor2">
  13.  
  14. <input type="submit" value="confirmar">
  15. </form>
  16.  
  17. <?php
  18.  
  19. function contraseña($contra1,$contra2){
  20.  if($contra1 <> $contra2){
  21.      // usa return en vez de echo. Asi te evitas mostrar el resultado antes del retorno.
  22.      return 'contraseña no coincide.';
  23.  } else {
  24.      return 'contraseña coincide.';
  25.  }
  26. }
  27.  
  28. // Comprobamos si el usuario ha introducido la contraseña, comprobando
  29. // si los valor1 y valor2 estan definidos.
  30.  
  31. if(isset($_GET['valor1']) && isset($_GET['valor2'])) {
  32.  // ejecutamos la funcion contraseña.
  33.   echo contraseña($_GET['valor1'],$_GET['valor2']);
  34. } else {
  35.  // en caso de que no esten definidos (valor1,valor2) mostramos mensaje de error)
  36.   echo 'No has introducido tu contraseña.';
  37. }
  38. ?>
  39. </body>
  40. </html>
  41.  


Espero que te sirva.

Saludos


Título: Re: Ayuda en PHP, envio de formularios , funciones
Publicado por: lpnu en 10 Enero 2012, 23:20 pm
drvy | BSM , La verdad que te agradezco un monton, el tiempo que tomaste y lo claro que me explicaste todo, con gente asi como vos, me dan ganas de seguir estudiando y aprendiendo cada vez màs, gracias en serio!! y una ultima consulta/duda, que tengo, en el momento que pongo action=# , existe la posibilidad, que apartir del boton, submit, pueda emplear alguna funcion ? apartir del click, hacer algo ? ,


Título: Re: Ayuda en PHP, envio de formularios , funciones
Publicado por: #!drvy en 10 Enero 2012, 23:30 pm
Hola,

No se si te he entendido muy bien. Si te refieres a poder determinar cuando el usuario ha hecho click en el buton submit, es muy facil!. Simplemente ponle un nombre y procesalo!.

Ejemplo

Código
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <form action="#" method="POST">
  6. <input type="text" name="valor1" />
  7. <input type="submit" name="botonenvio" value="Enviar" />
  8. </form>
  9.  
  10. <?php
  11.  
  12. if(isset($_POST['botonenvio'])){
  13.  
  14.   echo 'Has hecho click sobre el boton enviar!';
  15.  
  16. } else {
  17.  
  18.   echo 'No has pulsado el boton enviar';
  19.  
  20. }
  21.  
  22. ?>
  23. </body>
  24. </html>
  25.  

Saludos


Título: Re: Ayuda en PHP, envio de formularios , funciones
Publicado por: lpnu en 10 Enero 2012, 23:39 pm
aaah , listo aclarado todo entonces, de nuevo muchas gracias, como puedo dejar en claro, que ya encontramos la solucion , para poder sacar el tema, del foro y no ocupar espacio en vano!


Título: Re: Ayuda en PHP, envio de formularios , funciones
Publicado por: cassiani en 11 Enero 2012, 19:08 pm
seguirá apareciendo no te preocupes por eso, si lo deseas, editas el primer post del tema y colocas [solucionado] antes del texto del asunto y ya está.