Inicio Apuntes FPApuntes DAW Ejercicio Básico 30 PHP: Guardar y recuperar preferencias del usuario con cookies

Ejercicio Básico 30 PHP: Guardar y recuperar preferencias del usuario con cookies

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

cookies PHPUna vez más aquí, una vez más para dejar un nuevo ejercicio de PHP. En esta ocasión vamos a realizar un pequeño ejercicio con las cookies del navegador web.

En este ejercicio que se plantea hoy se creará un formulario que permita seleccionar las preferencias en un vuelo. Los datos a introducir serán los siguientes:

• Nombre del usuario
• Asiento: pasillo, ventanilla o centro.
• Menú: vegetariano, no-vegetariano, diabético o infantil.
• Aeropuertos en los que está interesado (checkbox): Londres (LHR), París (CDG), Roma (CIA), Ibiza (IBZ), Singapur (SIN), Hong Kong (HKG), Malta (MLA) y Bombay (BOM).

Una vez enviado el formulario se mostrará vacío dicho formulario. Al volver a cargar el formulario se incluirán los valores anteriormente seleccionados por el usuario, que estarán guardados en una cookies.

Cuando el usuario envíe el formulario, se guardarán los nuevos valores en la cookie y se volverá a mostrar el formulario con dichos valores.

Para realizar un control de las cookies más cómodo, es altamente aconsejable usar Cookies Manager +.

Código del ejercicio con Cookies

Una vez aclarado el ejercicio a realizar … aquí va el código …

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Ejercicio 30</title>
    </head>
    <body>
    <?php
    /* 30. Guardar y recuperar preferencias del usuario con cookies
     * 
      Se creará un formulario que permita seleccionar las preferencias en un vuelo. Los datos
      a introducir serán los siguientes:
      • Nombre
      • Asiento: pasillo, ventanilla o centro.
      • Menú: vegetariano, no-vegetariano, diabético o infantil.
      • Aeropuertos en los que está interesado (checkbox): Londres (LHR), París
      (CDG),  Roma  (CIA),  Ibiza  (IBZ),  Singapur  (SIN),  Hong  Kong  (HKG),
      Malta (MLA) y Bombay (BOM).
      Cuando se muestre el formulario, se incluirán los valores anteriormente seleccionados
      por el usuario, que estarán guardados en una cookie.
      Cuando el usuario envíe el formulario, se guardarán los nuevos valores en la cookie y se
      volverá a mostrar el formulario con dichos valores */

 if (isset($_POST['enviar'])) {
 	$dieta=$_POST["dieta"];
 	$asiento=$_POST["asiento"];
//****************************************************************************************
//Cookie nombre de usuario

        setcookie("usuario", $_POST['nombre'], time() + 36000);
        
//****************************************************************************************
//Cookie asiento
		switch ($asiento) {
		     	case 'Pasillo':
		     		setcookie("Pasillo", $_POST['asiento'], time() + 36000);
		     		break;
		     	case 'Ventanilla':
		     		setcookie("Ventanilla", $_POST['asiento'], time() + 36000);
		     		break;
		     	case 'Centro':
		     		setcookie("Centro", $_POST['asiento'], time() + 36000);
		     		break;
		     }     
//****************************************************************************************
//Cookie dieta        
        if ($dieta=="Vegetariano")
        	setcookie("Vegetariano", $_POST['dieta'], time() + 36000);
        if ($dieta=="NoVegetariano")
        	setcookie("NoVegetariano", $_POST['dieta'], time() + 36000);
        if ($dieta=="Diabetico")
        	setcookie("Diabetico", $_POST['dieta'], time() + 36000);
        if ($dieta=="Infantil")
        	setcookie("Infantil", $_POST['dieta'], time() + 36000);
//****************************************************************************************
//Cookie aeropuerto        
        if(isset($_POST['LHR'])){setcookie("LHR", $_POST['LHR'], time() + 36000);}
        if(isset($_POST['CDG'])){setcookie("CDG", $_POST['CDG'], time() + 36000);}
        if(isset($_POST['IBZ'])){setcookie("IBZ", $_POST['IBZ'], time() + 36000);}
        if(isset($_POST['SIN'])){setcookie("SIN", $_POST['SIN'], time() + 36000);}
        if(isset($_POST['HKG'])){setcookie("HKG", $_POST['HKG'], time() + 36000);}
        if(isset($_POST['MLA'])){setcookie("MLA", $_POST['MLA'], time() + 36000);}
        if(isset($_POST['BOM'])){setcookie("BOM", $_POST['BOM'], time() + 36000);}
        if(isset($_POST['CIA'])){setcookie("CIA", $_POST['CIA'], time() + 36000);}
        
    }
    ?>
	<form method="post" action="index.php" name="Vuelos">
            <table align="center">
            	<th colspan="2">
            		ViajesPum!!
            		<hr>
            	</th>
                <tr>
                    <td>
                    	<b>Nombre Usuario:</b>
                    </td>
                    <td>
                    	<input type="text" name="nombre" 
                    	value="<?php if(isset($_COOKIE["usuario"])){echo $_COOKIE['usuario'];} ?>">
                    </td>
                </tr>
                <tr>
                    <td>
                    	<b>Asiento:</b>
                    </td>
                    <td>
                    	<select name="asiento">
                            <option value="Pasillo" <?php if(isset($_COOKIE["Pasillo"])){ echo "selected" ;}?>>Pasillo</option>

                            <option value="Ventanilla" <?php if(isset($_COOKIE["Ventanilla"])){ echo "selected" ;} ?>>Ventanilla</option>

                            <option value="Centro" <?php if(isset($_COOKIE["Centro"])){ echo "selected" ;} ?>>Centro</option>
						</select>
                    </td>
                </tr>
                <tr>
                    <td><b>Menu:</b></td>
                    <td>
                        <select name="dieta">
                            <option value="NoVegetariano" <?php if(isset($_COOKIE["NoVegetariano"])){ echo "selected";} ?>>No vegetariano</option>

                            <option value="Vegetariano" <?php if(isset($_COOKIE["Vegetariano"])){echo "selected";} ?>>Vegetariano</option>
                            
                            <option value="Diabetico" <?php if(isset($_COOKIE["Diabetico"])){echo "selected";} ?>>Diab&eacute;tico</option>
                            
                            <option value="Infantil" <?php if(isset($_COOKIE["Infantil"])){echo "selected";} ?>>Infantil</option>
                        </select> 
                    </td>
                </tr>
                <tr>
                    <td>
                        <b>Aeropuertos<br/>de interés:</b>
                    </td>

                    <td>
                        <input <?php if(isset($_COOKIE["LHR"])){echo " checked ";} ?> type="checkbox" name="LHR" value="Londres(LHR)"><b>Londres (LHR)</b><br>
                        <input <?php if(isset($_COOKIE["CDG"])){echo " checked ";} ?>type="checkbox" name="CDG" value="París(CDG)"><b>Par&iacute;s (CDG)</b><br>
                        <input <?php if(isset($_COOKIE["CIA"])){echo " checked ";} ?>type="checkbox" name="CIA" value="Roma(CIA)"><b>Roma (CIA)</b><br>
                        <input <?php if(isset($_COOKIE["IBZ"])){echo " checked ";} ?>type="checkbox" name="IBZ" value="Ibiza(IBZ)"><b>Ibiza (IBZ)</b><br>
                        <input <?php if(isset($_COOKIE["SIN"])){echo " checked ";} ?>type="checkbox" name="SIN" value="Singapur(SIN)"><b>Singapur (SIN)</b><br>
                        <input <?php if(isset($_COOKIE["HKG"])){echo " checked ";} ?>type="checkbox" name="HKG" value="Hong Kong(HKG)"><b>Hong Kong (HKG)</b><br>
                        <input <?php if(isset($_COOKIE["MLA"])){echo " checked ";} ?>type="checkbox" name="MLA" value="Malta(MLA)"><b>Malta (MLA)</b><br>
                        <input <?php if(isset($_COOKIE["BOM"])){echo " checked ";} ?>type="checkbox" name="BOM" value="Bombay(BOM)"><b>Bombay (BOM)</b><br>
					</td>
                </tr>

                <tr>                    
                    <td colspan="2" align="center">
                        <input type="submit" name="enviar" value="Enviar"/>
                    </td>
                </tr>
            </table>
        </form>

    </body>
</html>

Si te interesa ver este ejercicio funcionando, en su día lo publiqué en este enlace. Aun que he de decir que a día de hoy  no tengo muy claro que siga funcionando. Es evidente que este ejercicio ya tiene demasiado tiempo, pues lo hice allá por el 2013, por lo que posiblemente este código a día de hoy se pueda optimizar muchísimo o incluso plantearlo de otra forma.

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

2 Comentarios

yolanda 4 enero, 2020 - 11:52 AM

Buenos días!!!
El codigo del ejercicio no aparece en la pagina. Como puedo hacer para verlo?
Me gustaria poder ver el codigo del ejercicio ya que quiero hacer algo parecido.
Muchas gracias

Respuesta
sapoclay 4 enero, 2020 - 1:51 PM

Hola. El código del ejercicio lo acabo de recolocar en el artículo. He de decir que esto hace mucho tiempo que lo escribí, y la verdad es que no recuerdo si funcionaba o no. Échale un vistazo y si te sirve, perfecto. Salu2 y gracias por avisarme del problema.

Respuesta
Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.