PHP #2
Créer des sessions et factoriser le code
Rappels
INSERT
<?php
$userName = $_POST["name"];
$userAge = $_POST["age];
$req = $connexion->prepare("INSERT INTO TABLE_NAME(name,age)
VALUES(:name,:age)");
$req_e = $req->execute(array(
'name'=>$userName,
'age'=>$userAge
));
?>
Sélectionner des données
Requête
<?php
$monFiltre = "Toto";
$req = $db->prepare('SELECT champ_1,champ_2, champ_3
FROM maTable
WHERE champ_1 = :quelqueChose');
$req_e = $req->execute(array(
'quelqueChose' => $monFiltre
));
?>
Sélectionner des données
Récupérer les résultats
Deux façons :
FetchAll() : récupère tous les résultats sous forme de tableau
Fetch() : récupère une seule ligne
Sélectionner des données
Afficher les résultats - Avec un foreach
<?php
$monFiltre = "Toto";
$req = $db->prepare('SELECT champ_1,champ_2, champ_3
FROM maTable
WHERE champ_1 = :quelqueChose');
$req_e = $req->execute(array(
'quelqueChose' => $monFiltre
));
$resultats = $req->fetchAll();
foreach($resultats as $result) {
echo "Champ 1 :".$result["champ_1"]." <br/> Champ 2 :".$result["champ_2"];
}
?>
FOREACH
<?php
$tableau = array('francois', 'Michel', 'Nicole');
foreach($tableau as $key => value) {
echo "Valeur :".$value." <br/> // Key :".$key;
}
?>
Clé | Valeur |
---|---|
0 | francois |
1 | Michel |
2 | Nicole |
Sélectionner des données
Afficher les résultats - Avec un while et fetch()
<?php
$monFiltre = "Toto";
$req = $db->prepare('SELECT champ_1,champ_2, champ_3
FROM maTable
WHERE champ_1 = :quelqueChose');
$req_e = $req->execute(array(
'quelqueChose' => $monFiltre
));
$resultats = $req->fetchAll();
while($result = $req->fetch()) {
echo "Champ 1 :".$result["champ_1"]." <br/> Champ 2 :".$result["champ_2"];
}
?>
Les sessions
Connexion, déconnexion, variables de session
Pré-requis : formulaire
<form method="POST">
<input type="email" placeholder="Email" name="email" />
<input type="password" name="password" />
<input type="submit" name="connexion" value="Connexion" />
</form>
Les sessions
Connexion, déconnexion, variables de session
Requête de connexion
<?php
if($_POST) {
$mail = $_POST["email"];
$psw = $_POST["password"];
$req = $db->prepare('SELECT COUNT(*) AS nb, utilisateur_id, nom, prenom
FROM utilisateurs
WHERE email = :email AND password = :password');
$req_e = $req->execute(array(
'email'=>$mail,
'password'=>$psw
));
}
?>
Les sessions
Connexion, déconnexion, variables de session
Exploitation des résultats
<?php
// Suite du code
$req_f = $req->fetch();
$nb = $req_f["nb"];
if($nb==1) {
// On crée la session
session_start();
// On peut créer des variables de session qui vont nous servir pour la suite
// Exemple : stocker le prénom
$_SESSION["user_firstName"] = $req_f["prenom"];
}
}
?>
Les sessions
Connexion, déconnexion, variables de session
Afficher des erreurs
<?php
// Suite du code
if($nb==1) {
// On crée la session
session_start();
// On peut créer des variables de session qui vont nous servir pour la suite
// Exemple : stocker le prénom de l'utilisateur
$_SESSION["user_firstName"] = $req_f["prenom"];
}
else {
// Le couple email/mdp est erroné
echo "Le mail ou le mot de passe sont erronés";
}
}
?>
Les sessions
Connexion, déconnexion, variables de session
Lancer des sessions
<?php
session_start();
?>
Détruire une session
<?php
session_destroy();
?>
Factoriser le code
Include, require
Permet d'inclure des fichiers
Inclure systématiquement le fichier
include('connexion.php');
Inclure le fichier si ce n'est pas déjà fait
include_once('connexion.php');
Factoriser le code
Include, require
Inclure systématiquement le fichier
require('connexion.php');
Inclure le fichier si ce n'est pas déjà fait
require_once('connexion.php');
PHP #2
Des questions ?
deck
By Pauline Capot
deck
- 1,462