communauté francophone de joueurs sims
 
AccueilAccueil  Le site  Chaine You Tube  S'enregistrerS'enregistrer  ConnexionConnexion  FAQFAQ  RechercherRechercher  

Partagez | 
 

 [Apprenti] Les variables

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Admin
avatar
Fuyaya
Admin
Féminin Date d'inscription : 29/09/2009
Age : 38
Localisation : Aubais

MessageSujet: [Apprenti] Les variables   Mar 24 Mai 2011, 13:05

Bonjour,

Aujourd'hui nous allons nous intéresser aux variables car sans cela vous ne pourrez pas exploiter les possibilités de PHP.

Voici une petite définition trouvée sur le Site du zéro :
Citation :
Une variable, c'est une petite information stockée en mémoire temporairement. Elle n'a pas une grande durée de vie. En PHP, la variable (l'information) existe tant que la page est en cours de génération. Dès que la page PHP est générée, toutes les variables sont supprimées de la mémoire car elles ne servent plus à rien. Ce n'est donc pas un fichier qui reste stocké sur le disque dur mais une petite information temporaire présente en mémoire vive.

C'est à vous de créer des variables. Vous en créez quand vous en avez besoin pour retenir des informations.

C'est une définition généraliste qui concerne les variables classiques. Nous allons voir qu'il existe plusieurs genres de variables :
  • Super globales
  • Globales
  • Variables

Le but de ce tuto est de vous expliquer leurs différences, illustrer ce à quoi elles peuvent servir et vous présenter comment les manier.
Tout ceci est nécessaire car les tutos sur le php utilisent à un moment où à un autre les variables donc vous devez savoir comment ça fonctionne pour imaginer comment vous allez pouvoir vous en servir !

1. Les différents genre de variables :

A-Les variables superglobales :

Ce sont des variables qui sont prédéfinies et inhérentes à PHP, en gros cela fait partie du kit de base.
Nous allons plus particulièrement nous intéresser à quatre d'entre elles. Car pour ma part ce sont les trois que j'utilise dans la création de site :
  • $_GET : passe des informations via l'url (barre d'adresse)
  • $_POST : passe des informations via un formulaire (champs de texte)
  • $_FILES : passe des informations via un formulaire (champs d'upload de fichier)
  • $_SESSION : passes des informations liées à une session (lorsque l'on créé des sessions distinctes pour différencier les utilisateurs)


Car ces superglobales ne contiennent rien dans l'absolu, elles renseigne sur l'origine de l'information.

Déclarer le contenu :

Déclarer une variable c'est donner une instruction qui permet de savoir quel est le nom de la variable et ce que l'on va mettre dedans.

Code:
<?php
$_SESSION['utilisateur'] = 'fuyaya';
?>

Étudions le principe d'écriture de la variable de session :
<?php et ?> : ce sont les balises qui indique que l'on va utiliser le langage PHP.
$_SESSION['utilisateur'] : on créé une variable de session qui va contenir une information relative à l'utilisateur. Donc entre les crochets je créé ma variable en la nommant.
On utilise des minuscules, si l'on veut séparer des mots alors utiliser _ .On ne commence jamais une variable par un chiffre
= : lorsque l'on a un seul symbole égal cela veut dire que l'on renseigne la valeur de la variable. On lui attribue donc une valeur
'fuyaya'; : on appelle ' des côtes et " des doubles côtes en PHP. Les côtes permettent de gagner en rapidité d'exécution du scripts. Le codage est comme le français on a différents styles dans l’écriture, moi j'écris les choses 'Fuyaya' mais vous pourriez trouver également "Fuyaya". L'important est qu'entre les côtes ou double côtes on indique la valeur de la variable. On fini la déclaration par un ; (sans le point virgule PHP ne comprendra pas ce que vous voulez)

Code:
<a href="www.fuyayasesims.fr/index.php?page=tutoriel"> Les tutoriels </a>

Étudions le principe d'écriture de la variable d'URL :
Je suis sur un site et je veux aller sur la page tutoriel, imaginons que mon site soit de type dynamique, il va falloir que l'indique quelle est la partie à inclure dans index.php (mon fichier maitre) pour afficher mon corps de page. Pour cela j'utilise une variable d'URL.
? : indique que l'on va passer en paramètre une variable d'URL (cela ne fonctionne que pour la première variable)
page=tutoriel : j'indique que le nom de ma variable est page et je lui attribue la valeur tutoriel.

A présent si je veux utiliser cette variable en dehors de l'URL je vais devoir l'écrire : $_GET['page']

Récupérer du contenu :

Les variables $_POST et $_FILES sont associées à des champs de formulaire (on a spécifier que le formulaire envoyé des données de type POST)
Les champs de formulaire sont le cœur d'un site car ce sont eux qui permettent la communication par l'échange d'information. Comment recevoir des informations ou envoyer du contenu ? Ne cherchez pas le seul moyen ce sont les formulaires, ils ne servent pas qu'à contacter quelqu'un c'est grâce à eux qu'on soumet des textes. Là pour créer le tuto j'utilise un champ de formulaire (et vous aussi d'ailleurs)

Code:
<form action="" method="post" enctype="multipart/form-data">
   <!-- Récupérer le nom d'une image (genre $_POST) -->
   <label for="nom_image">Titre de l'image</label>
   <input type="text" name="nom_image" id="nom_image" value="" tabindex="" />
       
        <!-- Récupérer le fichier (genre $_FILES) -->
   <label for="fichier_image"></label>
   <input type="file" name="fichier_image" id="fichier_image" value="" tabindex="" />
   
        <!-- Bouton d'envoi des informations (genre $_POST) -->
   <input type="submit" name="bouton_envoi" id="bouton_envoi" value="Envoyer">
</form>

Pour en savoir plus : Superglobales (Manuel PHP)


Spoiler:
 


Dernière édition par Fuyaya le Jeu 15 Déc 2011, 13:48, édité 4 fois
Revenir en haut Aller en bas
http://fuyaya.tumblr.com/
Admin
avatar
Fuyaya
Admin
Féminin Date d'inscription : 29/09/2009
Age : 38
Localisation : Aubais

MessageSujet: Re: [Apprenti] Les variables   Mar 31 Mai 2011, 22:00

B- Les variables globales :

Une variable globale est une variable qui a un peu des super pouvoir car c'est une variable que l'on va pouvoir utiliser n'importe où dans notre code.
Pour cela on va déclarer ces variables dans un fichier à l’extérieur de nos feuilles de codes.

Des exemples pratique de l'intérêt de ces variables globales :
- des variables pour les tables de la base de donnée
- des variables pour des valeurs constantes que l'on pourra ainsi changer à un seul endroit. ex: valeur de la TVA

Alors concrètement comment ça se passe ? Avec des exemples comme d'habitude c'est plus facile.
Le fichier dans lequel on va déclarer les variables va s'appeler config.php
Un va aussi dire qu'on a un fichier index.php (notre fichier principal pour la page d'accueil)

Dans le fichier config.php :

Voici le code pour déclarer une variable globale
Code:
define(TABLE_SIMS,"sims_fu")

On décortique donc cette déclaration : define(nom_globale, "valeur_globale")
define() : c'est la fonction PHP qui permet de définir notre valeur globale
nom_globale : c'est le nom que vous donnez à votre variable globale, par convention on l'écrit en MAJUSCULE, elle suit également les conventions de nommage de toutes variables (cf. 2.A Règles)
"valeur_globale" : c'est la valeur de la variable que l'on indique entre ""

Dans le fichier index.php :

Voici le code pour appeler le fichier
Code:
require('config.php')

En détail : require('chemin_fichier')
require() : c'est la fonction PHP qui indique que pour que les choses fonctionne on DOIT avoir ce fichier. Si le fichier n'est pas trouvé alors on a une erreur et rideau !
chemin_fichier : c'est le chemin qui va permettre au navigateur de trouver où se trouve le fichier, faites donc attentions aux dossiers et aux niveaux.

C- Les variables :

Les dernières variables qu'il nous reste à voir ce sont les variables classiques. Elles sont réellement indispensables car tout le code se construit autour d'elle.

Une variable va contenir une information soit que le développeur va lui assigner d'office pour conditionner les actions soit une valeur qui va dépendre du contexte.

Plutôt que faire du théorique et vous perdre, nous allons leur consacrer la plus grande partie de ce tutoriel afin de voir comment ça fonctionne et surtout des exemples pratiques. On y va !


Spoiler:
 


Dernière édition par Fuyaya le Mar 31 Mai 2011, 22:23, édité 2 fois
Revenir en haut Aller en bas
http://fuyaya.tumblr.com/
Admin
avatar
Fuyaya
Admin
Féminin Date d'inscription : 29/09/2009
Age : 38
Localisation : Aubais

MessageSujet: Re: [Apprenti] Les variables   Mar 31 Mai 2011, 22:01

2. Règles des variables :

Avant de voir à quoi cela sert et plutôt qu'entrecouper les cas avec de la théorie, on va voir ça ensemble de prime abord.

A- Charte de nommage :

Le développeur choisi le nom de ses variables, mais on ne fait pas ce que l'on veut non plus donc :
- une variable ne commence jamais par un chiffre
- une variable ne commence pas par une majuscule
- unique caractère spécial autorisé : _ (underscore)
- une variable commence toujours par $

Il est important pour que votre code soit facile à lire pour les autres mais aussi pour vous (imaginez vous le relire dans 2 mois) que le nom de vos variables soient explicites.
$nbp (nombre de place) : vous trouvez ça compréhensible ?
C'est sûr moins de caractère créé un code plus léger, mais je préfère avoir des octets en plus qu'un code indigeste et incompréhensible, sur lequel je vais passer 2h pour comprendre ce qui correspond à quoi..

Les développeurs ont leurs habitudes, voici des suggestions :
- $nbr_place
- $nbrPlace
- $nombre_place

B- Déclaration :

Bon avant de l'utiliser il va falloir la créer et indiquer sa valeur, c'est la déclaration.
Ça tombe bien ça se fait en une seule fois et c'est tout.

Code:
$pseudo = 'Fuyaya';

On continue à décoder au cas où...
$pseudo : ma variable s'appelle pseudo parce que je l'ai décidé Smile
= on lui affecte une valeur
'Fuyaya' : entre les côtes '' j'indique sa valeur, là un peu de nombrilisme je mets Fuyaya
; : on fini la déclaration par ; c'est obligatoire

C- La portée d'une variable :

Comment vous expliquer la portée... Autant les variables superglobales peuvent s'utiliser n'importe où dans le code, autant les variables pour être utilisées doivent répondre à des règles de chronologie et de lieu.

D'abord la chronologie :

Avant d'appeler quelque chose ou l'utiliser, il faut le créer. C'est logique ! C'est la chronologie.
Ça semble évident mais ce sont des erreurs que l'on fait souvent, des fautes d’inattention car il est parfois nécessaire de créer une variable même si l'on ne met rein dedans car une variable peut changer de valeur en cours de route. Et c'est aussi pour cela que la chronologie est importante.

Ensuite la portée :

Une variable utilisée dans une fonction est comme dans une bulle, si vous l'utilisez telle qu'elle en dehors de cette fonction, le navigateur ne saura tout simplement pas de quoi il s'agit.
C'est pour cela que l'on dit que les variables ont une portée limitée.

Bon rien n'est perdu, il y a une manière de récupérer les informations c'est via return. Mais attention pour cela il va falloir mettre le résultat de cette fonction dans... suspense... une variable

Allez une démo pour animer un peu
Code:
function dateEn2Fr($date) {
   $motif= '(^([0-9]{4})-([0-9]{2})-([0-9]{2})$)';
   preg_match($motif,$date,$tab);
   $format_ecriture = $tab['3'].'/'.$tab['2'].'/'.$tab['1'];
   return $format_ecriture;
}
$date_fr = dateEn2FR('2011-05-31');
echo $date_fr;

Quelques explications tout de même
La fonction dateEn2FR() va transformer une date au format anglais pour l'écrire au format français.
return() ne peut s'utiliser qu'une seule fois dans une fonction donc bien réfléchir à ce dont vous avez besoin !
echo() est la fonction qui permet d'écrire ce que contient la variable
Cela va donc écrire : 31/05/2011

D- On y met quoi dedans ? Les types

Par défaut, on peut mettre ce que l'on veut dans une variable : du texte, des chiffres, du texte et des chiffres.
En fait ce que l'on met dans la variable va conditionner son type.

L'intérêt des types et qu'ils vont nous permettre de faire des vérifications. En effet on ne peut vouloir autoriser que des chiffres pour un code postal par exemple.
Certains types nous permettent également de faire plus de choses comme des calculs ou stocker différentes informations (tableaux)

Les différents types :
- Entier (integer) : entier
Code:
$limite = 15;
- Réels (double) : nombres décimaux
Code:
$tva = '19.6';
- Chaîne de caractères (string)
Code:
$texte = 'Martine joue aux sims';
- Tableaux (array) : c'est une variable multiple
Code:
$membre = array(pseudo=>'Fuyaya', statut=>'Administratrice', commentaire=>'Tendance Ectoplasmique');
- Booléen (bool) : variable binaire true/false ou 1/0
Code:
$apprentissage = true;
- Ressource (ressource) : tel que les connexion à un serveur
Code:
$connexion = mysql_connect("localhost", "mysql_user", "mysql_password")
- Objets (object) : PHP peut travailler avec des objets (programmation orientée objet)


Spoiler:
 


Dernière édition par Fuyaya le Sam 19 Nov 2011, 11:33, édité 6 fois
Revenir en haut Aller en bas
http://fuyaya.tumblr.com/
Admin
avatar
Fuyaya
Admin
Féminin Date d'inscription : 29/09/2009
Age : 38
Localisation : Aubais

MessageSujet: Re: [Apprenti] Les variables   Mar 31 Mai 2011, 22:01

3. A quoi cela peut servir ? :

A- Comparaison :

En programmation, ce qui compte c'est d'être organisé, pour cela passer par une rédaction classique aide beaucoup.
Imaginons quelque chose de très simple, je veux savoir si une personne sur le forum est invité ou membre. Ce qui détermine le passage d'invité à membre c'est le fait d'avoir donné le code de validation.
Si le code de validation est donné et qu'il est correct alors la personne est membre autrement elle est invité.

On a donc besoin de comparer le code de validation pour savoir ce qu'il est. On va utiliser la structure if... else... qui nous permet d'avoir des cas simples car binaires
Code:

$code = 'XXX';
if($code == 'XXX') {
    $statut = 'membre';
}
else {
    $statut = 'invité';
}
Ici on a fait une comparaison sur l'égalité. Il faut que le code donné soit exactement la valeur de la variable code

On peut aussi faire des comparaisons multiples avec if... else if... else...
Code:

$post = '300';
if($post < '100') {
    $statut = 'nouveau';
}
else if($post < '300') {
    $statut = 'habitué';
}
else {
    $statut = 'meuble';
}
Ici on a fait une comparaison sur la valeur de la variable on donne deux palier (inférieur à 100, inférieur à 200) et ensuite on dit ce qu'il en est pour tous les autres cas.

B- Opérateur de comparaison :

La comparaison se fait donc via des opérateurs comme on l'a vu dans les exemples ci-desus, elle peut aussi se faire selon des mots clefs.
Voici les opérateurs et mots les plus utilisés (liste non exhaustive) :
  • == : égalité
  • != : différence
  • > : supérieur
  • >= : supérieur ou égal
  • < : inférieur
  • <= : inférieur ou égal
  • empty($var) : variable doit être vide
  • !empty($var) : variable ne doit pas être vide
  • isset($var) : variable doit exister
  • !isset($var) : variable ne doit pas exister
  • $var && $var : on doit avoir les deux cas
  • $var || $var : on doit avoir l'un des deux cas


On va continuer à voir l'utilisation des ces opérateurs dans les points suivant.

C- Passer des informations :

Prenons le cas d'un site internet. On veut se ballader d'une page à une autre. on utilise donc la navigation. En cliquant sur le lien on va donner une information par une variable d'URL ($_GET['']) pour indiquer sur quelle page on veut aller.

Dans cette exemple concret on va voir plusieurs choses. On prends de bonne habitudes et on ecrit ce que l'on veut faire et obtenir.
Quand on arrive sur mon site je veux que l'on affiche le contenu de la page d'accueil. Si on clique sur un lien de navigation des pages alors je veux que l'on affiche le contenu associé à cette page.

Donc on doit dans un premier temps :
- savoir si on arrive sur le site ou pas
- afficher la page d'accueil quand on arrive sur le site.
- afficher les bonnes pages quand on clique sur un lien.

Réflexion et logique :
Ce qui détermine le fait qu'on arrive sur le site ou pas c'est l’existence de la variable d'URL liée à la page dans notre cas c'est $_GET['page']
On doit indiquer une page par défaut si elle n'existe pas autrement on doit afficher le contenu selon la variable.

Ce qui donne au niveau du code :
Etape 1 : Une page par défaut
Code:

<?php
if (!isset($_GET['page']) {
    $page = 'accueil';
}
else {
    $page = $_GET['page'];
}

Etape 2 : Afficher le contenu pour chaque cas

On pourrait utiliser la structure que l'on a vu plus haut à savoir if... else if... else... Mais il existe une autre structure plus pratique et qui va parfaitement convenir à ce cas.

Code:

<?php
switch ($page) {
    case 'accueil' : include(accueil.php);
    break;
    case 'principal' : include(principal.php);
    break;
    case 'contact' : include(contact.php);
    break;
    default : include(accueil.php);
    break;

On présente une liste de cas, quand le navigateur tombe sur le bon cas, il s'arrête (break) et s’exécute. Il est très important d'indiquer un affichage par défaut (default) pour éviter des failles de sécurité. utiliser switch est intéressant quand on a une comparaison simple sur la valeur d'une variable et que l'on a différents cas selon son contenu.


Spoiler:
 


Dernière édition par Fuyaya le Sam 19 Nov 2011, 13:13, édité 2 fois
Revenir en haut Aller en bas
http://fuyaya.tumblr.com/
Admin
avatar
Fuyaya
Admin
Féminin Date d'inscription : 29/09/2009
Age : 38
Localisation : Aubais

MessageSujet: Re: [Apprenti] Les variables   Sam 19 Nov 2011, 13:10

D- Vérifier des informations :

Prenons encore un cas pratique, celui d'un formulaire de contact. Quelqu'un vous pose une question via votre formulaire, pour lui répondre vous allez avoir besoin de rendre différentes informations obligatoires. En l'occurence le message et son adresse mail sans ça dur de répondre à quelqu'un.

On continue à écrire ce que l'on veut faire et obtenir.
Je veux que les champs message et adresse mail sur mon formulaires soient obligatoires. Si la personne ne remplie pas ces champs alors le formulaire ne peut pas être validé. Dans ce cas là un message d'erreur s'affiche et les données saisies sont conservées le temps que la personne complète les champs obligatoires.

Donc on doit dans un premier temps :
- le formulaire est il envoyé ou pas
- les champs obligatoires sont-ils remplies ou pas

Réflexion et logique :
On doit donc vérifier que la personne a appuyé sur le bouton de validation. Ce type de bouton n'existe que lorsqu'on l'utilise donc on doit vérifier son existence. On doit ensuite vérifier que les champs ne sont pas vide. S'ils sont vide on doit changer le message.

Ce qui donne au niveau du code :
Etape 1 : Le code du formulaire

C'est du code HTML avec dedans du code PHP qui appel l'écriture de la valeur de variables.
Car on veut afficher le contenu des champs du formulaire en cas d'oubli pour éviter que la personne n'ait besoin de tout ressaisir.
Code:

<form action="" method="post">
   <fieldset>
      <legend><?php echo $message; ?></legend>
      <!-- -->
      <label for="nom">Nom</label>
      <input type="text" name="nom" id="nom" value="<?php echo $nom; ?>" tabindex="" />
      
      <!-- -->
      <label for="prenom">Prénom</label>
      <input type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" tabindex="" />
      
      <!-- -->
      <label for="mail">E-Mail *</label>
      <input type="text" name="mail" id="mail" value="<?php echo $mail; ?>" tabindex="" />
      
      <!-- -->
      <label for="texte">Message *</label>
      <input type="text" name="texte" id="message" value="<?php echo $texte; ?>" tabindex="" />
      
      <input id="valid_contact" class="bouton" type="submit" name="valid_contact" value="Envoyer" tabindex="" />
   </fieldset>
</form>

Etape 2 : La programmation

Petite chose bonne à savoir dans ma page au niveau de l'ordre je met d'abord mon code de programmation et ensuite mon formulaire.
Donc d'abord je vais donner une valeur par défaut au message et ensuite déclarer mes variables utilisées dans le formulaire en disant qu'elles sont vides.

Code:

<?php
$message = 'Veuillez remplir les champs suivies d'une *';
$nom = $prenom = $mail = $texte = '';

if((isset($_POST['valid_contact'])) {
<?php
   if(!empty($_POST['mail']) && !empty($_POST['texte'])) {
         // Ce que vous avez à faire dans ce cas là
   }
   else {
      $message = 'Merci de remplir les champs suivis d\'une *';
      $nom = $_POST['nom'];
      $prenom = $_POST['prenom'];
      $mail = $_POST['mail'];
      $texte = $_POST['texte'];
   }
?>
}

E- Afficher des informations :

Comme on l'a vu dans l'exemple précédent, on peut afficher les variables pour écrire un message.
La syntaxe est très simple :
Code:
<?php echo $var; ?>

Imaginons que l'on veuille écrire le contenu de la variable et du texte. On va devoir à se moment là concaténer la variable avec le texte. Pour ce faire on utilise le . pour coller les éléments les un aux autres. Voyons ce que cela donne.
Code:
<?php echo 'Vous avez '.$age.'ans'; ?>

Pour finir un petit exemple d'affichage en utilisant les tableaux. Donc a va déjà déclarer un tableau, je l'ai fait plus tôt mais cette fois ci je ne vais pas renseigner ce que l'on appelle les clefs (dans l'exemple précédent pseudo était une clef). Lorsqu'on ne renseigne pas celle-ci elles sont automatiquement crées, attention la première clef commence avec 0.

Code:
<?php
$statut = array('invité', 'membre', 'équipe', 'administrateur');
?>

Bien imaginons que je veuille savoir ce qu'il y a dans mon tableau. Comme il y a plusieurs valeurs si je veux avoir un aperçu complet je vais utiliser une fonction particulière :
Code:
<?php
var_dump($statut);
?>

Maintenant imaginons que je veuille juste afficher un statut particulier. Par exemple administrateur alors je vais l'écrire ainsi :
Code:
<?php
echo $statut[3];
?>

Entre les crochets j'indique la clef associée à la valeur, n'oubliez pas cela commence à zéro donc si c'est la 4eme entrée du tableau, sa clef est 3.


Spoiler:
 
Revenir en haut Aller en bas
http://fuyaya.tumblr.com/
Admin
avatar
Fuyaya
Admin
Féminin Date d'inscription : 29/09/2009
Age : 38
Localisation : Aubais

MessageSujet: Re: [Apprenti] Les variables   Sam 19 Nov 2011, 13:11

Je pense avoir fait le tour du sujet, en donnant des exemples et en tentant de rester simple  Rolling Eyes

Ce post permettra d'ajouter des points s'il en manquait.

MODE D'EMPLOI

N'hésitez pas à remercier l'auteur de ce tutoriel ou à faire partager votre expérience personnelle. Si vous avez créé quelque chose en suivant le tuto pourquoi pas la poster afin de la montrer à l'auteur

-----------------------------------------

Pour d'éventuelles questions, c'est par ici et si vous souhaitez en apprendre plus sur le sujet, rendez-vous dans la salle travaux pratiques

Bonne journée



Spoiler:
 
Revenir en haut Aller en bas
http://fuyaya.tumblr.com/
Contenu sponsorisé


MessageSujet: Re: [Apprenti] Les variables   

Revenir en haut Aller en bas
 
[Apprenti] Les variables
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Sims Artists :: Apprentissage :: Informatique et Internet :: PHP/MySQL-
Sauter vers: