CLIN

Généralité sur le PHP

04/12/2020
Article publié par Destiny

Sommaire :
1. PHP?
2.Un bloc PHP
3.Les chaînes de caractères
4.PHP et HTML
5.Retours à la ligne : <br> ou \n?
6.Indentation
7.Les inclusions
8.Transmettre des valeurs d'une page à une autre
9.Les formulaires HTML
10.Le passage par URL
11.Les sessions
12.L'identifiant de session
13.Démarrage d'une session
14.Les variables de session
15.Fin d'une session
Généralités sur PHP
PHP?
Vous avez certainement lis les cours precedents à c'est article qui parlaient rien que sur le HTML et le CSS vous avez decouvert que le html qui est un langage de balisage et le css qui est un langage de mise en forme ne servent à rien sans un langage serveur à un certain niveau vous vous sentirez bloquer et vous risquerez de ne plus avoir envie de continuer car vous aurez forcement besoin d'un langage serveur pour dynamiser votre site c'est à cela que j'essaie d'anticiper pour vous parler d'un langage serveur le plus utilisé sur le web qui est le PHP
Mais pardon Destiny est ce qu'on va s'en sortir?
Oui!!! Fais moi confiance c'est pas même compliqué mais votre courage et l'envie d'apprendre sera ici le plus important.
PHP (PHP Hypertext Preprocessor) est un langage open source permettant de créer dynamiquement des pages HTML, et ce, notamment grâce à sa capacité à s'interfacer avec des bases de données.
Un bloc PHP
Un bloc PHP commence par "<?php" et finit par "?>"

<?php
// Instructions php
?>

Vous pouvez ouvrir et fermer des blocs autant de fois que vous le désirez dans une page PHP.
Quand vous vous situez en dehors d'un bloc PHP, vous pouvez taper directement du HTML.
<!-- Code HTML -->
<?php
// Instructions php
?>
<!-- Code HTML -->

De plus, le fait de fermer un bloc PHP ne détruit pas l'environnement.
<?php
$test = "toto";
?>
<!-- Code HTML -->
<?php
echo $test;
?>

Plus fort encore, fermer un bloc PHP ne rompt pas les conditions et itérations :
<?php
$test = true;
if ($test) {
?>
<!-- Code HTML -->
<?php
}
?>

