Il faut un serveur Web, faisant tourner PHP, pour interpréter les scripts côté client de la page. Vous pouvez utiliser :
Toutes les solutions web intégrant (Apache/PHP/MariaDB) : Wampp, Lampp, Xampp, Mampp EasyPHP…
php -S 127.0.0.1:8000
Dans tous les cas, ne pas oublier de démarrer le serveur Http (Apache ou PHP).
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>phpInfo</title> </head> <body> <?php phpinfo(); ?> </body> </html>
Nommage : Un nom de variable
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Variables</title> </head> <body> <?php //un entier $i=5; echo($i); //un booléen $b=true; echo($b); ?> <br> <?php $str="1 chaîne"; echo "\$str est : ".gettype($str).".<br>\n"; echo $str."<br>"; echo $i." accessible depuis un autre bloc de script<br>\n"; echo "Ajout d'un entier et d'une chaîne : ".($i+$str)."<br>\n"; $i="devenu une chaîne"; echo "La variable $i est devenue une chaîne : ".$i."<br>\n"; echo 'La variable $i est devenue une chaîne : '.$i."<br>\n"; ?> </body> </html>
| Opérateur | Rôle | Type de contenu |
|---|---|---|
| $a + $b | addition | Numériques : entiers, décimaux… |
| $a - $b | soustraction | |
| $a * $b | multiplication | |
| $a / $b | division | |
| $a % $b | modulo | |
| - $a | opposé |
| Opérateur | Rôle | Type de contenu |
|---|---|---|
| $s1 . $s2 | Concaténation | Chaînes |
| $s1 .= $s2 | affectation concaténante |
| Opérateur | Équivalant |
|---|---|
| $a += $b | $a = $a + $b |
| $a -= $b | $a = $a - $b |
| $a *= $b | $a = $a * $b |
| $a /= $b | $a = $a / $b |
| $a %= $b | $a = $a % $b |
| $s .= $s1 | $s = $s . $s1 |
<?php
if ($a > $b) {
echo "a est plus grand que b";
}
?>
Si le code à exécuter ne comporte qu'une seule ligne, le bloc défini par { et } est facultatif.
Version contractée :
<?php $max=($a > $b)?$a:$b; ?>
<?php
if ($a > $b) {
echo "a est plus grand que b";
} else {
echo "a est plus petit ou égal à b";
}
?>
<?php
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a < $b) {
echo "a est plus petit que b";
} else {
echo "a est égal à b";
}
?>
$i = 1;
while ($i <= 10) {
echo $i++; /* La valeur affichée est $i avant l'incrémentation
(post-incrémentation) */
}
?>
La même boucle avec un for
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
?>
Une fonction se déclare de la manière suivante :
<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n){
echo "Exemple de fonction.\n";
return $retval;
}
?>
Aucun typage des variables, donc les arguments ne sont pas plus typés que le retour éventuel.
<?php
function concat($s1, $s2){
return $s1.$s2;
}
?>
Les fonctions peuvent prendre des paramètres optionnels (à la fin)
Dans l'exemple qui suit, $arg2 est un paramètre optionnel qui prend la valeur true s'il est ommis
<?php
function getValue($arg1, $arg2=true){
if($arg2)
return $arg1;
else
return "";
}
?>
Une fonction peut être appelée dans la page où elle est déclarée (ou incluse on le verra plus tard), avant même sa déclaration.
Exemple d'appels :
<?php
$a=getValue(5,true);
$b=getValue(2);
$s=getValue("Chaîne",false);
echo(getValue("Chaîne"));
?>
Les données passées dans l'URL, par la méthode get, sous la forme :
http:127.0.0.1/tps/tp1/maPage.php?module=M2105&dut=RT
sont récupérées grâce au tableau associatif $_GET dans la page cible de la requête :
<?php echo $_GET["dut"]; echo $_GET["module"]; ?>
<div> <form method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> <fieldset style="vertical-align: middle;"><legend>Connexion :</legend> <label for="nom">Nom : </label><input type="text" name="nom" id="nom"> <label for="password">Mot de passe : </label><input type="password" name="password" id="password"> <input type="submit" value="Valider"> <hr> <div id="remember"><input type="checkbox" id="ckRemember" name="ckRemember"><label for="ckRemember">Mémoriser mes informations de connexion</label></div> </fieldset> </form> </div>
Les données envoyées par la méthode post, généralement depuis un formulaire sont récupérées grâce au tableau associatif $_POST dans la page cible de la requête :
<?php var_dump($_POST); ?>
| Expression | Rôle |
|---|---|
| $_SERVER['PHP_SELF'] | URL de la page en cours (le formulaire est ici posté vers la page qui le contient) |
| $_POST | Tableau associatif des données postées |
| $_POST[“nom”] | Permet l'accès à la variable nom postée |
| isset($_POST[“nom”]) | Teste l’existence de la variable nom dans les en-têtes de la requête |
| $_SERVER['REQUEST_METHOD'] | Variable server donnant la méthode utilisée (POST ou GET) |
<?php
//Traitement du POST
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'){
echo "Votre nom : ".$_POST["nom"]."<br>";
echo "Votre mot de passe (hasché en sha1) : ".sha1($_POST["password"])."<br>";
if(isset($_POST["ckRemember"]))
echo "Mémorisation des infos : ".(($_POST["ckRemember"]=="on")?"oui":"non");
}
else {
//Affichage du Formulaire
?>
<div>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<fieldset style="vertical-align: middle;"><legend>Connexion :</legend>
<label for="nom">Nom : </label><input type="text" name="nom" id="nom">
<label for="password">Mot de passe : </label><input type="password" name="password" id="password">
<input type="submit" value="Valider">
<hr>
<div id="remember"><input type="checkbox" id="ckRemember" name="ckRemember"><label for="ckRemember">Mémoriser mes informations de connexion</label></div>
</fieldset>
</form>
</div>
<?php }?>
Rq :
A noter que le mot de passe n'est haché en sha1 qu'à sa réception sur le serveur, il passe donc en clair sur le réseau.