web-dev-qa-db-fra.com

php forme action php auto

J'ai un formulaire php comme celui-ci.

<form name="form1" id="mainForm" method="post"enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>">

</form

Dans l'action de formulaire, je veux utiliser le nom de la page avec des paramètres. comme house.php?p_id=10111. Mais $ _SERVER ['PHP_SELF'] ne donne que le house.php (L'URL complète de ma page est house.php?p_id=10111 comme ça) Aidez-moi à résoudre ce problème. Merci.

23
Sasindu H

Que diriez-vous de le laisser vide, quel est le problème avec cela?

<form name="form1" id="mainForm" method="post" enctype="multipart/form-data" action="">

</form>

Vous pouvez également omettre l'attribut action et cela fonctionnera comme prévu.

77
Shef

Vous pouvez laisser l'action vide ou utiliser ce code:

<form name="form1" id="mainForm" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI'];?>">
</form>
15
shaggy

Si vous laissez la valeur d'action vide, le formulaire sera renvoyé à lui-même.

8
Matt R. Wilson

Vous pouvez également utiliser un raccourci d'écho au lieu de taper "echo blah;" comme indiqué ci-dessous:

<form method="POST" action="<?=($_SERVER['PHP_SELF'])?>">
4
joskah

C'est parfait. essaye celui-là :)

<form name="test" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
/* Html Input Fields */
</form>  
2
Lakshman Kambam

Une autre méthode (et à mon avis appropriée) consiste à utiliser le __FILE__ constant si vous n'aimez pas compter sur $_SERVER variables.

$parts = explode(DIRECTORY_SEPARATOR, __FILE__);
$fileName = end($parts);
echo $fileName;

A propos de la magie et des constantes prédéfinies: 1 , 2 .

2
Arda

Si vous voulez être en sécurité, utilisez ceci: <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

0
gleb