Listar un directorio con php es muy útil para visualizar de forma rápida el contenido de una carpeta de nuestro proyecto, si añadimos un...
Pasar variables en php
Pasar variables en php es muy fácil, lo primero que tenemos que saber es que el ámbito de una variable es el sitio donde la variable tiene validez, de no indicar otra cosa, la variable tendrá su ámbito dentro de la página en la que ha sido creada y no podrá ser utilizada en otra página. Podemos pasar variables en php en la misma página o pasarlas de una página a otra con el método $_POST, indicado para los formularios y los datos sensibles y con $_GET, indicado para enviar datos por la url. Vamos a ver los dos métodos y distintas formas de enviar los datos y recibirlos.
En el mismo documento con $_POST
Creamos un formulario que contenga un campo oculto con un valor que comprobaremos posteriormente al enviar el formulario. Comprobamos si ha llegado algo por post, para ello utilizamos $_SERVER[“REQUEST_METHOD”] para comprobar que se ha enviado algo por el método post contenga o no contenga datos, en mi opinión es más seguro que usar solo $_POST y de esta forma nos ahorramos los mensajes de error en caso de que no recibamos nada, en caso de no recibir datos mostraremos el formulario.
Una vez comprobado $_SERVER[“REQUEST_METHOD”] comprobamos el valor del campo oculto y si es correcto continuamos comprobando si el valor del campo nombre viene vacío, en ese caso mostraremos un mensaje para que el usuario sepa que no ha enviado nada, en caso de recibir los datos le mostramos un mensaje con su nombre.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Pasar variables en php</title>
</head>
<body>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if ($_POST['vienedelform'] == 'si') {
if ($_POST['nombre'] != '') {
echo 'Hola ' . $_POST['nombre'];
}else{
echo 'Has olvidado poner tu nombre';
}
}
}else{
?>
<form method="post">
<input type="hidden" name="vienedelform" value="si" />
<input type="text" placeholder="Nombre" name="nombre" value="" />
<input type="submit" value="Enviar" />
</form>
<?php } ?>
</body>
</html>
Enviar el formulario a otro documento con $_POST
Creamos un formulario nuevo y lo apuntamos a un archivo nuevo al que vamos a llamar respuesta.php, en este caso no comprobaremos nada en el index y haremos todas las comprobaciones en el archivo nuevo que va a ser el que reciba los datos por post.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Pasar variables en php</title>
</head>
<body>
<form action="respuesta.php" method="post">
<input type="hidden" name="vienedelform" value="si" />
<input type="text" placeholder="Nombre" name="nombre" value="" />
<input type="submit" value="Enviar" />
</form>
</body>
</html>
Creamos el archivo respuesta.php en el que vamos a hacer las mismas comprobaciones que antes, con la diferencia de que mostraremos un mensaje de error si se accede al archivo directamente por otra vía diferente a la del formulario.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if ($_POST['vienedelform'] == 'si') {
if ($_POST['nombre'] != '') {
echo 'Hola ' . $_POST['nombre'];
}else{
echo 'Has olvidado poner tu nombre';
}
}
}else{
echo 'Ha ocurrido un error';
}
?>
Enviar el formulario a otro documento con $_GET
Para pasar variables por el método $_GET tenemos que tener en cuenta que los valores que pasamos son visibles en la url por lo que debemos asegurarnos de que los datos que enviamos no sean datos sensibles como un email o password. Creamos un enlace que apuntará al archivo donde queremos recoger los valores enviados, este enlace debe terminar con ?nombre_variable=valor_variable. Si queremos pasar más variables en el enlace lo haremos con &, Ej: ?nombre_variable=valor_variable&nombre_variable2=valor_variable2. En el caso de que existan carácteres especiales utilizaremos urlencode() para enviar los valores, Ej: ?nombre_variable=<?php echo urlencode(‘valor_variable’); ?>.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Pasar variables en php</title>
</head>
<body>
<a href="respuesta.php?variable=<?php echo urlencode('valor');?>">Ir a respuesta.php</a>
</body>
</html>
La url a la que nos tiene que llevar el enlace es:
dominio.com/respuesta.php?variable=valor
Ahora podemos crear el archivo respuesta.php donde usaremos la variable recibida.
<?php
echo $_GET['variable'];
?>
También podemos tener varios enlaces con una misma variable pero diferentes valores en cada una de ellas.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Pasar variables en php</title>
</head>
<body>
<p><a href="respuesta.php?variable=valor1">Valor1</a></p>
<p><a href="respuesta.php?variable=valor2">Valor2</a></p>
<p><a href="respuesta.php?variable=valor3">Valor3</a></p>
</body>
</html>
Para comprobar si una variable tiene algún valor asignado usaremos de nuevo isset(). En este caso, en vez de anidar tantos bucles if, utilizaremos un switch, que pienso que en este caso es más adecuado, si no se recibe nigún dato, mostraremos un mensaje de error.
<?php
if( isset($_GET["variable"]) ){
$consulta=($_GET['variable']);
switch ($consulta) {
case 'valor1':
$variable = "valor1";
break;
case 'valor2':
$variable = "valor2";
break;
case 'valor3':
$variable = "valor3";
break;
}
echo $consulta;
}else{
echo 'No se han recibido datos';
}
?>
Estos son los métodos para enviar variables en php, aunque existen otras formas de guardar los datos más complejas como pueden ser las sesiones y las cookies de las que hablaremos más adelante.
Valoraciones
4 valoraciones
Tu valoración
Quizás te interese ...
Los parámetros son variables que recibe una función para utilizarlas en la ejecución de la misma, estos se pueden pasar de 3 formas...
En este artículo vamos a crear un mecanismo para mostrar las tablas de una base de datos en MySQL dinámicamente, el objetivo es que el...
Existen varios motivos a nivel profesional para permitir a un usuario modificar la hoja de estilos en un sitio web, uno de ellos y quizá el...
kamisama 24 mayo, 2021
entendible 😎👌 tenga un buen dia sr.
FERNANDO 27 noviembre, 2020
Y SI QUIERO MANDAR LOS DATOS EN UN LOGIN Y YA TENGO LA VERIFICACION CON EL ACTION SE SALTA TODO MI PROCESO ASI NO ME SIRVE
enrique 18 julio, 2020
Muy bien explicado
Mario Alarcon 30 diciembre, 2019
Muy Bueno.