Documentació de la pràctica 4.1: diferència entre les revisions
Cap resum de modificació |
|||
| (Hi ha 14 revisions intermèdies que no es mostren del mateix usuari) | |||
| Línia 1: | Línia 1: | ||
__TOC__ | |||
== Creació de la galeta == | == Creació de la galeta == | ||
Sempre que en una pàgina web s’incloguin galetes, totes les seves gestions s’han de fer abans del codi HTML. És per això que el codi comença directament amb la creació de la galeta. | Sempre que en una pàgina web s’incloguin galetes, totes les seves gestions s’han de fer abans del codi HTML. És per això que el codi comença directament amb la creació de la galeta. | ||
La galeta es crea quan el formulari d’entrada (de tipus POST) rep els dos valors, el nom i cognom. | La galeta es crea quan el formulari d’entrada (de tipus POST) rep els dos valors, el nom i cognom. | ||
// En el moment que el formulari s'envia com a POST | // En el moment que el formulari s'envia com a POST | ||
if ($_SERVER['REQUEST_METHOD'] === 'POST') { | if ($_SERVER['REQUEST_METHOD'] === 'POST') { | ||
if (isset($_POST['nom']) && isset($_POST['cognom'])) { // Comprovem que els dos camps tinguin un valor | |||
$nom = trim($_POST['nom']); // Assignem les variables als valors entrats | |||
$cognom = trim($_POST['cognom']); // Assignem les variables als valors entrats | |||
Seguidament, creem una variable que el seu valor serà els segons de la caducitat de la galeta | Seguidament, creem una variable que el seu valor serà els segons de la caducitat de la galeta | ||
// Temps de caducitat: 1 hora (per la creació de les galetes) | // Temps de caducitat: 1 hora (per la creació de les galetes) | ||
$temps_caducitat = 3600; | $temps_caducitat = 3600; | ||
I crearem una galeta amb les següents condicions: | I crearem una galeta amb les següents condicions: | ||
| Línia 19: | Línia 19: | ||
* Caducitat: 3600 segons | * Caducitat: 3600 segons | ||
* Ruta: Arrel (/) | * Ruta: Arrel (/) | ||
// Creem una galeta de nom "nom", el valor és la variable $nom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel) | |||
// Creem una galeta de nom "nom", el valor és la variable $nom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel) | setcookie('nom', $nom, time() + $temps_caducitat, '/'); | ||
setcookie('nom', $nom, time() + $temps_caducitat, '/'); | A més, crearem una altre galeta pel cognom | ||
// Creem una galeta de nom "cognom", el valor és la variable $cognom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel) | |||
// Creem una galeta de nom "cognom", el valor és la variable $cognom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel) | setcookie('cognom', $cognom, time() + $temps_caducitat, '/'); | ||
setcookie('cognom', $cognom, time() + $temps_caducitat, '/'); | Finalment, per tal de que prengui efecte el valor de la galeta, haurem de refrescar la pàgina. Ho realitzarem mitjançant una redirecció a la pròpia pàgina (com si fos un F5) | ||
// Un cop s'envia el formulari, s'ha de refrescar la pàgina. Indiquem que es redirigeix a la mateixa pàgina (un F5) | |||
// Un cop s'envia el formulari, s'ha de refrescar la pàgina. Indiquem que es redirigeix a la mateixa pàgina (un F5) | header('Location: ' . $_SERVER['PHP_SELF']); | ||
header('Location: ' . $_SERVER['PHP_SELF']); | El codi sencer per la creació de la galeta és el següent: | ||
// En el moment que el formulari s'envia com a POST | |||
// En el moment que el formulari s'envia com a POST | if ($_SERVER['REQUEST_METHOD'] === 'POST') { | ||
if ($_SERVER['REQUEST_METHOD'] === 'POST') { | if (isset($_POST['nom']) && isset($_POST['cognom'])) { // Comprovem que els dos camps tinguin un valor | ||
$nom = trim($_POST['nom']); // Assignem les variables als valors entrats | |||
$cognom = trim($_POST['cognom']); // Assignem les variables als valors entrats | |||
// Temps de caducitat: 1 hora (per la creació de les galetes) | |||
$temps_caducitat = 3600; | |||
// Creació de galetes | |||
// Creem una galeta de nom "nom", el valor és la variable $nom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel) | |||
setcookie('nom', $nom, time() + $temps_caducitat, '/'); | |||
// Creem una galeta de nom "cognom", el valor és la variable $cognom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel) | |||
setcookie('cognom', $cognom, time() + $temps_caducitat, '/'); | |||
// Un cop s'envia el formulari, s'ha de refrescar la pàgina. Indiquem que es redirigeix a la mateixa pàgina (un F5) | |||
header('Location: ' . $_SERVER['PHP_SELF']); | |||
exit; | |||
} | |||
} | |||
} | |||
== Esborrament de la galeta == | == Esborrament de la galeta == | ||
| Línia 56: | Línia 54: | ||
Per esborrar una galeta únicament cal especificar el nom de la galeta, indicar un valor "buit" i un temps negatiu, indicant que ja ha caducat<pre> | Per esborrar una galeta únicament cal especificar el nom de la galeta, indicar un valor "buit" i un temps negatiu, indicant que ja ha caducat<pre> | ||
setcookie('nom', '', time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat) | setcookie('nom', '', time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat) | ||
setcookie('cognom', '', time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat) | setcookie('cognom', '', time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat) | ||
</pre>I a l'igual que amb la creació de la galeta, per tal de que prengui efecte sobre la pàgina principal, haurem de refrescar-la | |||
// Redirecció a la mateixa pàgina, un "F5" | |||
header('Location: ' . $_SERVER['PHP_SELF']); | |||
El codi sencer per l'esborrament de la galeta és el següent: | |||
</ | // Processament d'esborrat de galetes | ||
if (isset($_GET['esborrar'])) { // En el moment que premem el botó esborrar | |||
<nowiki> </nowiki> setcookie('nom', <nowiki>''</nowiki>, time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat) | |||
<nowiki> </nowiki> setcookie('cognom', <nowiki>''</nowiki>, time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat) | |||
<nowiki> </nowiki> | |||
<nowiki> </nowiki> // Redirecció a la mateixa pàgina, un "F5" | |||
<nowiki> </nowiki> header('Location: ' . $_SERVER['PHP_SELF']); | |||
<nowiki> </nowiki> exit; | |||
} | |||
== Pàgina inicial segons l'existència de galetes == | == Pàgina inicial segons l'existència de galetes == | ||
Abans d'escriure codi HTML, hem de definir una variable boleana que comprova si hi ha galeta definida o no. | |||
// Comprova si existeixen galetes | Abans d'escriure codi HTML, hem de definir una variable boleana que comprova si hi ha galeta definida o no. | ||
$te_galetes = isset($_COOKIE['nom']) && isset($_COOKIE['cognom']); // Si la cookie "nom" i "cognom" tenen algun valor, retorna "True", en cas contrari, "False" | // Comprova si existeixen galetes | ||
?> | $te_galetes = isset($_COOKIE['nom']) && isset($_COOKIE['cognom']); // Si la cookie "nom" i "cognom" tenen algun valor, retorna "True", en cas contrari, "False" | ||
?> | |||
En aquest punt ja hem definit tots els aspectes per la gestió de les galetes i podem començar a crear el codi HTML | |||
El codi HTML tindrá dues parts: la primera en cas que hi hagi una galeta definida i la segona en cas que no hi hagi cap galeta definida. | El codi HTML tindrá dues parts: la primera en cas que hi hagi una galeta definida i la segona en cas que no hi hagi cap galeta definida. | ||
Per comprovar si hi ha alguna galeta definida, realitzarem un condicional que comprovi la variable $te_galetes | Per comprovar si hi ha alguna galeta definida, realitzarem un condicional que comprovi la variable $te_galetes | ||
<?php if ($te_galetes){ ?> | <?php if ($te_galetes){ ?> | ||
En cas que hi hagi una galeta definida, mostrarà el nom i cognom, juntament amb un botó per esborrar la galeta<pre> | |||
<h1>Benvingut de nou, <?php echo htmlspecialchars($_COOKIE['nom'] . ' ' . $_COOKIE['cognom']); ?></h1> | |||
<form method="get"> | <form method="get"> | ||
<button type="submit" name="esborrar" value="1">Esborreu les galetes</button> <!-- Botó per esborrar la cookie --> | <button type="submit" name="esborrar" value="1">Esborreu les galetes</button> <!-- Botó per esborrar la cookie --> | ||
</form> | </form> | ||
</pre>En cas que no hi hagi cap galeta definida (i la variable $te_galetes és fals), mostrarà el formulari per introduir el nom i cognom< | </pre>En cas que no hi hagi cap galeta definida (i la variable $te_galetes és fals), mostrarà el formulari per introduir el nom i cognom | ||
<h1>Introdueix el nom i cognoms</h1> | <nowiki><h1>Introdueix el nom i cognoms</h1></nowiki> | ||
< | <form method="post"> | ||
<form method="post"> | <nowiki><label>Nom:</label></nowiki><nowiki><br></nowiki> | ||
<nowiki><input type="text" name="nom" required></nowiki> <nowiki><br></nowiki><nowiki><br></nowiki> | |||
<nowiki><label>Cognom:</label></nowiki><nowiki><br></nowiki> | |||
<nowiki><input type="text" name="cognom" required></nowiki> <nowiki><br></nowiki><nowiki><br></nowiki> | |||
<button type="submit">Desa</button> | |||
</form> | |||
</form> | El codi sencer del que es mostra a la pàgina, incloent-hi la condició de les galetes, és el següent: | ||
<?php if ($te_galetes){ ?> | |||
<?php if ($te_galetes){ ? | <nowiki><h1>Benvingut de nou, <?php echo htmlspecialchars($_COOKIE['nom'] . ' ' . $_COOKIE['cognom']); ?></h1></nowiki> | ||
<form method="get"> | |||
<button type="submit" name="esborrar" value="1">Esborreu les galetes</button> | |||
</form> | |||
<?php } else { ?> | |||
<nowiki><h1>Introdueix el nom i cognoms</h1></nowiki> | |||
<form method="post"> | |||
<nowiki><label>Nom:</label></nowiki><nowiki><br></nowiki> | |||
<nowiki><input type="text" name="nom" required></nowiki> <nowiki><br></nowiki><nowiki><br></nowiki> | |||
<nowiki><label>Cognom:</label></nowiki><nowiki><br></nowiki> | |||
<nowiki><input type="text" name="cognom" required></nowiki> <nowiki><br></nowiki><nowiki><br></nowiki> | |||
<button type="submit">Desa</button> | |||
</form> | |||
<?php }; ?> | |||
Tal i com està escrit el codi, podem veure que el condicional es pot dividir en tres "seccions" de PHP. Això permet escriure el codi HTML natiu i no mitjançant PHP mitjançant echos constantment. Tot i que el codi PHP es "tanca" sense haver acabat un condicional, no afecta al funcionament del codi per com l'interpreta PHP. | |||
Si fóssim l'intérpret de PHP, ho veuríem així, tot i estar en "seccions" separades: | Si fóssim l'intérpret de PHP, ho veuríem així, tot i estar en "seccions" separades: | ||
<?php if ($te_galetes){ | <?php if ($te_galetes){ | ||
.......... | |||
php } else { | php } else { | ||
.......... | |||
}; | }; | ||
Revisió de 14:52, 16 des 2025
Creació de la galeta
Sempre que en una pàgina web s’incloguin galetes, totes les seves gestions s’han de fer abans del codi HTML. És per això que el codi comença directament amb la creació de la galeta.
La galeta es crea quan el formulari d’entrada (de tipus POST) rep els dos valors, el nom i cognom.
// En el moment que el formulari s'envia com a POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['nom']) && isset($_POST['cognom'])) { // Comprovem que els dos camps tinguin un valor
$nom = trim($_POST['nom']); // Assignem les variables als valors entrats
$cognom = trim($_POST['cognom']); // Assignem les variables als valors entrats
Seguidament, creem una variable que el seu valor serà els segons de la caducitat de la galeta
// Temps de caducitat: 1 hora (per la creació de les galetes) $temps_caducitat = 3600;
I crearem una galeta amb les següents condicions:
- Nom: "nom"
- valor: Variable $nom definida anteriorment
- Caducitat: 3600 segons
- Ruta: Arrel (/)
// Creem una galeta de nom "nom", el valor és la variable $nom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel)
setcookie('nom', $nom, time() + $temps_caducitat, '/');
A més, crearem una altre galeta pel cognom
// Creem una galeta de nom "cognom", el valor és la variable $cognom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel)
setcookie('cognom', $cognom, time() + $temps_caducitat, '/');
Finalment, per tal de que prengui efecte el valor de la galeta, haurem de refrescar la pàgina. Ho realitzarem mitjançant una redirecció a la pròpia pàgina (com si fos un F5)
// Un cop s'envia el formulari, s'ha de refrescar la pàgina. Indiquem que es redirigeix a la mateixa pàgina (un F5)
header('Location: ' . $_SERVER['PHP_SELF']);
El codi sencer per la creació de la galeta és el següent:
// En el moment que el formulari s'envia com a POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['nom']) && isset($_POST['cognom'])) { // Comprovem que els dos camps tinguin un valor
$nom = trim($_POST['nom']); // Assignem les variables als valors entrats
$cognom = trim($_POST['cognom']); // Assignem les variables als valors entrats
// Temps de caducitat: 1 hora (per la creació de les galetes)
$temps_caducitat = 3600;
// Creació de galetes
// Creem una galeta de nom "nom", el valor és la variable $nom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel)
setcookie('nom', $nom, time() + $temps_caducitat, '/');
// Creem una galeta de nom "cognom", el valor és la variable $cognom, el temps de caducitat ("time" és l'hora d'ara + el temps desitjat) i la ubicació (l'arrel)
setcookie('cognom', $cognom, time() + $temps_caducitat, '/');
// Un cop s'envia el formulari, s'ha de refrescar la pàgina. Indiquem que es redirigeix a la mateixa pàgina (un F5)
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
}
Esborrament de la galeta
Seguidament, haurem de definir com s'elimina la galeta. Això es realitzarà quan es premi el botó d'esborrar les galetes.
Per esborrar una galeta únicament cal especificar el nom de la galeta, indicar un valor "buit" i un temps negatiu, indicant que ja ha caducat
setcookie('nom', '', time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat)
setcookie('cognom', '', time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat)
I a l'igual que amb la creació de la galeta, per tal de que prengui efecte sobre la pàgina principal, haurem de refrescar-la
// Redirecció a la mateixa pàgina, un "F5"
header('Location: ' . $_SERVER['PHP_SELF']);
El codi sencer per l'esborrament de la galeta és el següent:
// Processament d'esborrat de galetes
if (isset($_GET['esborrar'])) { // En el moment que premem el botó esborrar
setcookie('nom', '', time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat)
setcookie('cognom', '', time() - 3600, '/'); // La cookie "nom" agafa un valor "buit" i amb un temps de caducitat negatiu (ja ha caducat)
// Redirecció a la mateixa pàgina, un "F5"
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
Pàgina inicial segons l'existència de galetes
Abans d'escriure codi HTML, hem de definir una variable boleana que comprova si hi ha galeta definida o no.
// Comprova si existeixen galetes $te_galetes = isset($_COOKIE['nom']) && isset($_COOKIE['cognom']); // Si la cookie "nom" i "cognom" tenen algun valor, retorna "True", en cas contrari, "False" ?>
En aquest punt ja hem definit tots els aspectes per la gestió de les galetes i podem començar a crear el codi HTML
El codi HTML tindrá dues parts: la primera en cas que hi hagi una galeta definida i la segona en cas que no hi hagi cap galeta definida.
Per comprovar si hi ha alguna galeta definida, realitzarem un condicional que comprovi la variable $te_galetes
<?php if ($te_galetes){ ?>
En cas que hi hagi una galeta definida, mostrarà el nom i cognom, juntament amb un botó per esborrar la galeta
<h1>Benvingut de nou, <?php echo htmlspecialchars($_COOKIE['nom'] . ' ' . $_COOKIE['cognom']); ?></h1>
<form method="get">
<button type="submit" name="esborrar" value="1">Esborreu les galetes</button> <!-- Botó per esborrar la cookie -->
</form>
En cas que no hi hagi cap galeta definida (i la variable $te_galetes és fals), mostrarà el formulari per introduir el nom i cognom
<h1>Introdueix el nom i cognoms</h1>
<form method="post">
<label>Nom:</label><br>
<input type="text" name="nom" required> <br><br>
<label>Cognom:</label><br>
<input type="text" name="cognom" required> <br><br>
<button type="submit">Desa</button>
</form>
El codi sencer del que es mostra a la pàgina, incloent-hi la condició de les galetes, és el següent:
<?php if ($te_galetes){ ?>
<h1>Benvingut de nou, <?php echo htmlspecialchars($_COOKIE['nom'] . ' ' . $_COOKIE['cognom']); ?></h1>
<form method="get">
<button type="submit" name="esborrar" value="1">Esborreu les galetes</button>
</form>
<?php } else { ?>
<h1>Introdueix el nom i cognoms</h1>
<form method="post">
<label>Nom:</label><br>
<input type="text" name="nom" required> <br><br>
<label>Cognom:</label><br>
<input type="text" name="cognom" required> <br><br>
<button type="submit">Desa</button>
</form>
<?php }; ?>
Tal i com està escrit el codi, podem veure que el condicional es pot dividir en tres "seccions" de PHP. Això permet escriure el codi HTML natiu i no mitjançant PHP mitjançant echos constantment. Tot i que el codi PHP es "tanca" sense haver acabat un condicional, no afecta al funcionament del codi per com l'interpreta PHP.
Si fóssim l'intérpret de PHP, ho veuríem així, tot i estar en "seccions" separades:
<?php if ($te_galetes){
..........
php } else {
..........
};