Ceci est une ancienne révision du document !
POO : Programmation Objet.
Déclaration de variable sous forme de tableau et affiche d'élément concaténés :
$id = Array(); $id['nom'] = 'Benoit'; $id['age'] = 33; echo 'Mon nom est '.$id['nom'].' et j\'ai '.$id['age'].' ans'."\n";
Variable de Variable :
<?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"; ?>
<?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(); ?>
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; }
<?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); ?>
$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"; }
$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"; }
$varfor = 10; for ($i = 0; $i < $varfor; $i++) { echo $i.' inferieur a '.$varfor."\n"; } echo $i.' egale a '.$varfor."\n";
$varwhile = 5; $i = 0; while ($i < $varwhile) { echo $i.' inferieur a '.$varwhile."\n"; $i = $i + 1; }
$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";
<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>
<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>
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.'; } ?>
Nous allons créer 4 pages :
<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>
<?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'; } ?>
<?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'; } ?>
<?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'); ?>
<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>
<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>
<?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 sql pour connaitre les requêtes SQL