[Résolu] Passer une variable à une redirection ?

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 : [Résolu] Passer une variable à une redirection ?

par Truc » 26 déc. 2005, 16:23

de meme bonne année (en avance :wink: )

n'oublis pas le marquer le sujet par le tag [Résolu]

par Kimble » 26 déc. 2005, 16:14

J'ai trouvé...
En fait le probléme se situait dans le formulaire et il etait impossible de récuperer la variable com_choisi sans d'abord la déclarer dans le formulaire qui appelle cookie.php...
<form action="cookie_commercial.php"  method="POST">
		  <strong>Afficher</strong> 
		  <input name="com_choisi" type="hidden" value="<?php echo $com_choisi?>">
		  <input name="rowsPerPage" type="radio" value="7" checked="checked"> <strong>7</strong>
          <input name="rowsPerPage" type="radio" value="20"> <strong>20</strong>
          <input name="rowsPerPage" type="radio"  value="50"> <strong>50</strong>
          <input name="rowsPerPage" type="radio"  value="100"> <strong>100&nbsp;</strong>
		  <input type="submit" class='bouton' value="Ventes" />
</form>
cookie.php
<?php 
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
$com_choisi=$_POST["com_choisi"];
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial&choix=commercial&com_choisi=<?php  echo $com_choisi; ?>">
</head>
<body>
</body>
</html>
Je vous remercie pour le temps et la patience que vous m'avez accordé et vous souhaite à tous une trés belle année 2006 avec plein de codes dans les yeux...

par Truc » 24 déc. 2005, 13:19

je remarques que tu n'as toujours pas changé la variable envoyée dans l'url:
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial_ventes&choix=commercial&com_choisi=<?php $commer['com_choisi']?>;">
$commer['com_choisi'] n'est absolument pas reconnu dans cette page,du moins il me semble j'ai du mal a visualiser la page qui amène sur la créeation du cookie.Ou reste la solution du echo qui manque:
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial_ventes&choix=commercial&com_choisi=<?php echo $commer['com_choisi'];?>">
Sinon tu as:
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : ''; 
et donc le lien devrait plus tot etre:
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial_ventes&choix=commercial&com_choisi=<?php echo $commer;?>">

par Kimble » 24 déc. 2005, 12:02

Me revoilà, j'ai refais quelques trucs...
Comme on dit dans la police "reprenons depuis le début"...
:D

index.php simplifié :
<?php include("connexion.php");
include("fonctions_ventes.php");
$liste=(isset($_GET['liste'])) ? $_GET['liste'] : "";
//commercial à traiter
$com=(isset($_POST['com'])) ? $_POST['com'] : "";

<li><?php afficher_url("index.php?liste=ventes","Voir toutes les ventes"); ?></li>
<?php
switch($liste) 
	{

case'commercial_ventes':
include("commercial_ventes.php");			
	break;
                }?>
cookie_commercial.php
<?php 
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 ); 
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : ''; 
?> 
<html> 
<head> 
<title></title> 
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial_ventes&choix=commercial&com_choisi=<?php $commer['com_choisi']?>;"> 
</head> 
<body> 
</body> 
</html> 

commercial_ventes.php simplifié
<?php 
$choix=(isset($_GET['choix'])) ? $_GET['choix'] : "";
$com_choisi=(isset($_GET['com_choisi'])) ? $_GET['com_choisi'] : "";

//les donnees pour le cookie et la barre de navigation

$query = mysql_query( "SELECT idcommercial FROM vente, commercial WHERE id_commercial LIKE '$com_choisi'" ); //query the table
$numrows = mysql_num_rows( $query ); //how many rows will be fetched?
$nb_results_p_page = isset( $_COOKIE[ 'rowsPerPage' ] ) ? $_COOKIE[ 'rowsPerPage' ] : 7; //Par defaut affichage de 7 ventes
if( $numrows > $nb_results_p_page ) //do we need to break output into pages?
{
$page = isset( $_GET[ 'page' ] ) ? $_GET[ 'page' ] : 0; //load specified page number (set to 1 if not specified)
if( $numrows % $nb_results_p_page )
$maxpage = floor( $numrows / $nb_results_p_page ) +1;
else
$maxpage = $numrows / $nb_results_p_page; //get maximum page number
if( $page > $maxpage ) $page = 1; //if out of range, set to deafult (page 1)
$limit = " LIMIT " . ( ( $page - 1 ) * $nb_results_p_page ) . "," . $nb_results_p_page; //make LIMIT offset,rowcount string
$query = mysql_query( "SELECT * FROM vente ORDER BY client $limit" ); //and set query to include the LIMIT string
} 
		 
 //$nb_results_p_page = 7; // nombre de résultats par page que j'ai mis en silence
$nb_avant = 2; // nombre de page avant la page courante 
$nb_apres = 2; // nombre de page après la page courante 
$premiere = 1; // aficher le lien "première page" (1 ou 0) 
$derniere = 1; // afficher le lien "dernière page" (1 ou 0) 
$courant = empty($_GET['page']) ? 1 : $_GET['page']; // page 
$start = ($courant - 1) * $nb_results_p_page; // start (requete mysql) 
// comptage du nombre de lignes de la table
$query = mysql_query("SELECT COUNT(idcommercial) FROM vente WHERE idcommercial LIKE '$com_choisi'"); 
if(!$query) 
{ 
   // redirection erreur 
header("location: erreur.php"); 
exit; 
} 
$ret = mysql_fetch_array($query); 
// nombre de lignes 
$nb_results = $ret[0];
$result = mysql_query ("select * from vente where idcommercial LIKE '$com_choisi' ORDER BY client asc LIMIT $start, $nb_results_p_page");?>

