probleme de recuperation de données

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 : probleme de recuperation de données

par amine59 » 07 avr. 2005, 12:00

j'ai mis tous ce que tu m'as dis mais rien ne marche encore
j'ai mis la requete et il m'a affiché erreur
stp aide moi ça fait 2 jours que je galere avec ça, tu peux par exemlpe tester toi meme si ça marche ou pas?

par flitox » 07 avr. 2005, 11:38

Quelques changements :

Pour la 1ère page
<?php
@mysql_connect("localhost", "root", "") or die("La connexion au serveur a échoué");
@mysql_select_db("dbetudiant") or die("la connexion à la base a échoué");
$resultat = mysql_query("select * from gene group BY promotion desc"); //DESC = décroissant
$nbre = mysql_num_rows($resultat); //nbre d'enregistrement dans la base

while ($val = mysql_fetch_array($resultat)){
	$promotion_print = $val['promotion'];
	echo "<option value=\"promotion_print\">".$promotion_print."<br />"; 
}
?>
Pour affichpromo.php
<?php
@mysql_connect("localhost","root","") or die("La connexion au serveur a échoué");
@mysql_select_db("dbetudiant") or die ("la connexion à la base a échoué");
$critere= isset($_POST['promotion'])? " and promotion =".$_POST['promotion']:'';
$resultat = mysql_query("select * from gene where promotion='".critere."'");

$nbre = mysql_num_rows($resultat);

echo "<center><table border=\"0\" cellspacing=\"1\" cellpadding=\"3\"";
echo "<tr><td>Nom :</td><td>Prenom :</td><td>Email :<td></tr>";

while ($val = mysql_fetch_array($resultat)){
	$nom = $val['nom'];
	$prenom = $val['prenom'];
	$emailperso = $val['emailperso'];

echo "<tr><td>".$nom."</td><td>".$prenom."</td><td>".$emailperso."</td></tr>");
}
echo"</table></center>";
?>

par Los Brutos » 07 avr. 2005, 11:33

merci de l'info
je corrige mes scripts et je ferai plus attention ;)

par iclo » 07 avr. 2005, 11:30

$_REQUEST['foo'] devrait marcher également (sans s'occuper si la méthode d'envoi des informations du formulaire est en GET ou en POST

A moins que cela dépende de la version de PHP :S
Ce genre de technique est à éviter car c'est une faille assez conséquente dans la sécurité d'un script
$promotion= isset($_POST['promotion'])? $_POST['promotion']:'';
$resultat = mysql_query("select * from gene where promotion='$promotion'") or die ("erreur");
Si ta variable promotion est définie, tu obtiens une clause where correcte mais sinon tu arrives à "promotion = "

Je te propose plutôt :
$critere= isset($_POST['promotion'])? " and promotion =".$_POST['promotion']:''; 
$resultat = mysql_query("select * from gene where 1=1".$critere) or die ("erreur"); 
nb : en considerant que tu réperes le numero de promo par $_POST['promotion']

par amine59 » 07 avr. 2005, 11:21

j'ai essayé ce que tu m'a dis et il met une erreur "Undefined index: promotion"

par Los Brutos » 07 avr. 2005, 11:21

$_REQUEST['foo'] devrait marcher également (sans s'occuper si la méthode d'envoi des informations du formulaire est en GET ou en POST

A moins que cela dépende de la version de PHP :S

par flitox » 07 avr. 2005, 11:12

Code : Tout sélectionner

$promotion= $_POST['promotion'];
Tout ce qui doit être récupéré à partir d'un formulaire doit l'être avec $_POST['xxx']

http://www.phpfrance.com/forums/voir_sujet-48.php

probleme de recuperation de données

par amine59 » 07 avr. 2005, 11:08

bonjour

j'ai un autre probleme.
j'ai page "promotion.php" qui contient un select des promotion qui existe sur la base et je veux recuperer les données des etudiants pour chaque promotion
voila mon code:
---------------
promotion.php
---------------
<html>
<head>
<title>Annuaire des étudiant</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#FFFFFF" text="#000000">
<h3>Annuaire des &eacute;tudiant :</h3>
<form action ="affichpromo.php">
<table border="0" cellspacing="1" cellpadding="3">
<tr><td>Choix de la promotion :</td>
<td><select name="promotion">
<?php
@mysql_connect("localhost", "root", "") or die("La connexion au serveur a échoué");
@mysql_select_db("dbetudiant") or die("la connexion à la base a échoué");
$resultat = mysql_query("select * from gene group BY promotion desc"); //DESC = décroissant
$nbre = mysql_num_rows($resultat); //nbre d'enregistrement dans la base
//boucle de lecture
$i = 0;
while ($i < $nbre)
{
$promotion_print = mysql_result($resultat, $i, "promotion");

print("<option value=\"promotion_print\">$promotion_print\n");
$i++;
}
?>
</select>

</tr>
</table>
<br>
<input type="submit" value=" OK ">

</form>
</body>
</html>

---------------
affichpromo.php
---------------
<html>
<head>
<title>Affichage des promotions</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<h3>Annuaire des étudiants :</h3>
<?php
@mysql_connect("localhost","root","") or die("La connexion au serveur a échoué");
@mysql_select_db("dbetudiant") or die ("la connexion à la base a échoué");
$promotion= isset($_POST['promotion'])? $_POST['promotion']:'';
$resultat = mysql_query("select * from gene where promotion='$promotion'") or die ("erreur");

$nbre = mysql_num_rows($resultat);
$i = 0;
print("<center><table border=\"0\" cellspacing=\"1\" cellpadding=\"3\"");
print("<tr><td>Nom :</td><td>Prenom :</td><td>Email :<td></tr>");

while ($i < $nbre)
{
$res1 = mysql_result($resultat,$i,"nom");
$res2 = mysql_result($resultat,$i,"prenom");
$res3 = mysql_result($resultat,$i,"emailperso");
print("<tr><td>$res1</td><td>$res2</td><td>$res3</td></tr>");
$i++;
}
print("</table></center>");


?><br><p>
<center><a href="promotion.php">Retour</a></center>
</body>
</html>
----------------------------------

mais quand je clique sur OK, j'arrive pas a recuperer les enregistrements.

j'ai cherché, si je met une simple requete ça marche, mais si je met le critere promotion = '$promotion' ça marche pas, vous avez une idée svp?