Accueil/Informatique & Développement /Chapitre 05 /Fiche de révision

PHP

Recto-verso. À relire la veille. Le cours · Les exercices

Le principe

PHP s'exécute sur le serveur. Le navigateur ne reçoit que le HTML produit — jamais le code.

C'est pourquoi la sécurité se fait en PHP,
pas en JavaScript.

Il faut Apache (XAMPP), le fichier dans htdocs, et http://localhost/…

Syntaxe

php
<?php
echo "Bonjour";
?>

// commentaire
# commentaire
/* plusieurs lignes */

Variables & constantes

php
$nom  = "Alice";   // string
$age  = 25;        // int
$t    = 1.70;      // float
$ok   = true;      // bool

define("PI", 3.14);
echo PI;   // sans $ !

Le type peut changer en cours de route.

⚡ " " ou ' '

php
$b = "ami";
"bonjour $b"  → bonjour ami
'bonjour $b'  → bonjour $b

Concaténation avec . :

php
$c = $a . $b;   // ✔
$c = $a + $b;   // ✘ addition !

isset / empty

isset($x)existe et ≠ null
empty($x)vide : 0, "0", "", null, false, []

Piège : empty() rejette aussi le 0 légitime d'un formulaire.

Boucles

php
while ($i < 5) { }
do { } while ($i < 5);
for ($i=0; $i<5; $i++) { }

foreach ($tab as $v) { }
foreach ($tab as $k => $v) { }

foreach = la boucle des tableaux, y compris associatifs.

Retour à la ligne : <br>, pas \n.

Fonctions

php
function addition($a, $b) {
    return $a + $b;
}
echo addition(5, 3);   // 8

Ne mélangez pas echo et return : echo true affiche 1.

include / require

Si absent
includewarning, continue
requireerreur fatale, s'arrête
Le site marche sans ce fichier ?
Oui → include · Non → require

Formulaires

html
<form method="post"
      action="traitement.php">
  <input name="nom">
</form>
php
$nom = $_POST["nom"];

La clé = l'attribut name.

$_GET → URL, visible · $_POST → corps, caché · $_REQUEST → à éviter.

⚡ Sécurité

php
echo htmlspecialchars($nom);

Toujours avant d'afficher une donnée utilisateur → contre le XSS.

POST n'est pas chiffré : il est juste hors de l'URL. C'est HTTPS qui chiffre.

Valider en JS = confort. Revalider en PHP = sécurité.

Sessions

php
session_start();          // 1re ligne !
$_SESSION["user"] = "Paul";
echo $_SESSION["user"];
session_destroy();

session_start() avant tout affichage — même une ligne vide avant <?php.

Fichiers

"r"lecture
"w"écrase tout
"a"ajoute à la fin
"x"crée, échoue si existe
php
$f = fopen("log.txt", "a");
fwrite($f, "ligne\n");
fclose($f);

Journal → "a". Toujours fclose().