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/17 20:31] admin |
informatique:programmation:php [2018/09/06 19:10] (Version actuelle) |
||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| ====== PHP ====== | ====== PHP ====== | ||
| - | [[informatique:programmation:php:POO]] : Programmation Objet. | + | * [[informatique:programmation:php:Variables et tableaux]] |
| + | * [[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 ==== | ||
| - | <?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); | ||
| - | ?> | ||
| - | |||
| - | |||
| - | ===== 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 ===== | ||