Je me lance dans l'apprentissage de php, via le cours d'Openclassrooms. Cette page sert d'aide-mémoire sur le langage.
Insérer un bout de code php dans du html :
<?php ?>
;
à la fin d'une instruction.//
/*
et */
.include()
pour inclure une autre page. Ex : <?php include("bla.php"); ?>
Pour récupérer une fonction dans une variable (pour un echo
par exemple) :
$var = fonction(paramètres);
Pour créer une fonction
<?php function NomDeLaFonction($parametre) { code; } ?>
Définir NomDeLaFonction et les paramètres et décrire la fonction dans les accolades.
Type de donnée | Exemple |
---|---|
string | “Du texte” |
int | 42 |
float | 14.7 |
bool | true/false |
NULL | (rien) |
Exemple :
<?php $age_du_capitaine = 17; ?>
Ne pas oublier : $
=
;
Symbole | Signification |
---|---|
== | Est égal à |
> | Est supérieur à |
< | Est inférieur à |
>= | Est supérieur ou égal à |
⇐ | Est inférieur ou égal à |
!= | Est différent de |
if
(condition/variable)
{}
facultatif else
{}
Exemple
<?php $age = 8; if ($age <= 12) { echo "Salut gamin !"; } else { echo "Salut vieux !"; } ?>
<?php while ($continuer_boucle == true) { // instructions à exécuter dans la boucle } ?> <?php $nombre_de_lignes = 1; while ($nombre_de_lignes <= 100) { echo 'bla<br />'; // Incrémenter le nombre de ligne : $nombre_de_lignes = $nombre_de_lignes + 1 $nombre_de_lignes++; } ?>
<?php for ($var = 1; $var <= 100; $var++) { echo 'Ceci est la ligne n°' . $var . '<br />'; } ?>
Pour for
:
Code html pour la partie cadres :
<input type="text" name="valeur" />
<textarea name="message" rows="8" cols="45">Exemple pré-remplit</textarea>
<input type="submit" value="Valider" />
<select name="choix"> <option value="choix1">Choix 1</option> <option value="choix2">Choix 2</option> </select>
<input type=“checkbox” name=“case” id=“case” /> <label for=“case”>Ma case à cocher</label>
. “Label” permet de cliquer sur le texte plutôt que la case pour cocher (asssocier id
et for
).checked=“checked”
. Tous les boutons d'un même choix partagent le même name=
. <input type=“radio” name=“question” value=“oui” id=“oui” checked=“checked” /> <label for=“oui”>Oui</label><input type=“radio” name=“question” value=“non” id=“non” /> <label for=“non”>Non</label>
<input type=“hidden” name=“pseudo” value=“monpseudo” />
Pour récupérer les donnés (pour name=
) :
<form action="cible.php" method="post"> ... </form>
(cible.php est le fichier où sera affiché le résultat après submit)
Sur les données récupérées par $_POST et $_GET, ajouter htmlspecialchars
pour bloquer l'interprétation de balises html. Exemple :
<?php echo htmlspecialchars($_POST['prenom']); ?> !</p>
La fonction strip_tags
enlèvera les balises html qui auraient pu être ajoutées.
Pour résumer :
<form action="cible.php" method="post"> <p> <input type="text" name="prenom" /> <br /> <textarea name="message" rows="8" cols="45"> Votre message ici. </textarea> <br />Choississez : <select name="choix"> <option value="choix1">Choix 1</option> <option value="choix2">Choix 2</option> <option value="choix3">Choix 3</option> <option value="choix4">Choix 4</option> </select> <br /> <input type="checkbox" name="case1" id="case1" /> <label for="case1">Ma case à cocher</label> <br /><input type="checkbox" name="case2" id="case2" /><label for="case2">Ma case à cocher 2</label> <br /><input type="checkbox" name="case3" id="case3" /><label for="case3">Ma case à cocher 3</label> <br /> Êtes-vous d'accord ? <input type="radio" name="frites" value="oui" id="oui" checked="checked" /> <label for="oui">Oui</label> <input type="radio" name="frites" value="non" id="non" /> <label for="non">Non</label> <br /> <input type="submit" value="Valider" /> </p> </form>
Le cookie ($_COOKIE
) est limité en taille, donc plus il y a d'infos à transiter, plus y'a de cookies.
La session ($_SESSION
) est gérée par php.
Si on utilise des informations de session, on doit ajouter le code php session_start()
au début de la page, avant les infos en html (y compris <!DOCTYPE>
).
Pour fermer la session d'un utilisateur avant la fin du délai : session_destroy()
On peut récupérer n'importe où les infos de session, ensuite.
$_SESSION['pseudo'] = 'Cémoi'; echo $_SESSION['pseudo']
Le cookie a un temps d'expiration défini par timestamp. Exemple pour un cookie d'un an : time() + 365*24*3600)
. Ajouter une sécurité “httponly” (le true à la fin) pour éviter des failles.
<?php setcookie('pseudo', 'Cémoi', time() + 365*24*3600, null, null, false, true); ?>
Comme pour la session, le cookie doit être défini avant tout et surtout avant le html. Un cookie par info, par exemple pour stocker le pseudo, un autre pour l'âge…
Pour l'afficher $_COOKIE['pseudo']