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.
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,
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:
<?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.
<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
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 ? ,
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
<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
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!
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á.