Comment cette forme php fonctionne-t-elle sans définir la variable $ SCRIPT_NAME?Comment fonctionne cette forme php sans définir de variable?
<form action="<?php echo $SCRIPT_NAME ?>" method="post">
Comment cette forme php fonctionne-t-elle sans définir la variable $ SCRIPT_NAME?Comment fonctionne cette forme php sans définir de variable?
<form action="<?php echo $SCRIPT_NAME ?>" method="post">
Ce code repose sur l'ancienne, dépréciée et horrible register_globals
fonction qui crée des variables globales de tous les $_REQUEST
, $_COOKIE
et $_SERVER
champs.
Je vous suggère fortement de se débarrasser de ce code et de désactiver le paramètre register_globals
.
Il existe une variable, $ _SERVER ['SCRIPT_NAME'] qui imprime le nom du script en cours. Vous pouvez trouver des informations à ce sujet ici: http://php.net/manual/en/reserved.variables.server.php
Je suppose que c'est ce qui est utilisé.
il n'a pas utilisé '$ _SERVER' – diEcho
Dans ce cas, register_globals est probablement activé dans la configuration php - généralement une mauvaise idée. Cela signifie que vous n'avez pas besoin de référencer spécifiquement certaines des variables globales (comme $ _SERVER) que PHP fournit, mais cela peut causer des problèmes de sécurité: http://php.net/manual/fr/security.globals.php –
La variable $_SERVER['PHP_SELF']
vous donnera le chemin relatif du script d'exécution, ainsi que la variable $_SERVER['SCRIPT_NAME']
qui donne le nom du script courant.
Une alternative serait d'utiliser $_SERVER['SCRIPT_FILENAME']
ou la constante FICHIER, qui donnent chacun le chemin absolu.
Ceux-ci devraient être préférés et utilisés au lieu d'utiliser la fonctionnalité register-globals
qui devrait être désactivée comme l'a dit @ThiefMaster.
Souhaitez-vous que le script lui-même soit appelé sur la soumission de formulaire? – Eldros
Si la variable a une valeur, cette valeur est assignée * quelque part *. Peut-être pas juste à côté du formulaire, mais si vous "grep" pour "SCRIPT_NAME" vous le trouverez certainement. – Jon
Quelle est la sortie HTML? –