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 18:19] benoit |
informatique:programmation:php [2018/09/06 19:10] (Version actuelle) |
||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ====== PHP ====== | ====== PHP ====== | ||
| * [[informatique:programmation:php:Variables et tableaux]] | * [[informatique:programmation:php:Variables et tableaux]] | ||
| - | * [[informatique:programmation:php:Opérateur]] | + | * [[informatique:programmation:php:Opérateurs]] |
| * [[informatique:programmation:php:Operations arithmétique]] | * [[informatique:programmation:php:Operations arithmétique]] | ||
| * [[informatique:programmation:php:Fonctions]] | * [[informatique:programmation:php:Fonctions]] | ||
| * [[informatique:programmation:php:database|Base de données]] | * [[informatique:programmation:php:database|Base de données]] | ||
| * [[informatique:programmation:php:web|Web]] | * [[informatique:programmation:php:web|Web]] | ||
| - | * [[informatique:programmation:php:filesystem|Système de fichier]] | + | * [[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:POO|Programmation Objet]] | ||
| * [[informatique:programmation:php:GD|Librairie GD]] | * [[informatique:programmation:php:GD|Librairie GD]] | ||
| - | ===== File système ===== | ||
| - | |||
| - | |||
| - | ===== 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 ===== | ||