Coder en PHP procédural

Exemples de codes PHP procédural.

 

Variables avec PHP

Choisir des noms de variables avec un sens évident réduit les possibilités d'erreurs et facilite la relecture des scripts.
Exemple : $NomDeFamille est plus significatif que $NDF.

Il existe différents types de variables, pour faire simple,les nombres, les chaînes de caractères et les tableaux.

Les nombres :
Entiers (1, 0, -2)
Flottants (1.2 1,5)

Les chaînes de caractères :
"Hello World"
"Bienvenue $Prenom"
'1 1/4'
"02.04.82"
"2019"

 

Assignation de valeur à une variable

L'opérateur d'affectation  =  est utilisé pour affecter une valeur à une variable.

$nombre = 1;
$nombre_flottant = 1.2;
$chaine = "Affectation de valeur à une variable.";

 

Exemple de chaîne de caractères

<?php
$variable=123;
echo 'La variable vaut : $variable'; // On voit $variable
echo "La variable vaut : $variable"; // On voit 123
?>

La variable vaut : $variableLa variable vaut : 123

 

Afficher la date du jour

<?php
echo Date ("j/m/Y");
?>

Nous sommes le : 22/02/2019

 

Afficher la date de dernière mise à jour d'un fichier

Mise à jour du <?php echo date ("d/m/Y à H:i:s", getlastmod()); ?>

Mise à jour du 11/02/2019 à 18:47:00

 

Écrire du code HTML

<?php
print("<b><i>Bonjour PHP !</i></b>");
?>

Bonjour PHP !

 

Échapper des guillemets " avec un antislash \

Permet par exemple de conserver les guillemets dans le code HTML.

<?php
print("<font color=\"#ff0000\">Du texte en rouge écrit en HTML et PHP !</font>");
?>

Du texte en rouge écrit en HTML et PHP !

 

Écrire un lien

<?php
$lien = 'https://www.visionduweb.fr';
?>
<a href="/<? $lien ?>" target="_new" title="Visionduweb.">Le lien vers la page d'accueil de Visionduweb</a>

Le lien vers la page d'accueil de Visionduweb

 

Aller à la ligne

Aller à la ligne avec \r\n.
Utiliser <br/> en fonction du contexte.

 

Utiliser les commentaires

Écrire un commentaire avec // devant une ligne.
Écrire un commentaire /* ....... */ pour un paragraphe.

 

Inclure un fichier dans une page PHP

<?php include('fichier.html'); ?>

 

Employer la methode Get en dehors d'un formulaire

Le serveur local doit être lancé.
Appel depuis le navigateur le fichier hello.php avec l'adresse suivante : 127.0.0.1/hello.php?nom=dupond&prenom=dupont
Appel depuis un lien : <a href="/hello.php?nom=dupond&prenom=dupont">Appeler le fichier hello.php</a>

Le contenu du fichier hello.php

<?php
print ("<p>Hello, $nom $prenom</p>");
?>

Si les variables $nom et $prenom n'ont pas de valeur, il n'y a que Hello qui s'affiche.

 

Créer un formulaire en HTML

Le formulaire :  formulaire.html

<html>
<head></head>
<body>
<form action="traitement.php" method="post">
Nom : <input type="text" name="nom" size="10">
<br>
Prénom : <input type="text" name="prenom" size="20">
<br>
Mail : <input type="text" name="Email" size="20">
<br>
Notes : <textarea name="notes" rows="5" cols="20">
<br>
<input type="submit" value="Envoyer !">
<input type="reset" name="reset" value="Recommencer">
<input type="hidden" name="azerty" value="abracadabra">
</form>
</body>
</html>

L'attribut action indique l'adresse de la page ou du script qui doit recevoir les informations recueillies par le formulaire.
La méthode Get affiche visuellement les éléments transmis dans le lien de navigation. C'est donc une faille de sécurité sérieuse.
Une page crée avec la méthode Get peut être mise dans les signets. Une page crée avec la méthode Post ne peut pas être enregistrée dans les signets.
La balise input type="hidden" sert à passer des constantes sans que l'utilisateur n'en sache rien.

Le traitement du formulaire en PHP : traitement.php

<html>
<head></head>
<body>
<?php
/* Cette page reçoit et traite les infos de formulaire.htm */
print ("Votre nom est $nom et votre prénom $prenom");
print ("Votre email est $Email");
print ("Vos notes : $notes");
print ("La variable cachée : $azerty");
/* Prolonger la vie de la variable.
Écrit de cette façon, la vie de la variable est prolongée. */
print ("<input type=\"hidden\" name=\"azerty\" value=\"abracadabra\"");
?>
</body>
</html>

 

Connaître son adresse IP publique

