Ver Mensaje Individual
  #2  
Antiguo 03-11-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Como ya sabes no es posible llamar desde HTML a ninguna función PHP, puesto que el primero tiene su ámbito en el cliente (navegador, por ejemplo) y el segundo lo tiene en el Servidor. No es posible llamar a una función PHP desde HTML, ni tampoco es posible, desde PHP, llamar a ninguna función JavaScript, al menos no directamente, puesto que JavaScript reside también en el cliente, no en el Servidor, como lo hace PHP.

Ahora bien, estamos ante un formulario HTML, que es una de las formas "naturales" de comunicación del cliente con el servidor... y viceversa. El atributo "action" del formulario HTML se utiliza para indicar quién responderá del proceso del formulario, quién recibirá las variables y valores que el usuario puede introducir a través del formulario, y, por último, quién responderá al proceso de dicho formulario.

Es mucho más sencillo de lo que lo he puesto, me parece:

Código PHP:
<form method="post" action="scripts/login.php"
En el ejemplo anterior el Script (PHP en este caso) que recibirá las variables y valores vía HTTP POST (como indicamos en el "método" del formulario) será "scripts/login.php". Nada impide que un formulario tenga en su atributo "action" indicado el propio Script que se ha encargado de "escribir" el formulario, es decir, algo así es perfectamente válido, y vamos aproximándonos ya a lo que te interesa:


Código PHP:
<?php
// Script /scripts/login.php

function Login($nombre$contrasena)
{
   
// Instrucciones de la función Login
}

?>

 <form method="post" action="scripts/login.php">
 <input type="text" name="nombre-usuario" />
 <input type="password" name="contrasena-usuario" /> 
 <input type="submit" value="Enviar el formulario" />
</form>
Ahora bien, ¿cómo pueden ejecutarse las instrucciones que contenga la función "Login" que es lo que nos interesa? Pues, sencillamente, "sabiendo" nosotros que tiene que ser ejecutada... ¿y cómo sabemos que tiene que ser ejecutada? Pues, en este caso, sencillamente, averiguando si el Script es "llamado" por el formulario, en el proceso de este, cuando el usuario envía el formulario, o no, sino que es llamado por el usuario "desde el navegador", accediendo al Script como a cualquier página Web, desde la barra de navegación del navegador, por ejemplo.

Ahora vamos a añadir lo necesario siguiendo con el código de ejemplo anterior:

Código PHP:
<?php
// Script /scripts/login.php

function Login($nombre$contrasena)
{
   
// Instrucciones de la función Login
}

if(isset(
$_POST['nombre-usuario'])
 && isset(
$_POST['contrasena-usuario']))
{
  
// Las variables "nombre-usuario" y "contrasena-usuario" que
  // nos llegan a través del método HTTP POST que se encarga
  // de realizar el formulario HTML, es decir, en el transcurso de
  // su proceso, digo, dichas variables están establecidas, como
  // acabamos de comprobar la condición anterior.

  // Pues bien, esto quiere decir que el formulario ha sido enviado
  // (no nos abriremos a otras posibilidades, puesto que no nece-
  // sariamente ha sido "el formulario" quien ha realizado el HTTP
  // POST...) y así nosotros llamamos a la función "Login".

  // Podemos hacerlo, puesto que estamos "en PHP", en el Servidor,
  // en medio del proceso de este Script. No estaría demás añadir
  // que este puede ser un buen momento para realizar las valida-
  // ciones que se consideren oportunas a la entrada del usuario. 

  // Después ya podríamos llamar a la función "Login"
  
Login($_POST['nombre-usuario'], $_POST['contrasena-usuario']);
}

?>

 <form method="post" action="scripts/login.php">
 <input type="text" name="nombre-usuario" />
 <input type="password" name="contrasena-usuario" /> 
 <input type="submit" value="Enviar el formulario" />
</form>
Si te queda alguna duda o algo coméntala por aquí que alguien habrá encantado de poder echarte una mano.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita