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

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

por entreunosyceros
Publicado el: Última actualización:

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 ...

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

Responder
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.

Responder

Deja tu comentario

* Al utilizar este formulario, acepta que este sitio web almacene y maneje sus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.