$ip = $_SERVER['REMOTE_ADDR'];
echo ("Votre adresse IP publique est $ip.");

Votre adresse IP publique est 34.226.208.185.

 

Connaître le nom du serveur

<?php
echo "Le nom du serveur est " . $_SERVER['SERVER_NAME'];
?>

Le nom du serveur est www.visionduweb.fr

 

Afficher la variable SERVER PHP_SELF

<?php
echo "La variable SERVER PHP_SELF est " . $_SERVER['PHP_SELF'];
?>

La variable SERVER PHP_SELF est /index.php

 

Effectuer une redirection permanente avec PHP

// Effectuer une redirection permanente depuis un fichier index.php
<?php
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.visionduweb.fr");
exit();
?>

 

Les informations du serveur Apache

La fonction phpinfo() renvoie un tableau contenant les spécificités de l'installation de PHP sur votre serveur.

<?php
phpinfo();
?>

 

Lutter contre l'exploitation des mots de passe avec une clé de salage

<?php
// Caractères ASCII.
$lower = range(97, 122); // 26 caractères
$upper = range(65, 90); // 26 caractères
$numeric = range(48, 57); // 10 caractères
$base = array_map('chr', array_merge($lower, $upper, $numeric));
shuffle($base);

// 25 caractères uniques.
$salt1 = implode('', array_slice($base, 0, 25));
echo $salt1, '<br />';
 
// 25 caractères.
$salt2 = '';
for($i = 0; $i < 25; ++$i) {
$salt2 .= $base[mt_rand(0, 51)];
}
echo $salt2, '<br />';
?>

La première clé comprend 25 caractères uniques.
La seconde clé comprend 25 caractères.
Zue38jnR0QXolr2JOxPdkVEmC
39UlmEhqh1Rw2y9KeNRrfyhbx

 

Utiliser la clé de salage pour protéger les mots de passe

La clé de salage a été générée et peut maintenant être utilisée pour saler les mots de passe.

<?php
$pwd = '123456';
$salt = 'W9hvxBZpTHTj1YnO9QAhR94tw9rLs1bIKnwENsxd';
// On encode l'ensemble : mot de passe + clé de salage
$crypted = md5($pwd.$salt);   // 7e14666b8f0bac16cb4c1ddbd6d552a3
?>

Le mot de passe salé est encrypté en MD5.
7e14666b8f0bac16cb4c1ddbd6d552a3

Pour retrouver le mot de passe en clair, un dictionnaire de piratage devra contenir le mot suivant : "123456W9hvxBZpTHTj1YnO9QAhR94tw9rLs1bIKnwENsxd".

 

Identifier un utilisateur avec une clé de salage

Pour tester l'identification des utilisateurs, on accole la clé de salage à leur saisie et on passe le résultat à la fonction md5().
On cherche dans l'existence dans la base de données d'un utilisateur répondant au critère : $login et $crypted = md5($pwd.$salt) comme indiqué plus haut.

On peut mélanger plusieurs méthodes : réversibilité, salage, algorithme cryptographique, longueur de clé de cryptage...

La fonction crypt() est conçue pour faciliter cette démarche, avec quelques paramètres on obtient un résultat quasiment incassable. Il n'est pas forcément utile de se pencher sur les mathématiques très complexes sous-jacente à cela.

Il est donc important de bien choisir les clés de salage et ceci quelque soit la méthode de cryptage utilisée.

 

Procédure pour stocker les clés de salage

En base de données avec des requêtes PHP sécurisées et une connexion en https:// pour la sécurité de l'échange.

Les banquiers détiennent la Terre. Si vous souhaitez rester leur esclave et payer le coût de votre propre esclavagisme, alors laissez-les continuer à créer de l’argent.
[Sir Josiah Stamp - Gouverneur de la banque d’Angleterre, 1920.]

Version Beta Stable 4.0 du projet Vision du web 2002 - 2019

Condition d'utilisation du site Vision du web

Vous êtes soumis au règlement suivant et à ce titre ni l'administrateur ni l'hébergeur ne pourraient ni ne seraient tenu pour responsable de vos actes.
Vous ne devez en aucun cas utiliser les informations présentes sur Visionduweb pour nuire à autrui ou à un système informatique.

La licence CC BY-NC-ND 4.0 est attribuée au contenu rédigé par Visionduweb sur les domaines suivants :
www.visionduweb.com - www.visionduweb.eu - www.visionduweb.fr - www.visionduweb.info
Les profils utilisés par Visionduweb : Anonymous, Visionduweb, Zer00CooL

Soutenir le travail de recherche de Visionduweb.
Visionduweb utilise la crypto-monnaie.
Faire un don.
 

Chercher dans le contenu

Menu de connexion