Ayuda en PHP, envio de formularios , funciones

Iniciado por lpnu, 10 Enero 2012, 22:49 PM

0 Miembros y 1 Visitante están viendo este tema.

lpnu

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.

#!drvy

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 (php) [Seleccionar]
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 (php) [Seleccionar]
<?php

function contraseña($contra1,$contra2){
  if(
$contra1 <> $contra2){
      
// usa return en vez de echo. Asi te evitas mostrar el resultado antes del retorno.
      
return 'contraseña no coincide.';
  } else {
      return 
'contraseña coincide.';
  }
}

// Comprobamos si el usuario ha introducido la contraseña, comprobando
// si los valor1 y valor2 estan definidos.

if(isset($_GET['valor1']) && isset($_GET['valor2'])) {
  
// ejecutamos la funcion contraseña.
   
echo contraseña($_GET['valor1'],$_GET['valor2']);
} else {
  
// en caso de que no esten definidos (valor1,valor2) mostramos mensaje de error)
   
echo 'No has introducido tu contraseña';
}
?>


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 (php) [Seleccionar]

<html>
<head>
<title>Problema</title>
</head>
<body>
<form method="get" action="#">
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">
</form>

<?php

function contraseña($contra1,$contra2){
  if(
$contra1 <> $contra2){
      
// usa return en vez de echo. Asi te evitas mostrar el resultado antes del retorno.
      
return 'contraseña no coincide.';
  } else {
      return 
'contraseña coincide.';
  }
}

// Comprobamos si el usuario ha introducido la contraseña, comprobando
// si los valor1 y valor2 estan definidos.

if(isset($_GET['valor1']) && isset($_GET['valor2'])) {
  
// ejecutamos la funcion contraseña.
   
echo contraseña($_GET['valor1'],$_GET['valor2']);
} else {
  
// en caso de que no esten definidos (valor1,valor2) mostramos mensaje de error)
   
echo 'No has introducido tu contraseña.';
}
?>

</body>
</html>



Espero que te sirva.

Saludos

lpnu

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 ? ,

#!drvy

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 (php,7) [Seleccionar]

<html>
<head>
</head>
<body>
<form action="#" method="POST">
<input type="text" name="valor1" />
<input type="submit" name="botonenvio" value="Enviar" />
</form>

<?php

if(isset($_POST['botonenvio'])){

   echo 
'Has hecho click sobre el boton enviar!';

} else {

   echo 
'No has pulsado el boton enviar';

}

?>

</body>
</html>


Saludos

lpnu

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!

cassiani

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á.