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 
?>
  • Toujours mettre un ; à la fin d'une instruction.
  • Commentaires sur une ligne : //
  • Commentaires sur plusieurs lignes, encadrés par /* et */.

Fonctions

  • echo pour afficher du texte ou le résultat de variables. Ex :
    <?php echo "bla"; ?>
  • 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.

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 :

  • La première variable est la valeur de départ de la variable
  • La seconde est la condition : tant que var est inférieure à 100, la boucle est exécutée.
  • La troisième est ce qui est exécuté, ici l'incrémentation.

Formulaires

Code html pour la partie cadres :

  • Entrer une chaine de caractère (un nom par exemple) : <input type="text" name="valeur" />
  • Entrer une zone de texte (définir le nombre de lignes, largeur, etc) : <textarea name="message" rows="8" cols="45">Exemple pré-remplit</textarea>
  • Valider (bouton) : <input type="submit" value="Valider" />
  • Liste déroulante :
        <select name="choix">
        <option value="choix1">Choix 1</option>
        <option value="choix2">Choix 2</option>
        </select>
  • Case à cocher (résultat on/rien): <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).
  • Bouton radio, avec l'un présélectionné avec l'attribut 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>
  • Champs cachés : l'information est transmise, mais non affichée au lecteur : <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>

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

CC Attribution-Noncommercial-Share Alike 4.0 International Driven by DokuWiki
pratique/informatique/php.txt · Dernière modification : 30/11/2020 10:36 de 127.0.0.1