====== PHP ====== Je me lance dans l'apprentissage de php, via [[https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql|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 : * 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|variables]]. Ex : * ''include()'' pour inclure une autre page. Ex : Pour récupérer une fonction dans une variable (pour un ''echo'' par exemple) : $var = fonction(paramètres); Pour créer une fonction 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 : 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 ===== Boucles ===== '; // Incrémenter le nombre de ligne : $nombre_de_lignes = $nombre_de_lignes + 1 $nombre_de_lignes++; } ?> '; } ?> 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) : '''' * Entrer une zone de texte (définir le nombre de lignes, largeur, etc) : '''' * Valider (bouton) : '' '' * Liste déroulante : * Case à cocher (résultat on/rien): '' ''. "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=''. '' '' * Champs cachés : l'information est transmise, mais non affichée au lecteur : '''' Pour récupérer les donnés (pour ''name='') : * ''
...
''(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 : !

La fonction ''strip_tags'' enlèvera les balises html qui auraient pu être ajoutées.
Pour résumer :



Choississez :



Êtes-vous d'accord ?

===== 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 ''''). 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 [[wpfr>Horodatage#PHP|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. 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']''