méthode $_GET[avec un tableau]

Eléphanteau du PHP | 16 Messages

22 mai 2012, 11:53

Bonjour,

mon problème va peut être paraitre simple, mais je bloque dessus...

Voilà, j'ai des données stockées dans un tableau nommé $field2[]

je souhaite récupérer $field2[0] et l'afficher dans une phrase.

Seulement je dois la récupérer avec la fonction $_GET car je ne déclare pas ce tableau dans la même page...
Je n'arrive pas à trouver la bonne formule pour récupérer cette valeur avec $_GET
Quelqu'un peut m'aider?? merci d'avance. =D>

ViPHP
ViPHP | 2577 Messages

22 mai 2012, 11:57

Un truc du genre $_GET['field'][$i] ?

Ajoute $var_dump($_GET) en début de script pour en voir le contenu

ViPHP
AB
ViPHP | 5818 Messages

22 mai 2012, 17:27

Fais voir comment tu passes ta variable $_GET (par un lien ou par un header ?)

Eléphanteau du PHP | 16 Messages

29 mai 2012, 08:20

dsl de mettre autant de temps à répondre, je n'avais plus d'ordinateur.

voici le code de ma page
<?php
include("mysql.php");

function genRandomId(){
	//retourne ch aléatoire  à utiliser pour code session

 	$randid="";
 	$taille =128;
 	$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
 	srand(time());
 	for ($i=0;$i<$taille;$i++){
  		$randid.=substr($lettres,(rand()%(strlen($lettres))),1);
 	}
 	return $randid;
}

