valeur d'url ecrasée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : valeur d'url ecrasée

par @rthur » 26 juil. 2006, 09:46

Bonjour,

Si ta variable $url_param contient déjà QUERY_STRING (=ce qui se trouve après le point d'interrogation), alors je pense que dans l'url de traitemetn de ton formulaire, il vaudrait mieux mettre un "&pro=filtre" plutôt qu'un "?pro=filtre" :
$url_param="http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}";
[...]
echo '... action="'.url_param.'?pro=filtre" ... ';
Toutefois je ne suis pas sûr que ça résolve ton problème...

Une solution serait de faire des champs de formulaire caché ( <input type="hidden" name="pro" value="filtre" /> ) et d'y attribuer les valeurs déjà passées dans l'url.
Ainsi quand ton formulaire sera envoyé en GET, les variables seront réenvoyées en même temps.


[HS]
Tu n'aurais pas oublié de fermer tes balises <OPTION>, par hasard?
[/HS]

valeur d'url ecrasée

par sam01 » 26 juil. 2006, 08:52

Bonjour,
je vais essayer d'être le plus explicite possible sur un cas spécial :

j'ai le code suivant suivi d'un formualire :

// je récupère l'url en cours

$url_param="http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}";


// et voici le formulaire 

					echo '<form method="get" action="'.url_param.'?pro=filtre" class="form">';
					?>
							
													<div class="filtre">


														<SELECT name="mark" onchange="this.form.submit()" class="font" value="<?php echo $mark; ?>">
															<OPTION>Toutes les marques
															<OPTION>canon									
															<OPTION>nikon
															<OPTION>fuji
															<OPTION>sigma
														</SELECT>
													</div>					
							</form>

ce que je veux faire au fait, c'est que lors de l'exécution de mon formulaire, il reprenne dans le hamps action la fameuse url en cours. qui est : http://www.test.com?val1=01&val2=02
lLe problème c'est qu'il me l'écrase et que je me retrouve avec une url que je ne veux pas : http://www.test.com?mark=canon
Comment forcer mon formulaire à prendre l'url en cours.

En effet ce que je voudrais c'est que lors de l'éxécution de mon formulaire, je me retrouve avec l'url :

http://www.test.com?val1=01&val2=02&mark=canon

merci d'avance pour votre aide.

le formulaire s'exécute sur la même page.