Bienvenidos invocadores
Bueno, a lo que iva, lo que queria hacer es una especie de 'Call' a un mismo archivo, me explicare mejor con ejemplos:
Esto seria lo normal, sin hacer nada
index.php
Ahora creo un boton, que redirige a...
index.php?login=request
y ahora creo un condicional:
if ($_GET['login'] == 'request') {
Me funcionaria con un clic a un boton, o tendria que ser obligatoriamente en una form?
con form y botón, porque el form es quien establece el metodo y la acción
Auqnue siempre puedes usar AJAX para conseguir el efecto sin tener que recargar la pagina.
Saludos
Ni siquiera necesitas un botón. El botón simplemente dispara la acción que en este caso puede ser lo que tu quieras (dentro del DOM), inclusive disparar el evento submit de un formulario, que este es técnicamente el que hace el request de manera "estándar". Puedes usar los objetos XHR (XMLHTTPRequest) para hacer los requests por tí. Al final el que verdaderamente llama el código es el request (petición) HTTP.
El metodo GET no es exclusivo para los formularios, tambien puedes usarlo para cargar una página o ejecutar un script de una página.
Lo único que necesitas es crear un hypervinculo:
<a href="index.php?login=request">Iniciar Sesion</a>
Y en la página compruebas el GET y haces lo que tengas que hacer:
if (isset($_GET['login']) && $_GET['login'] == 'request') {
echo 'HTML Login Form';
}
Si no quieres que el contenido anterior de la página index.php se muestre, encierralo todo dentro de un if:
// index.php
if (empty($_GET['login']) {
// aqui el codigo del index y el boton para loguear
<a href="index.php?login=request">Iniciar Sesion</a>
}
if (isset($_GET['login']) && $_GET['login'] == 'request') {
echo 'HTML Login Form';
}
Para los formularios es mejor utilizar el metodo POST.