$id_connect = mysql_connect("serveur","id",pass") or die ("probleme de connexion");
mysql_select_db("cnombase de donnée") or die ("probleme de BDD");
mysql_query("SET NAMES 'utf8'");

$login= $_POST['login'];
$motdepasse= $_POST['motdepasse'];


$sql="select id_user, poste_user, classe_user, nom_user, prenom_user from utilisateur where login='$login' and motdepasse='$motdepasse'";
$req = mysql_query($sql) or die ("Erreur SQL !<br>$sql<br>mysql_error()");
$nb_ligne = mysql_num_rows($req);

if ($field = mysql_fetch_row($req))
{
if($nb_ligne == 1)
{
	
	$num_session=genRandomId();
	$field =
	$sql2="insert into session VALUES ('', '$num_session', '$field[0]')";
	//$req2 = mysql_query($sql2) or die ("Erreur SQL !<br>$sql2<br>mysql_error()");
	echo $field[1];
	$poste_user=$field[1];
	$classe_user=$field[2];
	$nom_user=$field[3];
	$prenom_user=$field[4];
	$nb2=nombreDeLignes2($sql2);
	
	
	

		 
		  if($poste_user == "admin")
		  {
		  		header("Location:espace_admin.php?num_session=$num_session&titre=administrateur&poste_user=$poste_user&nom_user=$nom_user&prenom_user=$prenom_user");
		  }
		  else if($poste_user == "professeur principal")
		  { 
		   		header("Location:pp/espace_pp.php?num_session=$num_session&titre=prof principale&classe_user=$classe_user&poste_user=$poste_user&nom_user=$nom_user&prenom_user=$prenom_user&droit=disabled");		
		  }			
}
}
else
{
	header("Location:index.php?erreur=Erreur identification");
}	

?>

Eléphanteau du PHP | 16 Messages

29 mai 2012, 08:21

le soucis est qu'il récupère bien certaines données dans la base de données. Mais dés qu'il s'agit d"un tableau, rien n'est récupéré...

J'ai pourtant essayé toute les solutions que vous m'avez donné... Mais aucun n'a fonctionné... Je ne sais plus quoi faire....


Merci d'avance :priere:

Mammouth du PHP | 1967 Messages

29 mai 2012, 09:46

Je ne vois nulle part une tentative d'envoi de ton tableau par la methode GET,

Si tu dois passer une variable d'une page à l'autre, et que cette variable est un tableau tu as 2 possibilités (peut être plus mais ce sont ces 2 là qui me semble évidente)
1 tu l'envoi par la session, $°SESSION accepte les tableaux.
2 tu peux serialiser ton tableau avant de l'envoyer en GET et le déserialiser après récupération.
les fonction serialise() et unserialize() sont là pour cela.

Mais dans le cas d'un grand tableau, je ne te conseille pas de le serialiser, ton url serait trop longue
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 16 Messages

29 mai 2012, 10:15

Bonjour, je ne comprends pas, cette page n'envoie pas de tableau, c'est celle qui doit justement recevoir les valeurs du tableau.

Je vous fournis le code de la page précédente pour être peut-être plus précis.
<HEAD>
<SCRIPT LANGUAGE="JavaScript">

function popup(page) {
	// ouvre une fenetre sans barre d'etat, ni d'ascenceur
	window.open(page,'popup','width=410,height=280,toolbar=false,scrollbars=false');	
}
</SCRIPT>
<title>Structure & équipes pédagogiques</title></HEAD>
<style type="text/css">

<?php /** Création de différents styles propres à la page PHP. */?>
<!--
.Style1 {
	color: #000000;
	font-weight: bold;
	font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Style2 {
	color: #FFCC00;
	font-weight: bold;
	font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Style4 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-weight: bold;
	color: #0099FF;
}
a:link {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: medium;
	font-style: oblique;
	color: #0099FF;
}
a:visited {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: medium;
	font-style: oblique;
	color: #0099FF;
}
-->
</style>
<h1 align="center" class="Style4">STRUCTURE ET EQUIPES PEDAGOGIQUES </h1><BR><BR>

<table width='700' border='0' align='center'>
  <tr valign="top">
    <td><div align='center'>
	
<?php

/**Connexion à la base de données*/
require_once('connection_bdd.php');

$id_connect = mysql_connect(SERVEUR,LOG,MDP) or die ("probleme de connexion");
mysql_select_db(BDD) or die ("probleme de BDD");
mysql_query("SET NAMES 'utf8'"); 

/** Requête SQL*/
$sql=" select * from cycle ";

$req = mysql_query($sql) or die("Erreur SQL !<br>$sql<br>mysql_error()"); 

while($field = mysql_fetch_array($req))
{

	echo "<table border='0' width='341' cellspacing='0' cellpadding='0' align='center'>
	
		<td width='10' valign='top'><img border='0' src='CLT.gif' width='10' height='10'></td>
		<td colspan='2' valign='top' bgcolor='#DFE3EB'><img border='0' src='1px.gif' width='10' height='10'></td>
		<td width='10' valign='top'><img border='0' src='CRT.gif' width='10' height='10'></td>
	</tr>
	<tr>
		<td bgcolor='#DFE3EB' valign='top'><img border='0' src='1px.gif' width='10' height='10'></td>
			<td width='51' bgcolor='#DFE3EB' valign='top'>
				<p><a href='javascript:popup(\"info_pop.php?id_cycle=$field[0]\")'><img src='info.gif' width='51' height='51' border='0' alt='Information sur le $field[2]'></a><br>
			  </p>
        </td>
		    <td width='266' bgcolor='#DFE3EB' valign='center'><div align='center' class='Style1'>
		      <h3>$field[1]</h3>
		    </div></td>
	    <td bgcolor='#DFE3EB' valign='top'><img border='0' src='1px.gif' width='10' height='10'></td>
	</tr>
	<tr>
		<td height='10' valign='top'><img border='0' src='CLD.gif' width='10' height='10'></td>
		<td colspan='2' valign='top' bgcolor='#DFE3EB'><img border='0' src='1px.gif' width='10' height='10'></td>
		<td valign='top'><img border='0' src='CRD.gif' width='10' height='10'></td>
	</tr>
</table>";
echo "<table border='0' width='273' cellspacing='0' cellpadding='0' align='center'><tr>";

$sql2=" select * from ass_cycle_annee where id_cycle = $field[0] ";
$req2 = mysql_query($sql2) or die("Erreur SQL !<br>$sql2<br>mysql_error()"); 

while($field2 = mysql_fetch_array($req2))
{
	echo "<td><table border='0' width='50' cellspacing='0' cellpadding='0' align='center'>
  <tr>
    <td colspan='3' valign='top'><div align='center'><img src='bas.gif' width='15' height='17'></div></td>
  </tr>
  <tr>
    <td width='10' valign='top'><img border='0' src='CLT.gif' width='10' height='10'></td>
    <td width='249' valign='top' bgcolor='#DFE3EB'><img border='0' src='1px.gif' width='10' height='10'></td>
    <td width='10' valign='top'><img border='0' src='CRT.gif' width='10' height='10'></td>
  </tr>
  <tr>
    <td valign='top' bgcolor='#DFE3EB'><img border='0' src='1px.gif' width='10' height='10'></td>
    <td valign='top' bgcolor='#DFE3EB'><p align='center'><a href='index2.php?id_niveau=$field2[2]' class='Style3'> $field2[2] &deg;</a></p>      </td>
    <td valign='top' bgcolor='#DFE3EB'><img border='0' src='1px.gif' width='10' height='10'></td>
  </tr>
  <tr>
    <td height='10' valign='top'><img border='0' src='CLD.gif' width='10' height='10'></td>
    <td valign='top' bgcolor='#DFE3EB'><img border='0' src='1px.gif' width='10' height='10'></td>
    <td valign='top'><img border='0' src='CRD.gif' width='10' height='10'></td>
  </tr>
</table></td>";
}

echo "</tr></table><br><br>";

}

require ("pied.php");

 ?></div></td>
    <td><div align='center'>

<?php
$sql3=" select * from matiere ORDER BY nom_matiere ";
$req3 = mysql_query($sql3) or die("Erreur SQL !<br>$sql3<br>mysql_error()"); 

while($field3 = mysql_fetch_array($req3))
{
	echo "<table border='0' width='163' cellspacing='0' cellpadding='0' align='center'>
	<tr>
		<td width='10' valign='top'><img border='0' src='CLT.gif' width='10' height='10'></td>
		<td width='143' valign='top' bgcolor='#DFE3EB'><img border='0' src='1px.gif' width='10' height='10'></td>
		<td width='10' valign='top'><img border='0' src='CRT.gif' width='10' height='10'></td>
	</tr>
	<tr>
		<td bgcolor='#DFE3EB' valign='top'><img border='0' src='1px.gif' width='10' height='10'></td>
			<td valign='top' bgcolor='#DFE3EB'>
				<p align='center'><a href='index3.php?id_matiere=$field3[0]'>$field3[1]</a></p>              </td>
		    <td bgcolor='#DFE3EB' valign='top'><img border='0' src='1px.gif' width='10' height='10'></td>
	</tr>
	<tr>
		<td height='10' valign='top'><img border='0' src='CLD.gif' width='10' height='10'></td>
		<td valign='top' bgcolor='#DFE3EB'><img border='0' src='1px.gif' width='10' height='10'></td>
		<td valign='top'><img border='0' src='CRD.gif' width='10' height='10'></td>
	</tr>
	<tr>
	  <td height='10' colspan='3' valign='top'><div align='center'><img src='bas.gif' width='15' height='17'></div></td>
	  </tr>
</table>";
}

 ?></div></td>
  </tr>
</table>
<?php
require ("pied.php");
?>
Ce que je ne comprend pas c'est que le site marchait très bien avant le passage en PHP 5...

Merci d'avance

Eléphanteau du PHP | 33 Messages

29 mai 2012, 14:56

Je ne vois pas où est le problème, tes données sont biens transmises via la méthode GET.

Il faut savoir que l'utilisateur doit avoir le moins de liberté possible, ici, il a la possibilité de modifier beaucoup de chose, et en plus de cela, ces données ne sont pas correctement traité.
Le mieux, comme dit plus haut, est d'utiliser les sessions.

Essaye un simple et voir ce qui en ressort et travailler dessus en conséquence:

var_dump($_GET);

Eléphanteau du PHP | 16 Messages

30 mai 2012, 11:54

Merci j'ai résolu le problème finalement, il y avait des gros soucis avec les variables.

Merci à tous ceux qui m'ont aidé .