Variable Get qui passe pas d'une page à l'autre..
Résolu
Marc
-
Pepito39 Messages postés 91 Date d'inscription Statut Membre Dernière intervention -
Pepito39 Messages postés 91 Date d'inscription Statut Membre Dernière intervention -
Salut,
J'ai un problème au niveau d'une variable GET qui veut pas passer d'une page à l'autre.
Je souhait faire passer la variable num de ma page client afin de pouvoir calculer le bonus fidelité du client, mais ça me met l'erreur que la variable n'est pas défini..
Pourriez vous m'aider? :)
Et si vous avez des conseils, j'veux bien les prendre parce que mes pages sont un peu laborieuses ^^'
Voici le script:
Page client.php:
<!DOCTYPE HTML>
<html>
<head><title>Affichage des clients</title>
<meta charset="UTF-8"/>
</head>
<style>
th {text-align:left;}
h1 {margin-left:32%;}
table {margin:auto; width:85%;}
h3{text-align:center;}
</style>
<body>
<?php
$connexion=mysql_connect("localhost","root","")
or die("Impossible de se connecter : " . mysql_error());
mysql_select_db('base');
if($connexion)
?>
<h1>Informations clients</h1>
<br />
<table>
<tr>
<th style="width:10%">Numéro</th>
<th style="width:10%">Nom</th>
<th style="width:10%">Prenom</th>
<th style="width:20%">Adresse</th>
<th style="width:10%">Code Postale</th>
<th style="width:10%">Ville</th>
<th style="width:20%">Adresse mail</th>
<th style="width:10%">Téléphone</th>
<th style="width:10%">Nombres de pizzas déjà achetées</th>
<?php
$requete="SELECT * FROM client";
$resultat=mysql_query($requete);
while($rows=mysql_fetch_array($resultat))
{
echo"<tr><td>".$rows['num']."</td><td>".$rows['nom']."</td><td>".$rows['prenom']."</td><td>".$rows['adresse']."</td><td>".$rows['cp']."</td><td>".$rows['ville']."</td><td>".$rows['mail']."</td><td>".$rows['tel']."</td><td>".$rows['nbpizzaachetes']."</td><td><a href='modifClient.php?num=".$rows['num']."&name=".$rows['nom']."&prenom=".$rows['prenom']."&adresse=".$rows['adresse']."&cp=".$rows['cp']."&city=".$rows['ville']."&mail=".$rows['mail']."&tel=".$rows['tel']."&nbpizz=".$rows['nbpizzaachetes']."'>Modifier</a></td><td><a href='supprClient.php?num=".$rows['num']."&name=".$rows['nom']."&prenom=".$rows['prenom']."&adresse=".$rows['adresse']."&cp=".$rows['cp']."&city=".$rows['ville']."&mail=".$rows['mail']."&tel=".$rows['tel']."&nbpizz=".$rows['nbpizzaachetes']."'>Supprimer</a></td><td><a href='fidelite.php?num=".$rows['num']."&name=".$rows['nom']."&prenom=".$rows['prenom']."&adresse=".$rows['adresse']."&cp=".$rows['cp']."&city=".$rows['ville']."&mail=".$rows['mail']."&tel=".$rows['tel']."&nbpizz=".$rows['nbpizzaachetes']."'>Fidelité</a></td></tr>";
}
?>
</th>
</tr>
</table>
<?php
echo "<h3><a href='ajoutClient.php?num=".$rows['num']."&name=".$rows['nom']."&prenom=".$rows['prenom']."&adresse=".$rows['adresse']."&cp=".$rows['cp']."&city=".$rows['ville']."&mail=".$rows['mailadher']."&tel=".$rows['teladher']."&nbpizz=".$rows['nbpizzaachetes']."'>Ajouter un client</a></h3>";
?>
<?php
mysql_close($connexion);
?>
</body>
</html>
et voici la page fidelite.php:
<!DOCTYPE HTML>
<html>
<head><title>Avantages fidélité</title></head>
<meta charset="UTF-8"/>
<body>
<?php
?>
<form name="frm2" action="fidelite.php" method="POST">
Num: <input type="text" name="num" size="5" value="<?php echo $_GET["num"]; ?>" readonly /><br />
Combien de pizzas le client vient d'acheter? <input type="text" name="nbpizza" size="3"/>
</form>
<?php
$connexion=mysql_connect("localhost", "root", "")
or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("base");
$requete="SELECT nbpizzaachetes FROM client where num=".$_POST['num'];
$resultat=mysql_query($requete);
$rows=mysql_fetch_array($resultat);
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']+$_POST['nbpizza'];
if($rows['nbpizzaachetes']>=30)
{
echo "<h2>Le client bénéficie de 3 pizzas gratuites!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-30;
if($rows['nbpizzaachetes']>=20)
{
echo "<h2>Le client bénéficie de 2 pizzas gratuites!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-20;
if($rows['nbpizzaachetes']>=10)
{
echo "<h2>Le client bénéficie d'1 pizza gratuite!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-10;
}
else
{
echo "<h2>Pas de pizza gratuite pour cette fois!</h2>";
}
}
}
$requete2="UPDATE fidelite SET nbpizzaachetes=".$rows['nbpizzaachetes'];
$resultat=mysql_query($requete2);
//mysql_close($connexion);
?>
</body>
</html>
J'ai un problème au niveau d'une variable GET qui veut pas passer d'une page à l'autre.
Je souhait faire passer la variable num de ma page client afin de pouvoir calculer le bonus fidelité du client, mais ça me met l'erreur que la variable n'est pas défini..
Pourriez vous m'aider? :)
Et si vous avez des conseils, j'veux bien les prendre parce que mes pages sont un peu laborieuses ^^'
Voici le script:
Page client.php:
<!DOCTYPE HTML>
<html>
<head><title>Affichage des clients</title>
<meta charset="UTF-8"/>
</head>
<style>
th {text-align:left;}
h1 {margin-left:32%;}
table {margin:auto; width:85%;}
h3{text-align:center;}
</style>
<body>
<?php
$connexion=mysql_connect("localhost","root","")
or die("Impossible de se connecter : " . mysql_error());
mysql_select_db('base');
if($connexion)
?>
<h1>Informations clients</h1>
<br />
<table>
<tr>
<th style="width:10%">Numéro</th>
<th style="width:10%">Nom</th>
<th style="width:10%">Prenom</th>
<th style="width:20%">Adresse</th>
<th style="width:10%">Code Postale</th>
<th style="width:10%">Ville</th>
<th style="width:20%">Adresse mail</th>
<th style="width:10%">Téléphone</th>
<th style="width:10%">Nombres de pizzas déjà achetées</th>
<?php
$requete="SELECT * FROM client";
$resultat=mysql_query($requete);
while($rows=mysql_fetch_array($resultat))
{
echo"<tr><td>".$rows['num']."</td><td>".$rows['nom']."</td><td>".$rows['prenom']."</td><td>".$rows['adresse']."</td><td>".$rows['cp']."</td><td>".$rows['ville']."</td><td>".$rows['mail']."</td><td>".$rows['tel']."</td><td>".$rows['nbpizzaachetes']."</td><td><a href='modifClient.php?num=".$rows['num']."&name=".$rows['nom']."&prenom=".$rows['prenom']."&adresse=".$rows['adresse']."&cp=".$rows['cp']."&city=".$rows['ville']."&mail=".$rows['mail']."&tel=".$rows['tel']."&nbpizz=".$rows['nbpizzaachetes']."'>Modifier</a></td><td><a href='supprClient.php?num=".$rows['num']."&name=".$rows['nom']."&prenom=".$rows['prenom']."&adresse=".$rows['adresse']."&cp=".$rows['cp']."&city=".$rows['ville']."&mail=".$rows['mail']."&tel=".$rows['tel']."&nbpizz=".$rows['nbpizzaachetes']."'>Supprimer</a></td><td><a href='fidelite.php?num=".$rows['num']."&name=".$rows['nom']."&prenom=".$rows['prenom']."&adresse=".$rows['adresse']."&cp=".$rows['cp']."&city=".$rows['ville']."&mail=".$rows['mail']."&tel=".$rows['tel']."&nbpizz=".$rows['nbpizzaachetes']."'>Fidelité</a></td></tr>";
}
?>
</th>
</tr>
</table>
<?php
echo "<h3><a href='ajoutClient.php?num=".$rows['num']."&name=".$rows['nom']."&prenom=".$rows['prenom']."&adresse=".$rows['adresse']."&cp=".$rows['cp']."&city=".$rows['ville']."&mail=".$rows['mailadher']."&tel=".$rows['teladher']."&nbpizz=".$rows['nbpizzaachetes']."'>Ajouter un client</a></h3>";
?>
<?php
mysql_close($connexion);
?>
</body>
</html>
et voici la page fidelite.php:
<!DOCTYPE HTML>
<html>
<head><title>Avantages fidélité</title></head>
<meta charset="UTF-8"/>
<body>
<?php
?>
<form name="frm2" action="fidelite.php" method="POST">
Num: <input type="text" name="num" size="5" value="<?php echo $_GET["num"]; ?>" readonly /><br />
Combien de pizzas le client vient d'acheter? <input type="text" name="nbpizza" size="3"/>
</form>
<?php
$connexion=mysql_connect("localhost", "root", "")
or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("base");
$requete="SELECT nbpizzaachetes FROM client where num=".$_POST['num'];
$resultat=mysql_query($requete);
$rows=mysql_fetch_array($resultat);
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']+$_POST['nbpizza'];
if($rows['nbpizzaachetes']>=30)
{
echo "<h2>Le client bénéficie de 3 pizzas gratuites!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-30;
if($rows['nbpizzaachetes']>=20)
{
echo "<h2>Le client bénéficie de 2 pizzas gratuites!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-20;
if($rows['nbpizzaachetes']>=10)
{
echo "<h2>Le client bénéficie d'1 pizza gratuite!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-10;
}
else
{
echo "<h2>Pas de pizza gratuite pour cette fois!</h2>";
}
}
}
$requete2="UPDATE fidelite SET nbpizzaachetes=".$rows['nbpizzaachetes'];
$resultat=mysql_query($requete2);
//mysql_close($connexion);
?>
</body>
</html>
A voir également:
- Variable Get qui passe pas d'une page à l'autre..
- Supprimer une page word - Guide
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Imprimer tableau excel sur une page - Guide
20 réponses
Sinon, si je met $_GET['num'] à la ligne 20, ça met que la variable nbpizza n'est pas défini à la ligne 23...
Salut !
Ca pique un peu les yeux ton echo avec tous tes liens ! Mais essaye de faire un echo pour chaque td, on y verra plus clair : déjà au niveau du code et de la structure html, mais surtout au niveau syntaxique (ptète un soucis de cote / doucle cote)
Essaye ensuite de mettre un print_r($_GET) dans ton fidelite.php
Ca pique un peu les yeux ton echo avec tous tes liens ! Mais essaye de faire un echo pour chaque td, on y verra plus clair : déjà au niveau du code et de la structure html, mais surtout au niveau syntaxique (ptète un soucis de cote / doucle cote)
Essaye ensuite de mettre un print_r($_GET) dans ton fidelite.php
Le print_r donne ça:
Array ( [num] => 1 [name] => Dupont [prenom] => Jeannot [adresse] => 35 grande rue [cp] => 39800 [city] => Poligny [mail] => dupontj@gmail.com [tel] => 0684712536 [nbpizz] => 5 )
Array ( [num] => 1 [name] => Dupont [prenom] => Jeannot [adresse] => 35 grande rue [cp] => 39800 [city] => Poligny [mail] => dupontj@gmail.com [tel] => 0684712536 [nbpizz] => 5 )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bah voilà donc tes infos sont bien passé ;-)
Regarde le code source de ta page fidelite.php, au formulaire pour voir si la value est bien renseignée.
Ensuite c'est normal que tu n'as pas de submit dans ton formulaire ?
Regarde le code source de ta page fidelite.php, au formulaire pour voir si la value est bien renseignée.
Ensuite c'est normal que tu n'as pas de submit dans ton formulaire ?
Une fois que j'ai envoyé les données du Formulaire avec le submit, ça me remet que la variable GET n'est pas défini --'
Je comprends pas.. ^^'
Je comprends pas.. ^^'
Bah c'est normal :
Tu envois en get vers fidelite.php où tu affiche ce get. Jusque la tout va bien.
Tu envois ensuite le formulaire de fidelite.php vers fiidelite.php MAIS cette fois ci ta variable get n'est plu défini car tu as changé de page. Ton probleme est donc ici.
Il faut mettre ton code php de fidelite.php en haut dans un if(isset($_POST)), et ton formulaire après dans un if(isset($_GET))
Tu envois en get vers fidelite.php où tu affiche ce get. Jusque la tout va bien.
Tu envois ensuite le formulaire de fidelite.php vers fiidelite.php MAIS cette fois ci ta variable get n'est plu défini car tu as changé de page. Ton probleme est donc ici.
Il faut mettre ton code php de fidelite.php en haut dans un if(isset($_POST)), et ton formulaire après dans un if(isset($_GET))
Pour que tu comprennes bien la chose, met un print_r($_GET) et un print_r($_POST) tout en haut dans fidelite.php et fais des tests :)
Tu verras par toi même la porté du post et du get.
Sinon remet ton code ici que je vérifie :)
Tu verras par toi même la porté du post et du get.
Sinon remet ton code ici que je vérifie :)
<!DOCTYPE HTML>
<html>
<head><title>Avantages fidélité</title></head>
<meta charset="UTF-8"/>
<body>
Dès que j'envoie les infos du formulaire, la variable get n'existe plus... le print_r donne Array()
<?php
print_r($_GET);
print_r($_POST);
if(isset($_POST['nbpizz']))
{
$connexion=mysql_connect("localhost", "root", "")
or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("base");
$requete="SELECT nbpizzaachetes FROM client where num=".$_POST['num'];
$resultat=mysql_query($requete);
$rows=mysql_fetch_array($resultat);
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']+$_POST['nbpizz'];
if($rows['nbpizzaachetes']>=30)
{
echo "<h2>Le client bénéficie de 3 pizzas gratuites!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-30;
if($rows['nbpizzaachetes']>=20)
{
echo "<h2>Le client bénéficie de 2 pizzas gratuites!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-20;
if($rows['nbpizzaachetes']>=10)
{
echo "<h2>Le client bénéficie d'1 pizza gratuite!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-10;
}
else
{
echo "<h2>Pas de pizza gratuite pour cette fois!</h2>";
}
}
}
$requete2="UPDATE fidelite SET nbpizzaachetes=".$rows['nbpizzaachetes'];
$resultat=mysql_query($requete2);
}
?>
<?php
if (isset($_GET))
{
?>
<form name="frm2" action="fidelite.php" method="POST">
Num: <input type="text" name="num" size="5" value="<?php echo $_GET["num"]; ?>" readonly /><br />
Combien de pizzas le client vient d'acheter? <input type="text" name="nbpizz" size="3"/>
<input type="submit" name="bt_ok" value="Ok!"/>
<?php
}
?>
</form>
</body>
</html>
<html>
<head><title>Avantages fidélité</title></head>
<meta charset="UTF-8"/>
<body>
Dès que j'envoie les infos du formulaire, la variable get n'existe plus... le print_r donne Array()
<?php
print_r($_GET);
print_r($_POST);
if(isset($_POST['nbpizz']))
{
$connexion=mysql_connect("localhost", "root", "")
or die("Impossible de se connecter : " . mysql_error());
mysql_select_db("base");
$requete="SELECT nbpizzaachetes FROM client where num=".$_POST['num'];
$resultat=mysql_query($requete);
$rows=mysql_fetch_array($resultat);
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']+$_POST['nbpizz'];
if($rows['nbpizzaachetes']>=30)
{
echo "<h2>Le client bénéficie de 3 pizzas gratuites!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-30;
if($rows['nbpizzaachetes']>=20)
{
echo "<h2>Le client bénéficie de 2 pizzas gratuites!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-20;
if($rows['nbpizzaachetes']>=10)
{
echo "<h2>Le client bénéficie d'1 pizza gratuite!</h2>";
$rows['nbpizzaachetes']=$rows['nbpizzaachetes']-10;
}
else
{
echo "<h2>Pas de pizza gratuite pour cette fois!</h2>";
}
}
}
$requete2="UPDATE fidelite SET nbpizzaachetes=".$rows['nbpizzaachetes'];
$resultat=mysql_query($requete2);
}
?>
<?php
if (isset($_GET))
{
?>
<form name="frm2" action="fidelite.php" method="POST">
Num: <input type="text" name="num" size="5" value="<?php echo $_GET["num"]; ?>" readonly /><br />
Combien de pizzas le client vient d'acheter? <input type="text" name="nbpizz" size="3"/>
<input type="submit" name="bt_ok" value="Ok!"/>
<?php
}
?>
</form>
</body>
</html>
C'est normal, les variables get et post sont valables UNIQUEMENT sur la page cible.
Donc ta variable get ne serra dispo que sur fidelite.php lors de son appel par le lien.
Quand tu valides le formulaire, la page change (même si c'est toujours fidelite.php, c'est un autre appel donc plus la même page) donc get n'existe plu. Mais comme tu as validé ton formulaire, mtn tu as ton post qui existe.
Attention : Tu fermes ton if avant le form
Donc ta variable get ne serra dispo que sur fidelite.php lors de son appel par le lien.
Quand tu valides le formulaire, la page change (même si c'est toujours fidelite.php, c'est un autre appel donc plus la même page) donc get n'existe plu. Mais comme tu as validé ton formulaire, mtn tu as ton post qui existe.
Attention : Tu fermes ton if avant le form
Ah d'accord ^^
Par contre ma requête n'a pas l'air de s'effectuée..
Et j'suis pas trop sûr de mes calculs, sont-ils possibles? ^^'
Par contre ma requête n'a pas l'air de s'effectuée..
Et j'suis pas trop sûr de mes calculs, sont-ils possibles? ^^'
Tu peux faire un $resultat=mysql_query($requete) or die("Probleme lors de l'execution dela requete");
pour vérifier ca :)
pour vérifier ca :)
Oui c'est c'que je vais faire ^^
Dis moi, tu sais comment convertir en PHP en int, ou en string comme parseInt() en Javascript par exemple?? :)
Dis moi, tu sais comment convertir en PHP en int, ou en string comme parseInt() en Javascript par exemple?? :)