php get
Transcription
php get
M1202 Algorithmique et programmation PHP par l'exemple - 3 Jérôme Landré – [email protected] bureau C203 (GMP) – bureau H110 (MMI) DUT Métiers du Multimédia et de l'Internet I.U.T. de Troyes Université de Reims Champagne-Ardenne Plan ● I – Passer des données de page en page avec PHP ● II – Formulaires HTML ● III – Traitement des formulaires HTML en PHP ● IV – Sessions en PHP ● V - Tableaux en PHP ● – a) Tableaux indexés – b) Tableaux associatifs VI – Appel de fonctions en PHP I – Passer des données de page en page avec PHP 3 Passage de données en PHP ● ● PHP permet de faire passer des informations entre les différentes pages web d'un site Pour cela, PHP fournit deux manières de procéder : – Les formulaires HTML – Les sessions 4 II – Formulaires HTML 5 Formulaires HTML ● Les formulaires HTML permettent de demander des informations aux utilisateurs 6 La balise <form> ● ● ● ● La balise <form> permet de déclarer un formulaire contenant des champs de formulaires Il y a deux façons d'utiliser les formulaires HTML : – La méthode GET – La méthode POST Un formulaire contient OBLIGATOIREMENT un bouton de validation (submit) La balise <form> possède deux propriétés (attributs) method et action 7 Formulaire en méthode GET ● Exemple : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"/> </head> <body> <div>Informations personnelles</div> <form method="GET" action="traite_form_get.php"> Genre : <select name="genre_u"> <option value="M">M.</option> <option value="F">Mme</option> </select><br/> Nom : <input type="text" name="nom_u" /><br/> Prénom : <input type="text" name="prenom_u" /><br/> age : <input type="text" name="age_u" /><br/> login : <input type="text" name="login_u" /><br/> mdp : <input type="password" name="password_u" /><br/> <input type="submit" name="valider" /> </form> </body> </html> 8 Formulaire en méthode GET ● ● Ce qui donne : Quand on appuie sur le bouton valider, on envoie les données du formulaire à la page spécifiée par action 9 Formulaire en méthode GET ● Dans l'URI, la chaîne passée à la page de traitement des données est : http://195.83.128.55/~jlandre/traite_form.php? genre_u=M&nom_u=LANDRE&prenom_u=Jérôme&age_u=41& login_u=jlandre&password_u=toto&valider=Valider ● En méthode GET, les données de formulaires passent par l'URI ! 10 Formulaire en méthode POST ● Exemple : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"/> </head> <body> <div>Informations personnelles</div> <form method="POST" action="traite_form_post.php"> Genre : <select name="genre_u"> <option value="M">M.</option> <option value="F">Mme</option> </select><br/> Nom : <input type="text" name="nom_u" /><br/> Prénom : <input type="text" name="prenom_u" /><br/> age : <input type="text" name="age_u" /><br/> login : <input type="text" name="login_u" /><br/> mdp : <input type="password" name="password_u" /><br/> <input type="submit" name="valider" /> </form> </body> </html> 11 Formulaire en méthode POST ● ● Ce qui donne : Quand on appuie sur le bouton valider, on envoie les données du formulaire à la page spécifiée par action 12 Formulaire en méthode POST ● Dans l'URI, la chaîne passée à la page de traitement des données est : http://195.83.128.55/~jlandre/traite_form.php ● En méthode POST, les données de formulaires sont invisibles à l'utilisateur (elles passent par le protocole http) 13 III- Traitement des formulaires en PHP 14 Traitement des données en PHP ● ● ● PHP permet de traiter les données de formulaires dans la page de traitement spécifiée dans l'attribut action du formulaire Pour cela, PHP fournit deux tableaux associatifs (on verra plus tard de quoi il s'agit) : – $_GET pour les données passées en méthode GET – $_POST pour les données passées en méthode POST Pour récupérer les valeurs des données, on utilise tout simplement le nom de la variable (attribut name en HTML) dans le tableau associatif $_GET ou $_POST 15 Traitement des données en PHP ● Exemple en méthode GET : <!DOCTYPE html> <html lang="fr"> <head><meta charset="utf-8"/></head> <body> <div>Informations personnelles</div> <form method="GET" action="traite_form_get.php"> Nom : <input type="text" name="nom_u" /><br/> Prénom : <input type="text" name="prenom_u" /><br/> <input type="submit" name="valider" /> </form> </body> </html> <?php $nom=$_GET['nom_u']; echo '</p>Votre nom est : '.$nom.'</p>'."\n"; $prenom=$_GET['prenom_u']; echo '</p>Votre prénom est : '.$prenom.'</p>'."\n"; ?> 16 Traitement des données en PHP ● Ce qui donne : 17 Traitement des données en PHP ● Exemple en méthode POST : <!DOCTYPE html> <html lang="fr"> <head><meta charset="utf-8"/></head> <body> <div>Informations personnelles</div> <form method="POST" action="traite_form_post.php"> Nom : <input type="text" name="nom_u" /><br/> Prénom : <input type="text" name="prenom_u" /><br/> <input type="submit" name="valider" /> </form> </body> </html> <?php $nom=$_POST['nom_u']; echo '</p>Votre nom est : '.$nom.'</p>'."\n"; $prenom=$_POST['prenom_u']; echo '</p>Votre prénom est : '.$prenom.'</p>'."\n"; ?> 18 Traitement des données en PHP ● Ce qui donne : 19 IV- Sessions en PHP 20 Sessions en PHP ● ● ● ● Une autre façon de passer des variables entre des pages est d'utiliser les sessions PHP Une session permet de stocker sur le serveur des données dans des variables qui ne peuvent être affichées/modifiées qu'en PHP Pour démarrer une session, on utilise la fonction « session_start(); » en premier dans le fichier PHP, avant même le début de la page ! Une fois la session lancée, on utilise le tableau associatif $_SESSION[""] pour lire et écrire des données qui seront stockées de page en page 21 Sessions en PHP ● ● Page 1 : <?php session_start(); $_SESSION["utilisateur"]= "jlandre"; ?> <!DOCTYPE html> <html lang="fr"> <head><meta charset="utf-8"/></head> <body> <p>Bienvenue sur ma première page. Voici un lien vers la <a href="page2.php">seconde</a> page.</p> </body> </html> Page 2 : <?php session_start(); ?> <!DOCTYPE html> <html lang="fr"> <head><meta charset="utf-8"/></head> <body> <p>Bienvenue <?php echo $_SESSION["utilisateur"]; ?>.</p> <p><a href="page3.php">page 3</a></p> </body> </html> 22 Sessions en PHP ● Page 3 : <?php session_start(); ?> <!DOCTYPE html> <html lang="fr"> <head><meta charset="utf-8"/></head> <body> <p>Bienvenue sur la page 3, vous êtes l'utilisateur <?php echo $_SESSION["utilisateur"]; ?>. </p> </body> </html> 23 Sessions en PHP ● Ce qui donne : 24 V-a) Tableaux indexés en PHP 25 Tableaux indexés en PHP ● Les tableaux sont une structure de données qui permet de stocker une suite de valeurs en mémoire sous un seul nom, chaque valeur est repérée par un numéro 0 1 2 3 4 5 6 12 8,5 11 3 17,5 14 9 $tabnotes[] ● ● La taille t du tableau donne son nombre d'éléments Les indices de tableau vont de 0 à t-1 26 Création de tableaux en PHP ● Exemple : <?php // Créer un tableau vide $tabNotes = array(); // Ajouter de nouvelles valeurs à un tableau $tabNotes[] = 12.5; $tabNotes[] = 9; // Afficher les valeurs echo 'La valeur à l'indice 0 est : '.$tabNotes[0]; echo 'La valeur à l'indice 1 est : '.$tabNotes[1]; // Ajouter une autre note $tabNotes[] = 11; ?> // Changer une note puis afficher la nouvelle valeur $tabNotes[1] = 8; echo 'La valeur à l'indice 1 est : '.$tabNotes[1]; 27 Création de tableaux en PHP ● Exemple : <?php // Créer un tableau rempli $tabNotes = array(12.5, 9, 11); // Ajouter de nouvelles valeurs à un tableau $tabNotes[] = 7; $tabNotes[] = 12.5; // Calculer la moyenne $somme = $tabNotes[0] + $tabNotes[1] + $tabNotes[2] + $tabNotes[3] + $tabNotes[4]; echo 'La somme vaut : '.$somme; $moyenne = $somme/5; echo 'La moyenne vaut : '.$moyenne; ?> 28 Parcours de tableaux en PHP ● La taille du tableau $tab est donnée par la fonction count($tab) : <?php // Créer un tableau rempli $tabNotes = array(12.5, 9, 11, 7, 12.5); $somme=0; // Parcourir un tableau for ($i=0; $i<count($tabNotes); $i++) { $somme=$somme+tabNotes[$i] ; } // Calculer la moyenne $moyenne = $somme/count($tabNotes); echo '<p>La moyenne vaut : '.$moyenne.'</p>'."\n"; ?> 29 V-b) Tableaux associatifs en PHP 30 Tableaux associatifs en PHP ● ● < Un tableau associatif en PHP est un tableau dont les indices ne sont pas des nombres, mais des chaînes de caractères Un tableau associatif permet donc d'associer un nom à une valeur dans un tableau <?php // Créer un tableau associatif rempli $tabAssoNotes = array( "matiere" => "m1202", "note1" => 12, "note2" => 7, "note3" => 11.5 ); // Afficher les valeurs echo '<p>'.$tabAssoNotes["matiere"].' : '. $tabAssoNotes["note1"].', '.$tabAssoNotes["note2"].', '. $tabAssoNotes["note3"].'</p>'."\n"; ?> 31 Tableaux associatifs en PHP ● Ce qui donne : 32 Parcours de tableaux associatifs ● Instruction foreach : <?php // Créer un tableau associatif rempli $tabAssoNotes = array( "matiere" => "m1202", "note1" => 12, "note2" => 7, "note3" => 11.5 ); echo '<p>'; // Afficher les valeurs foreach ($tabAssoNotes as $cle => $valeur) { echo $cle.' : '.$valeur.'<br />'."\n"; } echo '</p>'; ?> 33 Parcours de tableaux associatifs ● Ce qui donne : 34 VI- Appels de fonctions en PHP 35 Les fonctions en PHP ● ● ● Les fonctions sont des blocs de code PHP réunis sous un nom (le nom de la fonction) qui peuvent être appelés à n'importe quel endroit d'un programme PHP (rupture de séquence) Les fonctions peuvent ou non recevoir des paramètres Les fonctions peuvent ou non renvoyer un résultat <?php // Appel d'une fonction sans paramètre phpinfo(); ?> 36 Les fonctions en PHP ● Ce qui donne : 37 Les fonctions en PHP ● ● ● ● ● Dans un programme PHP, on reconnaît les fonctions à la parenthèse ouvrante qui suit leur nom Une fonction qui ne renvoie rien est appelée une procédure On peut affecter à une variable le résultat d'une fonction (impossible avec une procédure) Il existe sous PHP des centaines de fonctions très utiles déjà incluses avec le langage Les fonctions sont en général spécialisées : fonctions sur les dates, sur les chaînes de caractères, sur les tableaux... 38 Quelques fonctions utiles ● PHP propose de très nombreuses fonctions sur les dates http://fr2.php.net/manual/fr/function.date.php : <?php // Récupérer la date d'aujourd'hui $maDate = date('Y-m-d H:i:s'); // $maDate est une chaîne de caractères echo '<p>La date actuelle est : '.$maDate.'</p>'; $maDateFormatSQL = date('Y-m-d', strtotime($maDate)); echo '<p>Au format SQL : '.$maDateFormatSQL.'</p>'; $maDateFrancaise = date('d/m/Y', strtotime($maDate)); echo '<p>Au format Français : '.$maDateFrancaise.'</p>'; ?> ● Il est facile de passer d'un format date français à un format date MySQL et vice versa 39 Les fonctions en PHP ● Ce qui donne : 40 Avez-vous des questions ? 41