探讨PHP变量解析顺序如何获取提交数据_PHP教程
由于提交后并没有告知该次提交的链接URL,所以这个BUG一直活到了今天。然而并不是每一次提交都会出现这个BUG,几次测试后发现只有在连续多次提交时发生。由于提交的表单比较复杂,分几部分录入,于是怀疑在中间环节发生错误。
排错的过程先是在各个过程中var_dump($_REQUEST),于是连续第二次提交时找到出错环节,在第一个表单提交到第二个表单的过程中,$_REQUEST数组发生改变。到这里,我们有必要再看一下$_REQUEST数组:
手册上讲包含经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。以此将var_dump($_REQUEST)分解成var_dump($_POST),var_dump($_GET),var_dump($_COOKIE),问题就比较清晰了,原来为了便于在多个页面表单间保存值,试用了COOKIE,虽然没有设置expire项的情况下SESSION结束时COOKIE变销毁,但是如果在一次会话中连续提交多个广告,表单POST的值变会被之前保存在COOKIE的值覆盖,而之所以只有部分出错,在于保存到COOKIE的时候COOKIE变量名都加了前缀,除了url这个变量还是使用相同的变量名。
问题找到了,但是又有新的疑问,相同的变量名,为什么是COOKIE覆盖了POST而不是相反呢?于是终于要来到标题讲的variables_order设置项了,php.ini中原文如下:
This directive describes the order in which PHP registers GET, POST, Cookie,
Environment and Built-in variables (G, P, C, E & S respectively, often
referred to as EGPCS or GPC). Registration is done from left to right, newer
values override older values.
意思是该设置描述PHP解析变量顺序,包括$_GET,$_POST,$_COOKIE,$_ENV ,$_SERVER 数组,
解析顺序从左到右,后解析新值覆盖旧值。默认设定为EGPCS(Environment,GET,POST,Cookie,Server)。
如果将其设为“GP”,会导致 PHP 完全忽略环境变量,cookies 和 server 变量,并用 POST 方法的变量覆盖 GET 方法的同名变量。
结论:
就像手册上讲的,$_REQUEST是个并不值得信任的数组。为了尽量避免类似问题,在获取提交值是应明确使用$_POST或$_GET数组。
特殊情况下可以通过调整variables_order设置,使自己总是能得到想要获取的提交数据。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.
