Table des matières

PHP

Je me lance dans l'apprentissage de php, via le cours d'Openclassrooms. Cette page sert d'aide-mémoire sur le langage.

Bases

Insérer un bout de code php dans du html :

<?php 
?>

Fonctions

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.

Variables

Type de données

Type de donnée Exemple
string “Du texte”
int 42
float 14.7
bool true/false
NULL (rien)

Écrire une variable

Exemple :

<?php
$age_du_capitaine = 17;
?>

Ne pas oublier : $ = ;

Conditions

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 !";
}
?>

Boucles

<?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 :

Formulaires

Code html pour la partie cadres :

Pour récupérer les donnés (pour name=) :

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>

Session et cookies

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']