
Problemas de sesión y cookies
Publicado por anonymous (1 intervención) el 24/03/2022 11:54:34
Buenas a tod@s,
Soy nuevo en el foro en concreto y en la informática en general. Quiero pedir disculpas por si estoy preguntando en una sección del foro que no corresponde y agradecería que se me inidicara la manera de hacerlo correctamente, si fuera el caso.
Estoy empezando a hacer alguna cosa en PHP y con frecuencia me quedo atascado, así que cualquier ayuda será bien recibida y agradecida. En este caso, aunque algo me dice que será el primero de varios, tengo el siguiente código:
Con este código pretendo hacer lo siguiente:
-Establecer un campo cp y uno telefono
-Establecer un desplegable de ciudades, además de un botón Grabar ciudad, que almacena la selección en una cookie
-Establecer dos botones: uno Guardar, que almacena los datos de cp y telefono en una sesión; y otro Borrar, que borra tanto los datos de cp y telefono en la sesión como la cookie con el dato de la ciudad
-Si no se ha establecido sesión, la página te dirige a otra llamada login.php
-Si la sesión ya está establecida, los valores introducidos/seleccionados deben aparecer por pantalla
Mis problemas actualmente son:
-Desconozco si lo que estoy haciendo sentido o no, por lo que me gustaría que alguien me dijera qué tal está el código
-Más concretamente, tengo 2 problemas: la cookie no se guarda y el botón Borrar no borra nada
Probablemente haya más errores, pero no alcanzo a verlos ya que, al probar el código, no puedo ver más allá de los errores que planteo. Por tanto, estaré encantado de que se me indique cualquier cosa adicional que esté mal.
Muchas gracias por adelantado.
Soy nuevo en el foro en concreto y en la informática en general. Quiero pedir disculpas por si estoy preguntando en una sección del foro que no corresponde y agradecería que se me inidicara la manera de hacerlo correctamente, si fuera el caso.
Estoy empezando a hacer alguna cosa en PHP y con frecuencia me quedo atascado, así que cualquier ayuda será bien recibida y agradecida. En este caso, aunque algo me dice que será el primero de varios, tengo el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<!DOCTYPE html>
<html lang="es">
<?php
// Inicializar la sesión
session_start();
if(isset($_POST["g_ciudad"])){
$ciudad = $_POST["g_ciudad"];
setcookie("ciudad_", $ciudad, time()+3600);
}
// Borrar todas las variables de sesión
if(isset($_POST["borrar"])){
setcookie("ciudad_", $ciudad, 1);
unset($_SESSION);
session_destroy();
}else if(isset($_POST["grabar"])){
if(isset($_POST["telefono"]) && isset($_POST["cp"])){
$telefono = $_POST["telefono"];
$cp = $_POST["cp"];
if($telefono != "" && $cp != ""){
$_SESSION["telefono"] = $telefono;
$_SESSION["cp"] = $cp;
header("HTTP/1.1 301 Moved Permanently");
header("Location: sesion.php");
}else{
header("HTTP/1.1 301 Moved Permanently");
header("Location: login.php");
}
}
}
?>
<head>
<style>
@import url(estilo.css);
</style>
<title>Sesión</title>
</head>
<body>
<fieldset>
<legend>Sesión</legend>
<form action="sesion.php" method="post">
<div>
<label>Teléfono:</label>
<input type="tel" name="telefono" value="<?php if (isset($_SESSION["telefono"])) echo $_SESSION["telefono"] ?>" />
</div>
<div>
<label>Código postal:</label>
<input type="text" name="cp" value="<?php if (isset($_SESSION["cp"])) echo $_SESSION["cp"] ?>"/>
</div>
<div>
<label>Ciudad:</label>
<select name="ciudad" id="ciudad">
<option value="huelva" <?php if (isset($_SESSION["ciudad"]) && $_SESSION["ciudad"] == "huelva") echo "selected" ?>>Huelva</option>
<option value="sevilla" <?php if (isset($_SESSION["ciudad"]) && $_SESSION["ciudad"] == "sevilla") echo "selected" ?>>Sevilla</option>
<option value="cordoba" <?php if (isset($_SESSION["ciudad"]) && $_SESSION["ciudad"] == "cordoba") echo "selected" ?>>Córdoba</option>
<option value="cadiz" <?php if (isset($_SESSION["ciudad"]) && $_SESSION["ciudad"] == "cadiz") echo "selected" ?>>Cádiz</option>
<option value="granada" <?php if (isset($_SESSION["ciudad"]) && $_SESSION["ciudad"] == "granada") echo "selected" ?>>Granada</option>
<option value="malaga" <?php if (isset($_SESSION["ciudad"]) && $_SESSION["ciudad"] == "malaga") echo "selected" ?>>Málaga</option>
<option value="jaen" <?php if (isset($_SESSION["ciudad"]) && $_SESSION["ciudad"] == "jaen") echo "selected" ?>>Jaén</option>
<option value="almeria" <?php if (isset($_SESSION["ciudad"]) && $_SESSION["ciudad"] == "almeria") echo "selected" ?>>Almería</option>
</select>
</div>
<div>
<input type="submit" value="Grabar ciudad" name="g_ciudad" />
</div>
<div>
<input type="submit" value="Grabar" name="grabar" />
</div>
<input type="reset" value="Borrar" name="borrar" />
</form>
</fieldset>
</body>
</html>
Con este código pretendo hacer lo siguiente:
-Establecer un campo cp y uno telefono
-Establecer un desplegable de ciudades, además de un botón Grabar ciudad, que almacena la selección en una cookie
-Establecer dos botones: uno Guardar, que almacena los datos de cp y telefono en una sesión; y otro Borrar, que borra tanto los datos de cp y telefono en la sesión como la cookie con el dato de la ciudad
-Si no se ha establecido sesión, la página te dirige a otra llamada login.php
-Si la sesión ya está establecida, los valores introducidos/seleccionados deben aparecer por pantalla
Mis problemas actualmente son:
-Desconozco si lo que estoy haciendo sentido o no, por lo que me gustaría que alguien me dijera qué tal está el código
-Más concretamente, tengo 2 problemas: la cookie no se guarda y el botón Borrar no borra nada
Probablemente haya más errores, pero no alcanzo a verlos ya que, al probar el código, no puedo ver más allá de los errores que planteo. Por tanto, estaré encantado de que se me indique cualquier cosa adicional que esté mal.
Muchas gracias por adelantado.
Valora esta pregunta


0