OVH Cloud OVH Cloud

modifier REQUEST_URI

2 réponses
Avatar
Christophe PEREZ
[2ème postage car semble pas être arrivé la première fois]

Bonsoir,

Je vais essayer d'être clair.

J'ai une page, appelée avec des paramètres dans l'url, ex :
http://monsite/test3.php?param=test&...

Dans cette page, j'ai un formulaire, avec action="".
Je voudrais que lorsque l'on valide ce formulaire, certains des paramètres
de la première url ne soient pas transportés.
J'ai essayé en modifiant les $_SERVER["REQUEST_URI"] et
$_SERVER["QUERY_STRING"] mais malgré tout, ces paramètres sont quand même
balancé dans l'url.
Ex :
------------ script test3.php ------------
<?php
echo "Avant traitement: <br>";
echo "REQUEST_URI:".$_SERVER["REQUEST_URI"]."<br>";
echo "QUERY_STRING:".$_SERVER["QUERY_STRING"]."<br>";
$_SERVER["REQUEST_URI"] = preg_replace("|[?&]param=[^&]*|","",$_SERVER["REQUEST_URI"]);
$_SERVER["QUERY_STRING"] = preg_replace("|param=[^&]*|","",$_SERVER["QUERY_STRING"]);
echo "Après traitement: <br>";
echo "REQUEST_URI:".$_SERVER["REQUEST_URI"]."<br>";
echo "QUERY_STRING:".$_SERVER["QUERY_STRING"]."<br>";
echo '
<form method="post" action="test3.php" id="form_identif" >
<input type="submit" id="bouton" name="bouton" value="bouton" />
</form>
';
?>
-----------------------------------------------------------

Je veux conserver certains de ces paramètres afin d'affiner le traitement
des cas particuliers d'erreur, je passe les détails.

Certes, je peux faire le traitement au moment d'afficher le formulaire, et
indiquer un "action=" correct, mais ça impose de le faire dans chaque page
alors qu'ici, ça serait mon module de gestion de session qui ferait
systématiquement le travail.

Une idée svp ?
Merci d'avance.

--
Christophe PEREZ
Écrivez moi sans _faute !

2 réponses

Avatar
KEvin
Dans un message précédent Christophe PEREZ nous a informé que
Je vais essayer d'être clair.


tant mieux je vais faire mon possible aussi ...

J'ai une page, appelée avec des paramètres dans l'url, ex :
http://monsite/test3.php?param=test&...

Dans cette page, j'ai un formulaire, avec action="".
Je voudrais que lorsque l'on valide ce formulaire, certains des paramètres
de la première url ne soient pas transportés.


la seule solution est de preciser explicitement le contenu de action=""
en retirant les parametres GET qui te genent

J'ai essayé en modifiant les $_SERVER["REQUEST_URI"] et
$_SERVER["QUERY_STRING"] mais malgré tout, ces paramètres sont quand même
balancé dans l'url.


c'est normal ce qu'il y a dans serveur n'a d'interet qu'en lecture : il
s'agit de variables initialise par le serveur web a l'attention de php
(informations sur la requete ,la connexion, le navigateur ...) ce n'est
la qu'a titre informatif (tout comme _GET, _POST, _REQUEST et _COOKIE,
_ENV je sais pas jamais utilise...)


Je veux conserver certains de ces paramètres afin d'affiner le traitement
des cas particuliers d'erreur, je passe les détails.

Certes, je peux faire le traitement au moment d'afficher le formulaire, et
indiquer un "action=" correct, mais ça impose de le faire dans chaque page
alors qu'ici, ça serait mon module de gestion de session qui ferait
systématiquement le travail.


si ce travail peut etre systematique rien ne t'empeche d'appeler une
fonction qui te cree le action correct, c'est le mieux que tu pourras
avoir !


--
KEvin

Avatar
Christophe PEREZ
Le Sat, 25 Oct 2003 11:02:27 +0000, KEvin a écrit:

la seule solution est de preciser explicitement le contenu de action=""
en retirant les parametres GET qui te genent


C'est effectivement la solution que j'utilise pour l'instant.

c'est normal ce qu'il y a dans serveur n'a d'interet qu'en lecture :


Je l'avais quelque peu soupçonné :-)

si ce travail peut etre systematique rien ne t'empeche d'appeler une
fonction qui te cree le action correct, c'est le mieux que tu pourras
avoir !


C'est exactement ce que j'ai utilisé comme solution en attendant d'avoir
votre avis.
Donc, cette solution restera définitive :-)

Merci de m'avoir éclairé/confirmé dans ma démarche.


--
Christophe PEREZ
Écrivez moi sans _faute !