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 ? 

Made with Slides.com