Manuel d'auto-a...login
Manuel d'auto-apprentissage complet PHP
auteur:php.cn  temps de mise à jour:2022-04-15 13:53:54

Formulaire PHP



Les variables $_GET et $_POST en PHP sont utilisées pour récupérer des informations dans un formulaire, comme la saisie de l'utilisateur.


Traitement des formulaires PHP

Une chose très importante à noter est que lors du traitement des formulaires HTML, PHP peut automatiquement automatiquement Devenir disponible pour les scripts PHP.

Exemple

L'exemple ci-dessous contient un formulaire HTML avec deux zones de saisie et un bouton de soumission.

form.html Le code du fichier est le suivant :

<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<form action="welcome.php" method="post">
名字: <input type="text" name="fname">
年龄: <input type="text" name="age">
<input type="submit" value="提交">
</form>
</body>
</html>
Lorsque l'utilisateur remplit le formulaire ci-dessus et clique sur le bouton Soumettre, les données du formulaire seront être envoyé au nom Le fichier PHP pour "welcome.php" :

le fichier Welcome.php est le suivant :

欢迎 <?php echo $_POST["fname"]; ?>!<br>
你的年龄是 <?php echo $_POST["age"]; ?>  岁。

La démo accessible via le Le navigateur est le suivant :

ebea44c50d0149ee1a56188155ee841.png

468a1578b0cac31cf9b7a3fc900084a.png

Nous expliquerons les $_GET et $_POST variables en PHP dans le prochain chapitre.


PHP Obtenir les données du menu déroulant

Sélection radio du menu déroulant PHP

Dans l'exemple suivant, nous avons configuré trois options pour le menu déroulant. Le formulaire utilise la méthode GET pour obtenir des données si la valeur de l'attribut d'action est vide. , cela signifie qu'il est soumis au script actuel. On peut obtenir le menu déroulant via l'attribut name de select Valeur du menu :

code du fichier php_form_select.php :

<?php$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';if($q) {
        if($q =='PHP') {
                echo 'php中文网教程<br>http://www.php.cn';        
                } else if($q =='GOOGLE') {
                echo 'Google 搜索<br>http://www.google.com';        
                } else if($q =='TAOBAO') {
                echo '淘宝<br>http://www.taobao.com';        
                }} 
                else {
                
                ?>
<form action="" method="get"> 
    <select name="q">
    <option value="">选择一个站点:</option>
    <option value="PHP">PHP</option>
    <option value="GOOGLE">Google</option>
    <option value="TAOBAO">Taobao</option>
    </select>
    <input type="submit" value="提交">
    </form>
<?php}?>

<. 🎜>Menu déroulant PHP multi-sélection

Si le menu déroulant est Pour les sélections multiples (multiple="multiple"), on peut l'obtenir en définissant select name="q[]" sous forme de tableau, et soumettez-le en utilisant POST. Le code est le suivant :

php_form_select_mul.php Code du fichier :

<?php$q = isset($_POST['q'])? $_POST['q'] : '';if(is_array($q)) {
    $sites = array(
            'PHP' => 'php中文网: http://www.php.cn',            
            'GOOGLE' => 'Google 搜索: http://www.google.com',            
            'TAOBAO' => '淘宝: http://www.taobao.com',    );    
            foreach($q as $val) {
        // PHP_EOL 为常量,用于换行
        echo $sites[$val] . PHP_EOL;    }
      } else {
      ?>
<form action="" method="post"> 
    <select multiple="multiple" name="q[]">
    <option value="">选择一个站点:</option>
    <option value="PHP">PHP</option>
    <option value="GOOGLE">Google</option>
    <option value="TAOBAO">Taobao</option>
    </select>
    <input type="submit" value="提交">
    </form>
<?php}?>

Bouton radio. form

Les valeurs de l'attribut name dans le formulaire du bouton radio PHP sont cohérentes, mais les valeurs de valeur sont différentes, le code est le suivant :

Code du fichier php_form_radio.php :

<?php$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';if($q) {
        if($q =='PHP') {
                echo 'php中文网教程<br>http://www.php.cn';        } else if($q =='GOOGLE') {
                echo 'Google 搜索<br>http://www.google.com';        } else if($q =='TAOBAO') {
                echo '淘宝<br>http://www.taobao.com';        }} else {
?><form action="" method="get"> 
    <input type="radio" name="q" value="RUNOOB" />Runoob    <input type="radio" name="q" value="GOOGLE" />Google    <input type="radio" name="q" value="TAOBAO" />Taobao    <input type="submit" value="提交"></form>
<?php}?>

case à cocher case à cocher

case à cocher PHP La case à cocher peut sélectionner plusieurs valeurs :

php_form_select_checkbox Code du fichier .php :

<?php$q = isset($_POST['q'])? $_POST['q'] : '';if(is_array($q)) {
    $sites = array(
            'PHP' => 'php中文网教程: http://www.php.cn',            
            'GOOGLE' => 'Google 搜索: http://www.google.com',            
            'TAOBAO' => '淘宝: http://www.taobao.com',    );    
            foreach($q as $val) {
        // PHP_EOL 为常量,用于换行
        echo $sites[$val] . PHP_EOL;    }
      } else {
?>
<form action="" method="post"> 
    <input type="checkbox" name="q[]" value="PHP"> PHP<br> 
    <input type="checkbox" name="q[]" value="GOOGLE"> Google<br> 
    <input type="checkbox" name="q[]" value="TAOBAO"> Taobao<br>
    <input type="submit" value="提交">
    </form>
<?php}?>

Validation du formulaire

Nous devons faire de notre mieux pour vérifier que l'entrée de l'utilisateur est validée (via le script client). La validation du navigateur est plus rapide et réduit la pression sur le serveur.

Si les entrées de l'utilisateur doivent être insérées dans une base de données, vous devriez envisager d'utiliser la validation du serveur. Un bon moyen de valider un formulaire sur le serveur consiste à transmettre les données du formulaire à la page actuelle (la soumission asynchrone est préférable), plutôt que de passer à une autre page. De cette façon, les utilisateurs peuvent recevoir des messages d’erreur sur la même page de formulaire. Il sera plus facile pour les utilisateurs de trouver les erreurs.

Articles connexes recommandés : "Introduction détaillée à l'obtention de données de formulaire avec PHP"

Tutoriels pratiques recommandés : "Formulaires PHP et saisie utilisateur