دورة php للمبتدئين الدرس الرابع عشر


فهاد الدرس الرابع عشر من سلسلة php للمبتدئين غادي نشوفوا كيفاش نتحققو بلي الحقول ديال الفورم ديالنا حتى واحد فيهم مرسل قيمة فارغة من بعد غادي نشوفوا كيفاش نديرو التحقق من القيم ديال الحقول ب des fonctions ديال php.


1- تعديل الفورم فالملف index.php

فأول حاجة غادي نديرو تعديل على الفورم لي كنا زدنا فالدرس السابق  غادي نزيدو des champs جداد لي فيهم لايمايل وكلمة المرور ولي عطيتهم name لي هو email و passe ولي بيهم غادي نسترجع القيم لي دخلنا.
أما الفورم فعطيتها ل method post ول action للملف نفسو لي هو index.php الكود لي زدنا فالملف :

                                <?php
    
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Php Cours</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
    <script src="main.js"></script>
</head>
<body>
    <form action="index.php" method="post">
        <input type="text" name="name" id="name">
        <input type="email" name="email" id="email">
        <input type="password" name="passe" id="passe">
        <input type="submit" value="valider">
    </form>
</body>
</html>
                            

2- التحقق من الحقول

فالكود php غادي نزيد des variables لي سميتهم السمية ديال الحقول name,email,passe ونفس les variables مع Err فيهم غادي يتعرضوا الرسائل ديال الخطأ
منبعد كنسترجع القيم كيف شفنا قبل بل variable $_POST منبعد كنتحقق بواحد ل fonction empty لي هي ديال php ولي كتمكني باش نعرف واش شي حقل خاوي فيلا كان كنعطي لل variable Err لميساج لي بغيت يتعرض مكنش كنحمي الحقل كيف شفنا قبل وكنزيد لقيمة ديالو فل variable لي بسميتو الكود لي زدنا هو :

                                <?php
    $nameErr = "";
    $emailErr = "";
    $passeErr = "";
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        if(empty($_POST['name'])){
            $nameErr = "Veuillez remplir le champ nom";
        }else{
            $name = htmlspecialchars($_POST['name']);
            $name = trim($name);
            $name = stripslashes($name);
        }
        if(empty($_POST['email'])){
            $emailErr = "Veuillez remplir le champ email";
        }else{
            $email = htmlspecialchars($_POST['email']);
            $email = trim($email);
            $email = stripslashes($email);
        }
        if(empty($_POST['passe'])){
            $passeErr = "Veuillez remplir le champ mot de passe";
        }else{
            $passe = htmlspecialchars($_POST['passe']);
            $passe = trim($passe);
            $passe = stripslashes($passe);
        }
    }
?>
                            

3- عرض رساءل الخطأ فالفورم

فباش نعرض رسائل الخطأ فالفورم كيكفي باش نخدم ب echo ونعرض لميساج الخاص بكل حقل تحت منو فدرت تغييرات على الفورم باش تمكني انني نعرض الرسائل الكود لي زدت هو :

                                <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Php Cours</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
    <script src="main.js"></script>
</head>
<body>
    <form action="index.php" method="post">
        <label for="name">Nom & Prénom</label>
        <input type="text" name="name" id="name">
        <span class="error"><?php echo $nameErr;?></span><br>
        <label for="email">Email </label>
        <input type="email" name="email" id="email">
        <span class="error"><?php echo $emailErr;?></span><br>
        <label for="passe">Mot de passe</label>
        <input type="password" name="passe" id="passe">
        <span class="error"><?php echo $passeErr;?></span><br>
        <input type="submit" value="valider">
    </form>
</body>
</html>
                            

4- التحقق من أن الإيمايل valide ف php

باش نتحقق بلي الإيمايل valide ف php كاين واحد ل fonction لي هي ديال php سميتها filter_var كتاخد ل email ول validation فالمثال لي عندنا كنسترجع ل email منبعد كن tester بل fonction filter_var واش فعلا ل email valide يلا مكانش كن afficher message دخل إيمايل لي يكون صحيح الكود لي زدنا هو :

                                    <?php
    $nameErr = "";
    $emailErr = "";
    $passeErr = "";
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        // if(empty($_POST['name'])){
        //     $nameErr = "Veuillez remplir le champ nom";
        // }else{
        //     $name = htmlspecialchars($_POST['name']);
        //     $name = trim($name);
        //     $name = stripslashes($name);
        // }
        // if(empty($_POST['email'])){
        //     $emailErr = "Veuillez remplir le champ email";
        // }else{
        //     $email = htmlspecialchars($_POST['email']);
        //     $email = trim($email);
        //     $email = stripslashes($email);
        // }
        // if(empty($_POST['passe'])){
        //     $passeErr = "Veuillez remplir le champ mot de passe";
        // }else{
        //     $passe = htmlspecialchars($_POST['passe']);
        //     $passe = trim($passe);
        //     $passe = stripslashes($passe);
        // }
        $email = $_POST['email'];
        if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
            $emailErr = "Veuillez entrer une adresse email valide";
        }
    }
?>
                                

5- كيفاش نخلي القيم فلفورم منبعد ميتعرضوا الرسائل

فيلا لاحضتي ملي كتكليكي على valider وكيتعرضوا الرساءل ديال الخطأ فالحقول لي كيكونوا عامرين كتختفي القيم لي فيهم لي كيخلي المستخدم يعاود يعمر الفورم مرة اخرى باش نتجاوز هاد المسألة كاين ل propriété value ديال الحقول لي كتمكن باش نعطي للحقول القيم لي بغيت هنا فالمثال لي زدنا كنعطي للفورم القيم لي فل les variables لي زدنا لي هما name,email,passe فيلا كان شي حقل دبا خاوي فالحقول لي عامرة غادي تبقى فيها نفس القيم الكود كامل هو :

                                    <?php
    $nameErr = "";
    $emailErr = "";
    $passeErr = "";
    $name = "";
    $email = "";
    $passe = "";
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        if(empty($_POST['name'])){
            $nameErr = "Veuillez remplir le champ nom";
        }else{
            $name = htmlspecialchars($_POST['name']);
            $name = trim($name);
            $name = stripslashes($name);
        }
        if(empty($_POST['email'])){
            $emailErr = "Veuillez remplir le champ email";
        }else{
            $email = htmlspecialchars($_POST['email']);
            $email = trim($email);
            $email = stripslashes($email);
        }
        if(empty($_POST['passe'])){
            $passeErr = "Veuillez remplir le champ mot de passe";
        }else{
            $passe = htmlspecialchars($_POST['passe']);
            $passe = trim($passe);
            $passe = stripslashes($passe);
        }
        // $email = $_POST['email'];
        // if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
        //     $emailErr = "Veuillez entrer une adresse email valide";
        // }
    }
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Php Cours</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
    <script src="main.js"></script>
</head>
<body>
    <form action="index.php" method="post">
        <label for="name">Nom & Prénom</label>
        <input type="text" name="name" id="name" value="<?php echo $name;?>">
        <span class="error"><?php echo $nameErr;?></span><br>
        <label for="email">Email </label>
        <input type="text" name="email" id="email" value="<?php echo $email;?>">
        <span class="error"><?php echo $emailErr;?></span><br>
        <label for="passe">Mot de passe</label>
        <input type="password" name="passe" id="passe" value="<?php echo $passe;?>">
        <span class="error"><?php echo $passeErr;?></span><br>
        <input type="submit" value="valider">
    </form>
</body>
</html>