<?php //le formulaire qui appelle le cookie ?>
<form action="cookie_commercial.php"  method="POST">
		  <strong>Afficher</strong> 
<input name="rowsPerPage" type="radio" value="7" checked="checked"> <strong>7</strong>
<input name="rowsPerPage" type="radio" value="20"> <strong>20</strong>
<input name="rowsPerPage" type="radio"  value="50"> <strong>50</strong>
<input name="rowsPerPage" type="radio"  value="100"> <strong>100&nbsp;</strong>
<input type="submit" class='bouton' value="Ventes" />
</form>	

<?php //l'entete du tableau?>
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td align="center" bgcolor="#FFCC66"><span class="Style3">Co.</span></td>

<?php //Le while
while ($vente=mysql_fetch_array($result))     	 
{ 
//affichage des donnees
<?php 		
$com=$vente['idcommercial'];
$req_commer=mysql_query("select * from commercial where id_commercial='$com'");
$commer=mysql_fetch_array($req_commer);
$lien="index.php?liste=commercial_ventes&choix=commercial&com_choisi=".$commer['id_commercial'];    
afficher_url($lien,"<img src=\"images/com.gif\" width=\"21\" height=\"21\" border=\"0\"alt=\" Voir les ventes de ".$commer['commercial']." \">");?>  	
		</span></td>
La suite c'est la fin de la barre de navigation.
J'espére que je n'ai rien oublié.

par Truc » 23 déc. 2005, 19:48

La variable ne monte pas !
J'ai dû louper une marche quelque part...
d'où la question de
Comment transite entre les pages l'id du commercial ?
si tu pouvais détailler point par point le passage de la variable de page a page, où est initialisé cette variable et ou doit elle etre utilisée.

1. $commer['id_commercial'] est bien renseigné ?
et donc cette question reste ouverte.

par Kimble » 23 déc. 2005, 19:45

Je suis tout à fait d'accord avec toi sur la syntaxe mais ça ne le fait pas !
Voilà ce que j'ai dans la barre d'adresse :

Code : Tout sélectionner

index.php?liste=commercial&choix=commercial&com_choisi=[b]ICI C'EST VIDE[/b]
La variable ne monte pas !
J'ai dû louper une marche quelque part...

par Truc » 23 déc. 2005, 19:28

tu as ce lien
$lien="index.php?liste=ventes&choix=commercial&com_choisi=".$commer['id_commercial'];
où la variable "com_choisi" est crée et peut donc être récupérée par GET

1. $commer['id_commercial'] est bien renseigné ?

2.lors du clic sur ce lien on se retrouve sur ce script:
<?php
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : '';
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial&choix=commercial&com_choisi=<?php $commer['id_commercial']?>;">
</head>
<body>
</body>
</html>
oui non ?

par Kimble » 23 déc. 2005, 19:02

bon j'avoue que je seche...cette pt1 de variable n'arrive pas ! une piste ?

par Truc » 23 déc. 2005, 02:43

et $_GET['com_choisi'] tu la récupère ? si oui pourquoi prendre $commer['id_commercial'] pour "com_choisi" dans l'url au lieu de $commer ?

par Kimble » 23 déc. 2005, 02:28

J'oubliais le principal :D :
<?php 
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : '';
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial&choix=commercial&com_choisi=<?php $commer['id_commercial']?>;">
</head>
<body>
</body>
</html>
et j'obtiens :
index.php?liste=commercial&choix=commercial&com_choisi=
dans la barre d'adresse la variable ne passe pas.

Si dans la barre d'adresse je rentre à la main :
index.php?liste=commercial&choix=commercial&com_choisi=276
je n'ai pas d'erreur et le script se déroule normalement. :?:

par Kimble » 23 déc. 2005, 02:16

J'oubliais le principal :D :
<?php 
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : '';
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial&choix=commercial&com_choisi=<?php $commer['id_commercial']?>;">
</head>
<body>
</body>
</html>

par Invité » 22 déc. 2005, 20:19

Tu le récupères alors avec $_GET['com_choisi']
salut,
le Get je l'ai mis dans le cookie mais ça ne marche pas :!: :?:
j'avoue que là je suis perdu...

par Invité » 22 déc. 2005, 13:25

Tu le récupères alors avec $_GET['com_choisi']

par Kimble » 22 déc. 2005, 09:37

Par ce lien
$lien="index.php?liste=ventes&choix=commercial&com_choisi=".$commer['id_commercial'];


et affichage dans la barre d'adresse:
index.php?liste=ventes&choix=commercial&com_choisi=275
Le formulaire sert uniquement à afficher le nombre de ventes par groupe de 7, 30 etc...

par nicolas » 22 déc. 2005, 01:48

Comment passe l'id de page en page ? Par l'url ? Par un formulaire ?
Tes explications ne sont pas très claires.