$_GET url illisible

Résolu/Fermé
regitraz Messages postés 89 Date d'inscription vendredi 17 octobre 2014 Statut Membre Dernière intervention 30 mai 2021 - Modifié le 26 avril 2018 à 16:37
regitraz Messages postés 89 Date d'inscription vendredi 17 octobre 2014 Statut Membre Dernière intervention 30 mai 2021 - 26 avril 2018 à 19:29
bonjour, je suis étudiant en informatique (1ère année)
voici mon code :

for($i = 1; $i <= $nbPlats; $i = $i + 1){
 if ($nombre[$i] != 0){
  echo "<a href='index.php?test = $i &nbPlats=<?php echo $nbPlats; ?>'>".$nombre[$i]."x  ".$liste[$i]."</a><br />";
}


Ce code me sert a afficher les pizza (nombre et noms) que les client du site veulent commander et a les rendres clickables (pour, en théorie pouvoir enlever une pizza du tableau $nombre, et si on tombe a 0, supprimer la pizza de la liste affichée).
Seulement quand je clique sur une pizza (pour l'enlever de la liste, rajouter des pizza marche tres bien) ca me supprime tout le contenu des tableau et m'affiche dans l'url : test%20=%201%20&nbPlats=<?php%20echo%202;%20?>
Est-ce possible d'envoyer des variables dans l'url depuis un echo ?
Merci d'avance de vos réponses

Au cas ou, voici le code de toute la page :
<?php
		require("GestionTableaux.php");
			
			
			if (!isset($_GET['plat']) and !isset($_GET['test'])){
				//initialisation
				$nbPlats=0;
				$total=0;
				$plat=null;
			}
			else{
				if (isset($_GET['plat'])){
					$nbPlats = $_GET['nbPlats'];

					//Verification si le plat est dans la liste
					$j=1;
					$controle=false;
					while($controle != true and $j <= $nbPlats and $nbPlats != 0){
						if ($liste[$j] == $_GET['plat']){
							$controle = true;
						}
						else{
							$j = $j +1;
						}
					}
					
					//Si il l'est
					if($controle == true){
						$nombre[$j] = $nombre[$j] + 1;
					}
					else{
						//Sinon on l'ajoute
						$nbPlats = $nbPlats + 1;
						$nombre[$nbPlats] = 1;
						$liste[$nbPlats] = $_GET['plat'];
						$prix[$nbPlats] = $_GET['prix'];
					}
					
					//Calcul total
					$total=0;
					$t=1;
					while($t < $nbPlats+1 and $nbPlats != 0){
						$total = $total + ($prix[$t]*$nombre[$t]);
						$t = $t +1;
					}
					
					echo $total;
				}
				if (isset($_GET['test'])){
					//on enleve une pizza
					$nbPlats = $nbPlats - 1;
					$z = $_GET['i'];
					$nombre[$z] = $nombre[$z]-1;
					
					//Calcul total
					$total=0;
					$t=1;
					while($t < $nbPlats+1 and $nbPlats != 0){
						$total = $total + ($prix[$t]*$nombre[$t]);
						$t = $t +1;
					}
					echo $total;
				}
			}
		?>
		
		
		<section>
		
			<header>
				<div align="center">
					<h2 class="h2"><u>Bienvenue Chez Tony</u></h2>
				</div>
			</header>
			
			<article>
				<div class="img">
					<a href="index.php?plat=Chorizo 7€&prix=7&nbPlats=<?php echo $nbPlats; ?>&total=<?php echo $total; ?>"><img src="Images/chorizo.jpg" height="10%" width="10%" /></a>
					
					<span class="info">
						Chorizzo                     7€
					</span>
					
					<br><hr>
					<a href="index.php?plat=Jambon 6.50€&prix=6.50&nbPlats=<?php echo $nbPlats; ?>&total=<?php echo $total; ?>"><img src="Images/jambon.jpg" height="10%" width="10%" /></a>
					
					<span class="info">
						Jambon                        6.50€
					</span>
					
					<br><hr>
					<a href="index.php?plat=Regina 8€&prix=8&nbPlats=<?php echo $nbPlats; ?>&total=<?php echo $total; ?>"><img src="Images/regina.jpg" height="10%" width="10%" /></a>
					
					<span class="info">
						Regina                          8€
					</span>
					
					<br><hr>
					<a href="index.php?plat=Fruit de mer 10€&prix=10&nbPlats=<?php echo $nbPlats; ?>&total=<?php echo $total; ?>"><img src="Images/fruit de mer.jpg" height="10%" width="10%" /></a>
				
					<span class="info">
						Fruit de mer                 10€
					</span>
					
					<br><hr>
					<a href="index.php?plat=5 Fromages 7.50€&prix=7.50&nbPlats=<?php echo $nbPlats; ?>&total=<?php echo $total; ?>"><img src="Images/5 fromages.jpg" height="10%" width="10%" /></a>
					
					<span class="info">
						5 Fromages                  7.50€
					</span>
					
					<br><hr>
					<a href="index.php?plat=Mielina 8.50€&prix=8.50&nbPlats=<?php echo $nbPlats; ?>&total=<?php echo $total; ?>"><img src="Images/mielina.jpg" height="10%" width="10%" /></a>
					
					<span class="info">
						Mielina                         8.50€
					</span>
					
					<br><hr>
					<a href="index.php?plat=Primavera 8€&prix=8&nbPlats=<?php echo $nbPlats; ?>&total=<?php echo $total; ?>"><img src="Images/primavera.jpg" height="10%" width="10%" /></a>
					
					<span class="info">
						Primavera                     8€
					</span>
					
				</div>
				
				<aside class="aside">
					<?php 
						//Affichage de la commande
						echo "Commande : <hr/>";
						if ($nbPlats > 0) {
							for($i = 1; $i <= $nbPlats; $i = $i + 1){
								if ($nombre[$i] != 0){
									echo "<a href='index.php?i = echo $i &nbPlats=<?php echo $nbPlats; ?>'>".$nombre[$i]."x  ".$liste[$i]."</a><br />";
								}
							}
							echo "<hr/>Total : ".$total." €<br/><br/>";
						}
						else{
							echo('Choisissez votre commande');
						}
					require("FinGestionTableaux.php");
					?>
				<a href="index.php"><input type="button" value="Reinitialiser la commande"></a>

2 réponses

yg_be Messages postés 23487 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 mars 2025 Ambassadeur 1 570
26 avril 2018 à 19:17
que voudrais-tu comme url au lieu de
test%20=%201%20&nbPlats=<?php%20echo%202;%20?>
?
essaie peut-être ainsi:
 echo '<a href="index.php?test=' . $i . '&nbPlats=' . $nbPlats . '">' . $nombre[$i] ."x  " . $liste[$i] . "</a><br />";
1
regitraz Messages postés 89 Date d'inscription vendredi 17 octobre 2014 Statut Membre Dernière intervention 30 mai 2021
26 avril 2018 à 19:29
test=1&nbPlats=2
C'est l'url que j'ai obtenu, merci.
Apres 30sec de modification j'ai réussit a faire ce que je voulait.
0
yg_be Messages postés 23487 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 mars 2025 Ambassadeur 1 570
26 avril 2018 à 17:02
bonjour, qu'essaies-tu de faire en réalité?
j'ai la bizarre impression que tu essaies de mémoriser la liste des pizzas dans des urls.
est-ce cela que tu essaies de faire?
quel est l'énoncé de l'exercice?
0
regitraz Messages postés 89 Date d'inscription vendredi 17 octobre 2014 Statut Membre Dernière intervention 30 mai 2021
26 avril 2018 à 17:15
il n'y a pas vraiment d'enoncé, quand on clicke sur une pizza ca remplit 3 tableau : $prix(= prix d'une pizza) , $nombre (= nombre de pizza du meme genre) et $liste(= nom des pizza, ou genre) qui sont créer dans une autre page, d'ou le require au debut dans le code complet.

Ensuite j'affiche le contenu des tableau $nombre et $liste (= résumer de la commande). ce qui me pose probleme c'est enlever 1 dans $nombre quand on clique sur le liens d'une des pizza afficher (pour enlever une pizza de la commande).
le lien sur lequel on doit cliquer est dans un echo, comme je l'ai montré ci-dessus
Cela t'a-il aider a comprendre l'exercice ?
0
yg_be Messages postés 23487 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 mars 2025 1 570 > regitraz Messages postés 89 Date d'inscription vendredi 17 octobre 2014 Statut Membre Dernière intervention 30 mai 2021
26 avril 2018 à 17:20
cela commencera peut-être à avoir du sens quand tu auras partagé le contenu de GestionTableaux.php.
d'après toi, où les tableaux sont-ils mémorisés?
0
regitraz Messages postés 89 Date d'inscription vendredi 17 octobre 2014 Statut Membre Dernière intervention 30 mai 2021
26 avril 2018 à 17:28
// Code php permettant de garder la liste des plats et des prix dans un tableau $liste.
session_start();
if (isset($_SESSION['liste'])) {
	if (empty($_GET)) {
		unset($_SESSION['nombre']);
		$nombre=array();
		unset($_SESSION['liste']);
		$liste=array();
		unset($_SESSION['prix']);
		$prix=array();
	}
	else {
		$nombre=$_SESSION['nombre'];
		$liste=$_SESSION['liste'];
		$prix=$_SESSION['prix'];
	}
}
else {
	$nombre=array();
	$liste=array();
	$prix=array();
}


GestionTableau.php a été fournit par mon prof, je ne suis pas censé le modifier. De plus je ne sais pas non plus comment fonctionne la session.
Je pense que les tableau sont mémorisé dans GestionTableau.php.
0
regitraz Messages postés 89 Date d'inscription vendredi 17 octobre 2014 Statut Membre Dernière intervention 30 mai 2021
26 avril 2018 à 17:34
Je cherche a faire passer une variable $test par l'url quand on clique sur une pizza que l'on souhaite supprimer de la commande, pour declencher la partie de mon programme qui est censé enlever 1 dans le tableau $nombre a l'indice $i que j'ai mit dans $test (en theorie), sauf que ca vide la commande et me met un truc un peu bizzare dans l'url
0