Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:programmation:php [2011/10/18 05:33] benoit |
informatique:programmation:php [2018/09/06 19:10] (Version actuelle) |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
====== PHP ====== | ====== PHP ====== | ||
- | * [[informatique:programmation:php:variables et tableaux]] | + | * [[informatique:programmation:php:Variables et tableaux]] |
- | * [[informatique:programmation:php:POO]] : Programmation Objet. | + | * [[informatique:programmation:php:Opérateurs]] |
+ | * [[informatique:programmation:php:Operations arithmétique]] | ||
+ | * [[informatique:programmation:php:Fonctions]] | ||
+ | * [[informatique:programmation:php:database|Base de données]] | ||
+ | * [[informatique:programmation:php:web|Web]] | ||
+ | * [[informatique:programmation:php:filesystem|Système de fichiers]] | ||
+ | * [[informatique:programmation:php:regex|Expressions régulières]] | ||
+ | * [[informatique:programmation:php:POO|Programmation Objet]] | ||
+ | * [[informatique:programmation:php:GD|Librairie GD]] | ||
- | ===== Variables ==== | ||
- | Déclaration de variable sous forme de tableau et affiche d'élément concaténés : | ||
- | ==== Variables tableau ==== | ||
- | <sxh php;> | ||
- | $id = Array(); | ||
- | $id['nom'] = 'Benoit'; | ||
- | $id['age'] = 33; | ||
- | echo 'Mon nom est '.$id['nom'].' et j\'ai '.$id['age'].' ans'."\n"; | ||
- | </sxh> | ||
- | |||
- | ==== Variables dynamiques ==== | ||
- | Variable de Variable : | ||
- | <sxh php;> | ||
- | <?php | ||
- | $var = 'hello'; | ||
- | $hello = 'coucou'; | ||
- | $coucou = 'toto'; | ||
- | echo $var."\n"; | ||
- | echo ${$var}."\n"; | ||
- | echo ${${$var}}."\n"; | ||
- | | ||
- | $tableau1 = array ('benoit', 'magalie', 'toto'); | ||
- | $tableau2 = array (33, 27, 20); | ||
- | | ||
- | //Ci-dessous, il suffit juste de changer la valeur de $var et c'est les données d'un tableau différent qui s'affichent. | ||
- | //$var = 'tableau1'; | ||
- | $var = 'tableau2'; | ||
- | | ||
- | $nb_elements = count (${$var}); | ||
- | | ||
- | for ($i=0; $i<$nb_elements; $i++) { | ||
- | echo ${$var}[$i]."\n"; | ||
- | } | ||
- | | ||
- | //echo $nb_elements."\n"; | ||
- | | ||
- | ?> | ||
- | </sxh> | ||
- | |||
- | ===== Fonctions ===== | ||
- | ==== Portée des variables ==== | ||
- | <sxh php;> | ||
- | <?php | ||
- | // Les variables inclus dans un autres script peuvent être exploité sans contraintes | ||
- | include ('include.php'); | ||
- | $var_interne = 'test'; | ||
- | echo $var_externe."\n"; | ||
- | echo $var_interne."\n"; | ||
- | | ||
- | // En revanche certaines règles s'imposent pour transmettre une variable dans une fonction | ||
- | $toto = 5; | ||
- | function ma_fonction () { | ||
- | // La valeur de toto n'est pas encore transmise, il y aura une erreur | ||
- | echo $toto."\n"; | ||
- | // Ici la valeur toto est transmise | ||
- | global $toto; | ||
- | // Elle peut désormais s'afficher | ||
- | echo $toto."\n"; | ||
- | } | ||
- | // On la fonction qu'on a créée | ||
- | ma_fonction(); | ||
- | ?> | ||
- | </sxh> | ||
- | |||
- | ==== Variable "Static" ==== | ||
- | <sxh php;> | ||
- | Une variable dite static est une variable locale à une fonction mais qui a la particularité de se souvenir de sa valeur. | ||
- | <?php | ||
- | function ma_fonction () { | ||
- | // La valeur ci-dessous sera toujours réinitialiser à un au lancement de la fonction | ||
- | //$toto = 1; | ||
- | // Si on souhaite conserver la dernière valeur de $toto il faut préfixer la déclaration de variable par "static" | ||
- | static $toto = 1; | ||
- | echo $toto."\n"; | ||
- | $toto++; | ||
- | } | ||
- | ma_fonction(); | ||
- | $nb_run = 5; | ||
- | $i = 1; | ||
- | while ($i < $nb_run) { | ||
- | ma_fonction(); | ||
- | $i = $i + 1; | ||
- | } | ||
- | </sxh> | ||
- | |||
- | ==== Transmettre une variable à une fonction ==== | ||
- | <sxh php;> | ||
- | <?php | ||
- | $toto = 'Coucou'; | ||
- | function ma_fonction ($var) { | ||
- | // Ci-dessous le echo sera en erreur car $toto inconnu | ||
- | //echo $toto."\n"; | ||
- | // Ci-dessous la variable $toto est transmise via la variable $var | ||
- | echo $var."\n"; | ||
- | } | ||
- | // On lance la fonction en transmettant la variable $toto | ||
- | ma_fonction(&$toto); | ||
- | ?> | ||
- | </sxh> | ||
- | |||
- | ===== Opérateurs ===== | ||
- | |||
- | ==== if, ifelse, else ==== | ||
- | $var1 = 3; | ||
- | $var2 = 3; | ||
- | | ||
- | if ($var1 == $var2) { | ||
- | echo 'var1 egal a var2'."\n"; | ||
- | } | ||
- | elseif ($var1 > $var2) { | ||
- | echo 'var1 superieur a var2'."\n"; | ||
- | } | ||
- | elseif ($var1 < $var2) { | ||
- | echo 'var1 inferieur a var2'."\n"; | ||
- | } | ||
- | |||
- | ==== switch ===== | ||
- | $myname = 'Benoit'; | ||
- | | ||
- | switch ($myname) { | ||
- | case 'Toto' : | ||
- | echo 'Ton nom est Toto'."\n"; | ||
- | break; | ||
- | case 'Titi' : | ||
- | echo 'Ton nom est Titi'."\n"; | ||
- | break; | ||
- | case 'Benoit' : | ||
- | echo 'Ton nom est Benoit'."\n"; | ||
- | break; | ||
- | default : | ||
- | echo 'je ne sais pas ton nom'."\n"; | ||
- | } | ||
- | |||
- | ==== for ==== | ||
- | $varfor = 10; | ||
- | for ($i = 0; $i < $varfor; $i++) { | ||
- | echo $i.' inferieur a '.$varfor."\n"; | ||
- | } | ||
- | echo $i.' egale a '.$varfor."\n"; | ||
- | |||
- | ==== while ==== | ||
- | $varwhile = 5; | ||
- | $i = 0; | ||
- | while ($i < $varwhile) { | ||
- | echo $i.' inferieur a '.$varwhile."\n"; | ||
- | $i = $i + 1; | ||
- | } | ||
- | |||
- | ===== File système ===== | ||
- | ==== Ouvrir, lire et écrire dans un fichier ==== | ||
- | $data = fopen('data.txt', 'w+'); | ||
- | // On ecrite texte | ||
- | fputs ($data, "texte\n"); | ||
- | // On se positionne au 4eme caractere depuis le debut du fichier | ||
- | fseek ($data, 4); | ||
- | // On insere a o au cinquieme caractere | ||
- | fputs ($data, "o\n"); | ||
- | // On reinsere tu texte partir de le sixieme postion | ||
- | fseek ($data, 5); | ||
- | fputs ($data, " ou SMS\n"); | ||
- | // On clos l'ouverture de fichier | ||
- | fclose ($data); | ||
- | //ON ROUVRE LE FICHIER ET affiche le contenu du fichier mais les 5 premiers caracteres | ||
- | $data = fopen('data.txt', 'r'); | ||
- | $contenu = fgets ($data, 6); | ||
- | echo $contenu."\n"; | ||
- | |||
- | ===== Web ===== | ||
- | ==== Traiter un formulaire Web ==== | ||
- | ===Page de saisie (formulaire.php):=== | ||
- | <html> | ||
- | <head> | ||
- | <title>Formulaire de test</title> | ||
- | </head> | ||
- | <body> | ||
- | <form action = "traitement.php" method="post"> | ||
- | Votre nom : <input type = "text" name = "nom"></br> | ||
- | Votre age : <input type = "text" name = "age"></br> | ||
- | <input type = "submit" value = "Soumettre"> | ||
- | </form> | ||
- | </body> | ||
- | </html> | ||
- | |||
- | === Page de traitement (traitement.php):=== | ||
- | <html> | ||
- | <head> | ||
- | <title>Traitement du formulaire</title> | ||
- | </head> | ||
- | <body> | ||
- | <?php | ||
- | //Methode classique | ||
- | echo 'Votre Nom est '.$_POST['nom'].' et votre age est '.$_POST['age'].'</br>'; | ||
- | //Methode simple, on récupère d'un coup toute les variables de type $_POST ce qui permet de simplifier la syntaxe pour l'usage des variables. | ||
- | extract ($_POST); | ||
- | echo 'Votre Nom est '.$nom.' et votre age est '.$age.'<br />'; | ||
- | ?> | ||
- | </body> | ||
- | </html> | ||
- | |||
- | ==== Cookies ==== | ||
- | |||
- | Page du formulaire (formulaire.php) : | ||
- | |||
- | <html> | ||
- | <head> | ||
- | <title>Formulaire de test</title> | ||
- | </head> | ||
- | <body> | ||
- | <?php | ||
- | // On verifie s'il le navigateur n'a pas de cookie nommé "pseudo" et qui à l'adresse de notre serveur Web. | ||
- | if (isset($_COOKIE['pseudo'])) { | ||
- | echo 'Bonjour '.$_COOKIE['pseudo']; | ||
- | } | ||
- | //Sinon on rempli le formulaire pour se faire connaitre | ||
- | else { | ||
- | echo '<form action = "traitement.php" method="post">'; | ||
- | echo ' Votre nom : <input type = "text" name = "nom"></br>'; | ||
- | echo ' Votre age : <input type = "text" name = "age"></br>'; | ||
- | echo ' <input type = "submit" value = "Soumettre">'; | ||
- | echo '</form>'; | ||
- | } | ||
- | ?> | ||
- | </body> | ||
- | </html> | ||
- | |||
- | Page de traitement (traitement.php) : | ||
- | <?php | ||
- | if (isset ($_POST['nom'])) { | ||
- | //On défini la durée de validité de notre cookies, ci-dessous 120 secondes | ||
- | $temp = 120; | ||
- | // On crée le Cookie en récupérant la valeur de "nom" saisie dans le formulaire. | ||
- | setcookie ("pseudo", $_POST['nom'], time() + $temp); | ||
- | // Fonction permettant de faire des redirections | ||
- | function redirection($url){ | ||
- | if (headers_sent()){ | ||
- | print('<meta http-equiv="refresh" content="0;URL='.$url.'">'); | ||
- | } | ||
- | else { | ||
- | header("Location:$url"); | ||
- | } | ||
- | } | ||
- | // On lance la fonction de redirection pour rediriger l'internaute vers formulaire.php | ||
- | redirection ('formulaire.php'); | ||
- | } | ||
- | else { | ||
- | echo 'La variable du formulaire n\'est pas déclarée.'; | ||
- | } | ||
- | ?> | ||
- | |||
- | ==== Sessions ==== | ||
- | Nous allons créer 4 pages : | ||
- | * Page contenant notre formulaire de saisie de login et mot de passe (index.htm) | ||
- | * Page permettant de traiter le formulaire et de traiter les paramètres de session (login.php) | ||
- | * Page affichant le contenu de la section membre (page_membre.php) | ||
- | * Page permettant de se déconnecter (logout.php) | ||
- | |||
- | === index.htm === | ||
- | <html> | ||
- | <head> | ||
- | <title>Formulaire de Login</title> | ||
- | </head> | ||
- | <body> | ||
- | <form action="login.php" method="post"> | ||
- | Votre login : <input type="text" name="login"><br /> | ||
- | Votre mot de passe : <input type="password" name="pwd"><br /> | ||
- | <input type="submit" value="Connexion"> | ||
- | </form> | ||
- | </body> | ||
- | </html> | ||
- | |||
- | === login.php === | ||
- | <?php | ||
- | // Ci-dessous les login et mot de passe valides defini en dur. Ces donnees seraient peut placees en base de données | ||
- | $login_valide = "moi"; | ||
- | $pwd_valide = "lemien"; | ||
- | // On verifie que le login et le mot de passe du formulaire sont definis | ||
- | if (isset($_POST['login']) && isset ($_POST['pwd'])){ | ||
- | // On compare le login et le mot de passe du formulaire avec les login et pass valide defini plus haut | ||
- | if ($login_valide == $_POST['login'] && $pwd_valide == $_POST['pwd']){ | ||
- | // S'ils correspondent on demarre la session | ||
- | session_start (); | ||
- | // On enregistre les parametres comme variables de sessions | ||
- | $_SESSION['login'] = $_POST['login']; | ||
- | $_SESSION['pwd'] = $_POST['pwd']; | ||
- | // On recupere quelques parametre concernant notre session | ||
- | $_SESSION['ID'] = session_id(); | ||
- | $_SESSION['name'] = session_name(); | ||
- | // On redirige le visiteur authentifié vers notre section membre | ||
- | header ('location: page_membre.php'); | ||
- | } | ||
- | else { | ||
- | // Sinon le visiteur est non reconnu | ||
- | echo '<body onLoad="alert(\'Membre non reconnu...\')">'; | ||
- | echo '<meta http-equiv="refresh" content="0;URL=index.htm"'; | ||
- | } | ||
- | } | ||
- | else { | ||
- | echo 'Veuillez renseigner tous les champs'; | ||
- | } | ||
- | ?> | ||
- | |||
- | === page_membre.php === | ||
- | <?php | ||
- | // On demarre la session (ceci est a faire sur toutes les pages de notre section membre | ||
- | session_start(); | ||
- | // On recupere nos variables de session pour valider que les login et pass sont toujours valide avant d'afficher le contenu | ||
- | if (isset($_SESSION['login']) && isset($_SESSION['pwd'])) { | ||
- | echo '<html>'; | ||
- | echo '<head>'; | ||
- | echo '<title>Page de notre section membre</title>'; | ||
- | echo '</head>'; | ||
- | echo '<body>'; | ||
- | // On affiche quelque elements relatifs à notre session | ||
- | echo 'Votre login est '.$_SESSION['login'].' et votre mot de passe est '.$_SESSION['pwd'].'.<br />'; | ||
- | echo 'Votre NOM de session '.$_SESSION['name'].' et votre ID de session est '.$_SESSION['ID'].'.<br />'; | ||
- | echo '</body>'; | ||
- | echo '<a href="./logout.php">Deconnection</a>'; | ||
- | } | ||
- | else { | ||
- | echo 'Vous n\'etes pas authentifier'; | ||
- | } | ||
- | ?> | ||
- | |||
- | |||
- | === logout.php === | ||
- | <?php | ||
- | // On demarre la session (comme dans toute nos pages membres | ||
- | session_start (); | ||
- | // On supprime les variables de session | ||
- | session_unset (); | ||
- | // On detruit notre session | ||
- | session_destroy (); | ||
- | // On redirige le visiteur sur la page d'accueil | ||
- | header ('location: index.htm'); | ||
- | ?> | ||
- | |||
- | ==== Upload de fichier ==== | ||
- | |||
- | === upload.htm === | ||
- | <html> | ||
- | <head> | ||
- | <title>Formulaire pour envoyer un fichier</title> | ||
- | </head> | ||
- | <body> | ||
- | <form action="send_fichier.php" method="post" enctype="multipart/form-data"> | ||
- | Votre fichier : <input type="file" name="mon_fichier"> | ||
- | <input type="hidden" name="MAX_FILE_SIZE" value=200000000000> | ||
- | <input type="submit" value="Envoyer"> | ||
- | </form> | ||
- | </body> | ||
- | </html> | ||
- | |||
- | === send_fichier.php === | ||
- | <html> | ||
- | <head> | ||
- | <title>Page de récupération du fichier</title> | ||
- | </head> | ||
- | <body> | ||
- | <?php | ||
- | // On test si les variable sont défnies | ||
- | if (isset($_FILES['mon_fichier']['name']) && isset($_FILES['mon_fichier']['size']) && isset($_FILES['mon_fichier']['tmp_name']) && isset($_FILES['mon_fichier']['type']) && isset($_FILES['mon_fichier']['error'])) { | ||
- | // On affiche les différentes valeurs relatives a notre fichier | ||
- | echo 'Nom d\'origine : '.$_FILES['mon_fichier']['name'].'<br />'; | ||
- | echo 'Taille : '.$_FILES['mon_fichier']['size'].'<br />'; | ||
- | echo 'Nom sur le serveur : '.$_FILES['mon_fichier']['tmp_name'].'<br />'; | ||
- | echo 'Type de fichier : '.$_FILES['mon_fichier']['type'].'<br />'; | ||
- | echo 'Code erreur : '.$_FILES['mon_fichier']['error'].'<br />'; | ||
- | | ||
- | // Ci-dessous on enregistre le fichier dans son répertoire définitif | ||
- | $dir_destination = '/var/www/test-php'; | ||
- | move_uploaded_file($_FILES['mon_fichier']['tmp_name'], $dir_destination.'/'.$_FILES['mon_fichier']['name']); | ||
- | } | ||
- | else { | ||
- | echo 'Nos variables ne sont pas déclarées.'; | ||
- | } | ||
- | ?> | ||
- | </body> | ||
- | </html> | ||
- | |||
- | ===== Base de données ===== | ||
- | <?php | ||
- | // On defini les parametre d'acces a la base de donnees dans une variable | ||
- | $param_access_db = mysql_connect ('127.0.0.1', 'root', 'abcd1234'); | ||
- | // On se connect a la base de données "phpdb" avec les parametre de la variable ci-dessus | ||
- | mysql_select_db ('phpdb', $param_access_db); | ||
- | | ||
- | // On stock le requete SQL dans une variable | ||
- | $sql = 'SELECT * FROM liste_proprietaire'; | ||
- | // On lance la requete | ||
- | $req = mysql_query($sql); | ||
- | // On stock les donnees dans un tableau | ||
- | $data = mysql_fetch_array($req); | ||
- | // On libere le memoire | ||
- | mysql_free_result ($req); | ||
- | // Ci-dessous on ne peut afficher qu'un seul resultat | ||
- | echo 'Nom :'.$data['nom']."\n"; | ||
- | echo "\n"; | ||
- | | ||
- | // On stock la requete SQL dans une variable | ||
- | $sql = 'SELECT * FROM liste_proprietaire'; | ||
- | // On lance la requete | ||
- | $req = mysql_query($sql) or die ('Erreur SQL :'.$sql.":\n".mysql_error()."\n"); | ||
- | // Tant qu'il y a des resultat a notre requete les affiches comme on veut | ||
- | while ($data = mysql_fetch_array($req)) { | ||
- | echo 'Nom :'.$data['nom']."\n"; | ||
- | echo 'Tel :'.$data['telephone']."\n"; | ||
- | echo "\n"; | ||
- | } | ||
- | // On libere le memoire | ||
- | mysql_free_result ($req); | ||
- | | ||
- | // On ferme la connexion SQL | ||
- | mysql_close (); | ||
- | ?> | ||
- | |||
- | Voir [[informatique:sql]] pour connaitre les requêtes SQL | ||
- | |||
- | ===== Librairie GD ===== |