Position actuelle: Accueil> Derniers articles> Comment la fonction principale PHP gère-t-elle la publication et obtient-elle les demandes? Analyse des étapes détaillée

Comment la fonction principale PHP gère-t-elle la publication et obtient-elle les demandes? Analyse des étapes détaillée

gitbox 2025-09-02

1. Traitement des demandes de GET

Les demandes de GET sont principalement utilisées pour obtenir des données du serveur, qui transmettent les données via des paramètres d'URL. Dans PHP, le tableau hyperglobal $ _get est utilisé pour recevoir des paramètres passés dans la demande GET.

1.1 Recevez des demandes de GET

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">main</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-comment">// Vérifiez s&#39;il y a GET Paramètres demandés</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>])) {
        </span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>];  </span><span><span class="hljs-comment">// Obtenir GET Paramètres de la demande 'name'</span></span><span>
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello, "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$name</span></span><span>);  </span><span><span class="hljs-comment">// Sortir 'Hello, &lt;name&gt;'</span></span><span>
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"No name provided!"</span></span><span>;
    }
}
</span></span>

Dans le code ci-dessus, $ _get ['name'] obtient les paramètres de l'URL. Si l'URL est example.com/?name=john , la sortie sera:

 <span><span>Hello, John
</span></span>

1.2 Codage et sécurité des paramètres URL

La sécurité est un incontournable lors du traitement des demandes de traitement, en particulier lors du traitement des données saisies par les utilisateurs. Pour éviter les attaques XSS, il est très important d'utiliser la fonction htmlSpecialChars () pour coder les données de sortie. Cette fonction échappe aux balises HTML de l'entrée de l'utilisateur, évitant ainsi l'injection de code malveillant.

2. Traitement des demandes de poste

Les demandes de publication sont généralement utilisées pour envoyer des données au serveur, en particulier lorsque les données de formulaire doivent être soumises. En PHP, le tableau hyperglobal $ _post est utilisé pour recevoir les données de la demande de poste.

2.1 Recevoir des demandes de poste

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">main</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-comment">// Vérifiez si c&#39;est POST demander</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'POST'</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>]) &amp;&amp; </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'password'</span></span><span>])) {
            </span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>];
            </span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'password'</span></span><span>];
            
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Username: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$username</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Password: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$password</span></span><span>);
        } </span><span><span class="hljs-keyword">else</span></span><span> {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Please fill in the required fields!"</span></span><span>;
        }
    }
}
</span></span>

Dans cet exemple, les données publiées par la publication sont obtenues par $ _post ['username'] et $ _post ['mot de passe'] . Si le formulaire est soumis via la demande de poste, la sortie affichera le nom d'utilisateur et le mot de passe.

2.2 Vérification du formulaire et nettoyage des données

Lors du traitement des demandes de poste, l'entrée de l'utilisateur peut ne pas être comme prévu ou transporter du code malveillant. Habituellement, nous devons effectuer une vérification et un nettoyage des données. Par exemple, vous pouvez vérifier si l'entrée de l'utilisateur est vide, qu'elle rencontre un format spécifique, etc.

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">main</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'POST'</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>])) {
            </span><span><span class="hljs-variable">$email</span></span><span> = </span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>], FILTER_SANITIZE_EMAIL);
            </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$email</span></span><span>, FILTER_VALIDATE_EMAIL)) {
                </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Valid email: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$email</span></span><span>);
            } </span><span><span class="hljs-keyword">else</span></span><span> {
                </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Invalid email format!"</span></span><span>;
            }
        } </span><span><span class="hljs-keyword">else</span></span><span> {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Email is required!"</span></span><span>;
        }
    }
}
</span></span>

Dans ce code, nous utilisons la fonction filter_var () pour nettoyer et vérifier l'adresse e-mail pour nous assurer que son format est valide.

3. Combinaison de demandes Get et Post

Parfois, nous devons traiter les deux demandes d'obtention et de publication. Afin de mieux gérer les demandes, la méthode des demandes peut être jugée simultanément dans la fonction principale et traitée séparément en fonction des différents besoins.

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">main</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'POST'</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'message'</span></span><span>])) {
            </span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$_POST</span></span><span>[</span><span><span class="hljs-string">'message'</span></span><span>]);
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Received POST message: "</span></span><span> . </span><span><span class="hljs-variable">$message</span></span><span>;
        }
    } </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'GET'</span></span><span>) {
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>])) {
            </span><span><span class="hljs-variable">$id</span></span><span> = </span><span><span class="hljs-title function_ invoke__">intval</span></span><span>(</span><span><span class="hljs-variable">$_GET</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>]);  </span><span><span class="hljs-comment">// Obtenir GET demander中的 id paramètre</span></span><span>
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Requested GET ID: "</span></span><span> . </span><span><span class="hljs-variable">$id</span></span><span>;
        }
    }
}
</span></span>

Dans cet exemple, PHP détermine s'il faut traiter les messages dans la demande de poste ou les ID dans la demande GET en fonction du type de demande.

4. Résumé

En utilisant $ _get et $ _post des tableaux hyperglobaux, PHP peut facilement gérer les demandes GET et Post. Que ce soit pour obtenir des paramètres URL ou soumettre des données de formulaire, nous pouvons effectuer un traitement logique dans la fonction principale . Dans le développement réel, une attention particulière doit être accordée à la sécurité lors du traitement des demandes pour garantir que le contenu entré par l'utilisateur a été vérifié et nettoyé pour éviter les risques de sécurité tels que l'injection SQL et les attaques XSS.