[PHP] post variable

Résolu/Fermé
guy2mars Messages postés 204 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 24 janvier 2013 - 10 janv. 2009 à 10:44
 toto - 10 janv. 2009 à 11:47
Bonjour,
je suis en butte a une connerie sans doute
je lis un fichier, j'affiche sa variable
je cree un formulaire,je saisis les valeurs a poster
je recupere tout sauf la variable.
ou est le truc????
voici la page emetteur
<html>
<body>
<table align="center" style="font: small">
<tr><td>
<form action = "calcul.php?$numcom,$numpro,$numven,$quant" method="post">
<?php
// Paramètres de connexion
$host = "localhost";
$user = "root";
$bdd = "commandes";
$passwd = "";
// Connexion au serveur
mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
$query="SELECT LAST_INSERT_ID() FROM ref_com";
$row= mysql_query($query);
$numcom=$row[0]+1;
echo "commande n° ".$numcom;// ca s'affiche correct
mysql_close();
?>
<hr color="#CC0000"><b style="color: #CC0000; font: bold">A commander</font></b><br><hr color="#CC0000">
Num Produit<input type="text" name="numpro" size="2">Num Vendeur<input type="text" name="numven" size="8">Quantite<input type="text" name="quant" size="8">
<input type="submit" value="Valider">
</form>
</td>
</tr>
</table>
</body>
</html>
-------------------------------------la reception---------------------------------
<?php
//********* reception variables
$exp = $_SERVER['HTTP_REFERER'];
$demandeur = $_SERVER['REMOTE_ADDR'];
echo "ip demandeur : ".$demandeur."<br>";
$numcom = $_POST['numcom'];
echo "com : ".$numcom."<br>";
$numpro = $_POST['numpro'];
$numven = $_POST['numven'];
$quant = $_POST['quant'];
//********variables connexion*********
$host = "localhost";
$user = "root";
$bdd = "commandes";
$passwd = "";
// ******************* connexion ************
mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
//*****************requete ******************
$quer="select societe from fournisseurs where num = ".$numven;
//***************lecture resultats*************
$res= mysql_query($quer);
$vendeur=mysql_fetch_row($res);
//$vendeur=$row[0];
//***************requete**********
$query="SELECT * FROM fournitures where num =".$numpro;
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo "num_com ".$numcom." num_cat : ".$row[1]." fourniture : ". $row[2]."<br> Vendeur : ".$numven." _ ".$vendeur[0];
?>
--------------------------------le resultat --------------------------------------------
p demandeur : 127.0.0.1

Notice: Undefined index: numcom in C:\Program Files\EasyPHP 2.0b1\www\qualite\calcul.php on line 6
com :
num_com num_cat : 15 fourniture : proteine1 le tube de 100
Vendeur : 1 _ SDMHL-DS
*********************************************************
quelqu'un peut venir a ma rescousse?????
merci
A voir également:

3 réponses

Bonjour

Normal, il n'y a aucun champ que qui s'appelle numcom dans ton formulaire
Il ne faut pas croire que les variables que tu récupères dans $_POST sont celles que tu avais mises dans ta ligne
<form action = "calcul.php?$numcom,$numpro,$numven,$quant" method="post">
tu aurais pu mettre
<form action = "calcul.php" method="post">
cela aurait fait exactement la même chose.
En fait, c'est même ce que tu aurais mettre
Ce que tu récupères dans les post, ce sont les champs du formulaire : <input en tous genre>
Pour transmettre ton numéro de commande, tu peux ajouter dans le formulaire un champ invisible :
<input type="hidden" name="numcom" value = "<?php echo $numcom ?>" />
0
guy2mars Messages postés 204 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 24 janvier 2013 71
10 janv. 2009 à 11:31
je te remercie pour ta reponse
j avais appris en declarant les variables a transmettre; c est donc obsolete.
ta balise hidden est donc ma solution.
j aime apprendre et comprendre

merci encore toto
0
j avais appris en declarant les variables a transmettre

Le passage de variables par l'url peut se faire aussi, il n'est pas obsolète du tout. Mais il ne se fait pas vraiment comme ça.
0