Les chaînes de caractères
Les chaînes de caractères sont entourées par des délimiteurs qui indiquent leur début et leur fin. Vous pouvez utiliser au choix la simple-quote ( ' ) ou la double-quote : ( " ).
Quel délimiteur choisir?
Si la chaîne de caractère va comporter des double-quotes, utilisez les simple-quotes.
A l'inverse, si la chaîne de caractères va comporter des simple-quotes, utilisez des double-quotes.
Veillez simplement a utiliser le même délimiteur pour le début et pour la fin d'une chaîne.
<?php
// Instructions valides :
echo "La table toto a bien été supprimée!";
echo 'La table toto a bien été supprimée!';
echo "La table 'toto' a bien été supprimée!";
echo 'La table "toto" a bien été supprimée!';
// Instructions invalides :
echo "La table toto a bien été supprimée!';
echo 'La table 'toto' a bien été supprimée!';
echo "La table "toto" a bien été supprimée!";
?>

Si vous devez utiliser en même temps des simple-quotes et des double-quotes au sein d'une chaîne de caractères, choisissez un délimiteur que vous devrez protéger avec le caractère "\" au sein de la chaîne pour qu'il ne soit pas interprété.
<?php
// Ces deux instructions sont équivalentes :
echo "Le champ 'titi' de la table \"toto\" a bien été supprimé!";
// ou
echo 'Le champ \'titi\' de la table "toto" a bien été supprimé!';
?>

Insérer des variables dans des chaînes de caractères :
Vous pouvez insérer des variables dans une chaîne de caractères, à condition que le délimiteur choisi soit les double-quotes ( " ).
<?php
$champ = "titi";
echo "Le champ $champ a bien été supprimé!";
?>

Affichera :
Le champ titi a bien été supprimé!
Par contre, vous ne pouvez pas de cette manière accoler la valeur d'une variable à du texte :
<?php
/*
Déclaration valide, mais incorrecte :
PHP ne sait pas où s'arrête le nom de variable et où commence le texte.
Il cherchera à afficher la valeur de la variable "jourème", qui n'existant pas, sera vide.
*/
$jour = "7";
echo "Et le $jourème jour, il se reposa.";
Pour cela, il faut utiliser l'opérateur de concaténation de chaînes de caractères : "."
<?php
// Déclaration valide :
$jour = "7";
echo "Et le ".$jour."ème jour, il se reposa.";

PHP et HTML
On peut envisager deux cas différents pour faire cohabiter PHP et HTML suivant le cas dans lequel on se trouve :
- Produire du HTML dans du PHP
<?php
$nom = "Vers l'index!";
$page = "index.php";
echo ("<a href=\"$page\">$nom</a>");
?>
Utiliser du PHP dans du HTML
<?php
$nom = "Vers l'index!";
$page = "index.php";
?>
<a href="<?php echo $page ?>"><?php echo $nom ?></a>

Quelle méthode choisir?
En fait, les deux méthodes sont valides. Le choix portera sur le contenu du bloc dans lequel vous vous trouvez.
Si vous êtes dans un bloc comportant beaucoup de HTML, comme un formulaire, il vaudra mieux utiliser du PHP au sein du HTML.
Par contre, si vous vous trouvez dans un bloc où vous effectuez beaucoup de traitements en PHP, il vaudra mieux produire du HTML au sein du PHP.
Retours à la ligne : <br> ou \n ?
On peut considérer PHP comme un générateur de pages HTML, qui affiche des données PHP traitées.
Ainsi, <br> est une information purement HTML alors que \n sera interprété lors de la création du fichier de sortie (le fichier HTML).
<br> permet d'aller à la ligne dans l'affichage de la page HTML, alors que \n permet d'aller à la ligne lors de la création du code source HTML.
Exemple :
Vous écrivez ceci dans votre code PHP :
echo ("un<br>deux<br>trois");

Votre page HTML ressemblera à ceci :
un
deux
trois
mais son code source ressemblera à ça :
un<br>deux<br>trois
Par contre, si vous écrivez ceci dans votre code PHP :
echo ("un\ndeux\ntrois");

Votre page HTML ressemblera à ceci :
un deux trois
et votre code source à ceci :
un
deux
trois
Finalement, la bonne solution consiste à mélanger <br> et \n :
En PHP :
echo ("un<br>\ndeux<br>\ntrois");
A l'affichage de la page HTML :
un
deux
trois
Le code source HTML :
un<br>
deux<br>
trois
Indentation :
Il est aussi important d'indenter le code HTML produit que le source PHP.
En effet, lors de certains débugages, vous serez sûrement amené à relire le source des pages HTML produites.
Ainsi, ce code PHP :
<?php
echo ("<table>\n");
echo ("<tr>\n");
echo ("<td>\n");
echo ("Hello \n");
echo ("</td>\n");
echo ("<td>\n");
echo ("World!\n");
echo ("</td>\n");
echo ("</tr>\n");
echo ("</table>\n");
?>

Donnera le code source HTML suivant, peu lisible :
<table>
<tr>
<td>
Hello
</td>
<td>
World!
</td>
</tr>
</table>

Vous pouvez pour remédier à cela utiliser le caractère spécial "\t" ou tabulation à chaque fois que vous ouvrez une nouvelle balise HTML.
<?php
echo ("<table>\n");
echo ("\t<tr>\n");
echo ("\t\t<td>\n");
echo ("\t\t\tHello \n");
echo ("\t\t</td>\n");
echo ("\t\t<td>\n");
echo ("\t\t\tWorld!\n");
echo ("\t\t</td>\n");
echo ("\t</tr>\n");
echo ("</table>\n");
?>

Le code HTML produit aura cette apparence :
<table>
<tr>
<td>
Hello
</td>
<td>
World!
</td>
</tr>
</table>

Si vous trouvez que les tabulations créent des espaces trop importants, vous pouvez utiliser des espaces :
<?php
echo ("<table>\n");
echo (" <tr>\n");
echo (" <td>\n");
echo (" Hello \n");
echo (" </td>\n");
echo (" <td>\n");
echo (" World!\n");
echo (" </td>\n");
echo (" </tr>\n");
echo ("</table>\n");
?>

Cela donnera :
<table>
<tr>
<td>
Hello
</td>
<td>
World!
</td>
</tr>
</table>

Les inclusions
Les pages comportent souvent des éléments communs entre elles. Dans ce cas, il peut être intéressant de mettre ces parties communes dans des fichiers séparés, et de les appeler dans les pages qui en ont besoin. C'est le rôle des fonctions d'inclusion.
La fonction include
Pour appeler une page à inclure, utilisez la fonction include :
include ('nom_du_fichier');

Attention, le fichier à inclure doit également comporter les balises de début et de fin de bloc PHP.
Ceci aura pour effet de remplacer cette instruction d'inclusion par le fichier en lui-même.
Dans la mesure où PHP effectue un "copier-coller", toutes variables déclarées dans la page d'inclusion avant l'instruction d'inclusion seront connues dans la page à inclure.
La fonction include_once

La fonction include_once se comporte comme sa soeur include, à la différence près que PHP veillera dans ce cas à ce que la page à inclure ne soit incluse qu'une et une seule fois.
Les fonctions require et require_once
Les fonctions require et require_once se comportent de la même manière que leurs cousines include et include_once... quand tout se passe bien!
En effet, c'est lors d'une erreur d'inclusion que leur comportement diffère.
En utilisant include ou include_once, si PHP ne peut trouver le fichier à inclure il affichera éventuellement une erreur, et le traitement de la page continuera.
Pour éviter ce genre de désagrément dans le cas où les informations contenues dans la page à inclure sont vitales pour la bonne exécution de la page d'inclusion, vous pouvez utiliser require ou require_once.
En effet, avec ces fonctions la survenue d'une erreur lors de l'inclusion sera fatale et PHP arrêtera le traitement de la page d'inclusion.
Transmettre des valeurs d'une page à une autre

Il existe deux méthodes simples pour passer des valeurs d'une page à une autre.
Les formulaires HTML
Tout élément nommé d'un formulaire HTML envoyé vers une page PHP se voit référencé en tant que variable dans la page de destination.
Dans la page de départ :
<input type="text" name="nom_utilisateur">

Dans la page de destination, on pourra écrire :
echo $nom_utilisateur;
Le passage par URL
Il est possible de passer des valeurs vers une page PHP via l'url de celle-ci. Cette méthode peut donc s'appliquer sur un simple lien hyper-texte.
Syntaxe :
nom_de_la_page.php?
variable_1=valeur_1&variable_2=valeur_2&variable_n=valeur_n
Les valeurs sont alors accessibles dans la page de destination par :
echo $variable_n;

Exemple sur un lien hypertexte :
Dans la page de départ :
<a href="afficher_champs.php?nomdelabase=mabase&nomdelatable=matable> Afficher les tables </a>
Dans la page de destination :
echo $nomdelabase;
echo $nomdelatable;

Attention cependant à prendre quelques précautions :
Dès lors que les valeurs sont susceptibles de comporter des caractères autres que les caractères alpha-numérique et "_", il faut encoder la chaîne avec une des fonctions d'encodage de PHP.
Exemple :
Si la valeur à transmettre comporte un "&", il faut encoder la chaîne pour que ce caractère ne soit pas interprété comme étant la fin de la valeur mais bien comme partie de celle-ci.
<?php
$valeur = "mielpops&chocobiscuits";
?>

<a href="petit_dej.php?petit_dej="<?php echo urlencode($valeur) ?>"> En avant pour le petit déjeuner! </a>

Les sessions
Il peut être parfois nécessaire de conserver des valeurs (nom d'utilisateur, mot de passe) sur un ensemble de pages sans avoir à les passer sans arrêt d'une page à une autre. C'est ici qu'intervient le concept de session, introduit dans PHP4.
L'identifiant de session :

Chaque visiteur se voit attribué un numéro unique, l'identifiant de session.
Cet identifiant va permettre à php de recréer l'environnement précédent d'un visiteur.
Il peut être propagé soit par cookies, soit par l'URL.
Les cookies :
Utiliser les cookies est déconseillé, au vu du manque de fiabilité de cette méthode (l'utilisateur peut très bien les rejeter).
L'URL :
On peut connaître l'identifiant de session avec la variable
$PHPSESSID.

Il faut alors l'ajouter aux paramètres des pages que l'on appelle:
page.php?var_1=val_1...&PHPSESSID=$PHPSESSID
La méthode par URL présente un avantage indéniable : si PHP a été compilé avec l'option "enable-trans-sid", celui-ci se chargera de transmettre l'identifiant à toutes les pages concernées de manière complètement transparente! L'identifiant n'apparaîtra même pas dans la barre d'adresses! De cette manière, vous n'aurez à vous préoccuper ni de son utilisation, ni même de sa valeur!
Démarrage d'une session :
Une session commence avec l'instruction :
session_start();
Cette fonction ouvre une nouvelle session, ou si la session existe déjà, l'environnement précédent sera recrée.
Les variables de session :
Lorsqu'une session est créée, il est possible d'enregistrer des variables, dites "de session", et qui seront alors connues dans n'importe quelle page faisant partie de la session.
Les variables de sessions sont enregistrées sur le serveur, ce qui évite la contrainte des cookies.
Ajout d'une variable de session :

Pour enregistrer une variable de session, utilisez la fonction :
session_register("nom_de_la_variable");
Exemple :
Dans page.php :
session_start();
$ma_variable = toto;
session_register("ma_variable");
Dans page2.php :
session_start();
echo $ma_variable; // Affichera toto

Attention :
Quand vous modifiez une variable de session, la modification est locale. C'est à dire que la variable de session ne sera pas modifiée tant que vous ne l'aurez pas ré-enregistrée avec session_register("ma_variable");.
Suppression d'une variable de session :
Pour supprimer une variable de session, utilisez la fonction :
session_unregister("nom_de_la_variable");
Suppression de toutes les variables de sessions :
Pour supprimer toutes les variables de session, utilisez la fonction :
session_unset();

Fin d'une session :

Pour terminer une session en sauvegardant les données :
session_write_close();
Pour terminer une session sans rien sauvegarder :
session_destroy();


Votre commentaire





Commentaires


destiny   27/11/2020 à 12:54:49
Bonjour glodie merci de nous avoir ecris nous tiendrons bien compte de votre proposition...

Glodie   21/11/2020 à 08:55:03
Bonjour, Je suis dans la province du maniema au kindu j venais de commencer avec le PHP car j'ai fini ma formation en HTML et CSS votre article ici est Vrmnt complet j vous prie si vous pouvez nous proposez des cours aussi sous forme vidéo ça peut beaucoup nous plaire....