Une variable URL dans un header sa marche?

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 : Une variable URL dans un header sa marche?

par Maxou » 05 mai 2006, 18:16

Je pense aussi qu'il y a un probleme au niveau de ta redirection :

ne laisse pas ta variable entre '', utilise plutot cette syntaxe :
header('Location:'.$calcul);
Merci sa marche il s'agissait uniquement d'une erreur de sintaxe.

Merci a tout le monde de d'avoir chercher pour me dépanner.

par rainiou » 05 mai 2006, 14:47

oui, il me semble que le php fait la difference lui meme si l'on compare un entier avec une chaine.
en principe avec

Code : Tout sélectionner

switch($_POST['ton_code']){ case '1': header("Location: http://www.tonsite.com/ta_page.php"); exit; case '2': header("Location: http://www.tonsite.com/ta_page2.php"); exit; default: echo "toto"; exit; }
au cas ou ca ne va pas je vois pas... php.net :p

par guilt92 » 05 mai 2006, 13:46

Je pense aussi qu'il y a un probleme au niveau de ta redirection :

ne laisse pas ta variable entre '', utilise plutot cette syntaxe :
header('Location:'.$calcul);

par Vaedan » 05 mai 2006, 13:32

Allons allons ...

Quand on récupère une variable GET ou POST, cette dernière est sous la forme d'une chaine de caractère. Ainsi il serait judicieux de faire :
$choix = (int)$_POST['choix'];
Cela ne suffit pas ! Remplace donc les == par des === et dis nous ce qu'il se passe.

Si le problème persiste, n'essaierais tu pas de passer tes variables en GET plutot qu'en POST ?! As tu bien vérifié le code de ton formulaire ?

par Maxou » 05 mai 2006, 13:27

Merci alors j'ai mis les 2points a la place du égale mais sa ne marche toujours pas.

Il me ne me place pas la valeur de la variable.

Voici ce que j'ai maintenant
<?php 
$choix = $_POST['choix'];

if ($choix==1) $calcul = '1_pan.php';
if ($choix==2) $calcul = '2_pans.php';
if ($choix==3) $calcul = '2_pans_dif.php';

header ('location: $calcul');

?>
Voilou merci :oops:

par Vaedan » 05 mai 2006, 13:07

On écrit pas
header( 'location = url' ); 
mais
header( 'location: url' );
;)

Une variable URL dans un header sa marche?

par Maxou » 05 mai 2006, 12:30

Bonjour, :D

Une question toute simple désolé je n'ai pas fait de recherche car étant en déplacement je me connecte par le biais d'un hub public et je paie la connexion au temps.

De ce fait je repasserai voir plutard si vous avez une solution à ma question ou des conseils à me prodiguer.

Suite à une première page ou l'internaute fait un choix je récupère une valeur par
le biais d'un POST;

ensuite sur une page de traitement je voudrais renvoyer l'internaute sur la page correspondant à sont choix directement
et de facon transparente.

Voici ma première page:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>novi-case</title>
</head>

<body>
<table width="100%"  border="0">
  <tr>
    <td width="200" rowspan="2" align="center" valign="top"><?php include "gauche.php" ?></td>
    <td valign="top"><?php include "haut_nc.php" ?></td>
    <td width="59" rowspan="2" align="right" valign="top"><?php include "droite.php" ?></td>
  </tr>
  <tr>
    <td valign="top" align="center">
	<table border="0" width="600" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td height="75">
		<p align="center"><font face="Berlin Sans FB" size="5" color="#FF0000">
		Calcul des besoins pour votre toiture</font></td>
	</tr>
	<tr>
		<td height="50">
		<form method="POST" action="renvoie_choix.php">
			<table border="1" width="100%" id="table2" bordercolordark="#BDD614" bordercolorlight="#CCFF99">
				<tr>
					<td width="326">
					<p align="right"><font face="Berlin Sans FB" size="4">1 pan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
					</font></td>
				  <td>&nbsp;
			        <input type="radio" value="1" checked name="choix"></td>
				</tr>
				<tr>
					<td height="24" width="326">
					<p align="right"><font face="Berlin Sans FB" size="4">2 pans 
					identiques&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
					</font></td>
				  <td height="24">&nbsp;
				    <input type="radio" name="choix" value="2"></td>
				</tr>
				<tr>
					<td width="326">
					<p align="right"><font face="Berlin Sans FB" size="4">2 pans 
					de tailles différentes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
				  </font></td>
				  <td>&nbsp;				    <input type="radio" name="choix" value="3"> 
					</td>
				</tr>
			</table>
			<p align="center"><input type="submit" value="Envoyer" name="B1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<input type="reset" value="Rétablir" name="B2"></p>
		</form>
	
	</td>
  </tr>
</table>
</body>
</html>
Et voici la seconde :


<?php 
$choix = $_POST['choix'];

if ($choix==1) $calcul = '1_pan.php';
if ($choix==2) $calcul = '2_pans.php';
if ($choix==3) $calcul = '2_pans_dif.php';

header ('location = $calcul');

?>


mon problème est que je n'arrive pas à integrer le mon URL dans la fonction header.


Existe t'il une solution plus simple pour éviter une page de traitement ou alors de quel manière faire passer
ma variable dans le header.


Merci de votre aide
Maxou