Petit problème d'index

Eléphanteau du PHP | 29 Messages

14 mars 2006, 14:27

Bonjour à tous

Je viens de créer le code suivant qui devrait me permettre de rentrer des données dans ma base de données mysql à partir d'un formulaire. Mais voilà, j'ai un bug d'index et je vois pas où est l'erreur?!?! Quelqu'un peut m'aider?

Comme je suis un débutant, j'aimerais aussi savoir pourquoi il faut intégrer la section $_server dans la séquence suivante avant de débuter la rédaction de mon formulaire <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">.

Merci
<?php
$titre_page = "Enregistrement de commande";
if (isset($_POST['submit']))

{require_once ('mysql_connect.php');
function echappement ($data)
{global $bd;
if (ini_get('magic_quotes_gpc'))
{$data=stripslashes($data);}
return mysql_escape_string($data);}

$message=null;

//Vérifier si les infos sont rentrées dans la case date
if (empty($_POST['Date']))
{$d = false; $message .='<p>Vous avez oublié d\'indiquer la date</p>';}
else
{$d=$_POST['date'];}

//Vérifier si les infos sont rentrées dans la case type
if (empty($_POST['Type']))
{$t = false; $message .='<p>Vous avez oublié d\'indiquer le type de commande</p>';}
else
{$t=$_POST['type'];}

//Vérifier si les infos sont rentrées dans la case client
if (empty($_POST['client']))
{$c = false; $message .='<p>Vous avez oublié d\'indiquer le client</p>';}
else
{$c=$_POST['client'];}

//Vérifier si les infos sont rentrées dans la case numéros de transaction
if (empty($_POST['num_transaction']))
{$nt=FALSE; $message .='<p>Vous avez oublié d\'indiquer le numéros de transaction (numéros d\'ordre ou de train)</p>';}
else
{$nt =$_POST['num_transaction'];}

//Vérifier si les infos sont rentrées dans la case transporteur
if (empty($_POST['transporteur']))
{$tr=FALSE; $message .='<p>Vous avez oublié d\'indiquer le transporteur</p>';}
else
{$tr =$_POST['transporteur'];}

//Vérifier si les infos sont rentrées dans la case type de transport
if (empty($_POST['type_transport']))
{$tt=FALSE; $message .='<p>Vous avez oublié d\'indiquer le type de transport</p>';}
else
{$tt =$_POST['type_transport'];}

//Vérifier si les infos sont rentrées dans la case produit
if (empty($_POST['produit']))
{$p=FALSE; $message .='<p>Vous avez oublié d\'indiquer le produit</p>';}
else
{$p =$_POST['produit'];}

//Vérifier si les infos sont rentrées dans la case quantité attendue
if (empty($_POST['qte_attendu']))
{$qa=FALSE; $message .='<p>Vous avez oublié d\'indiquer la quantité attendue</p>';}
else
{$qa =$_POST['qte_attendu'];}

//Vérifier si les infos sont rentrées dans la case quantité reçue
if (empty($_POST['qte_recu']))
{$qr=FALSE; $message .='<p>Vous avez oublié d\'indiquer la quantité reçue</p>';}
else
{$qr =$_POST['qte_recu'];}

 if ($d && $t && $c && $u && $nt && $tr && $tt && $p && $qa && $qr )

// connextion à la bd
{require_once ('mysql_connect.php');

// insertion des infos entrées dans les cases dans la bd
 $rq="Insert into gestion (date, type, client, num_transaction, transporteur, type_transport, produit, qte_attendu, qte_recu)
      Values ('$d', '$t', '$c', '$u', '$nt', '$tr', '$tt', '$p', '$qa', '$qr'";

// vérifier si les infos sont entrées dans la bd
$result = mysql_query($rq);

if($result)
{echo "<p><b>Votre commande a été traitée</b></p>";
exit();}

else
{echo "<p>Votre commande n a pas été enregistré à cause d une erreur système". "<p></p>" .mysql_error() . "<p></p>";}

mysql_close();}
else
{$message .='<p>Veuillez recommencer</p>';}
}

if(isset($message))
{echo"<font color='red'>$message</font>";
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<fieldset>
<legend>Veuillez compléter votre commande :</legend>

<p><b>Date : </b>
<input type="text" name="date" size="15" maxlength="15"
       value="<?php if (isset($_POST['date'])) echo $_POST['date'];?>"/>
</p>

<p><b>Type : </b>
<input type="text" name="Type" size="30" maxlength="20"
       value="<?php if (isset($_POST['type'])) echo $_POST['type'];?>"/>
</p>

<p><b>Client : </b>
<input type="text" name="Client" size="40" maxlength="50"
       value="<?php if (isset($_POST['Client'])) echo $_POST['Client'];?>"/>
</p>

<p><b>Numéros de commande : </b>
<input type="text" name="Num_transaction" size="10" maxlength="20"
       value="<?php if (isset($_POST['Num_transaction'])) echo $_POST['Num_transaction'];?>"/>
</p>

<p><b>Transporteur : </b>
<input type="text" name="Transporteur" size="10" maxlength="20"
       value="<?php if (isset($_POST['Transporteur'])) echo $_POST['Transporteur'];?>"/>
</p>

<p><b>Type de transport : </b>
<input type="text" name="type_transport" size="10" maxlength="20"
       value="<?php if (isset($_POST['type_transport'])) echo $_POST['type_transport'];?>"/>
</p>

<p><b>Produit : </b>
<input type="text" name="Produit" size="10" maxlength="20"
       value="<?php if (isset($_POST['Produit'])) echo $_POST['Produit'];?>"/>
</p>

<p><b>Quantité attendue : </b>
<input type="text" name="qte_attendu" size="10" maxlength="20"
       value="<?php if (isset($_POST['qte_attendu'])) echo $_POST['qte_attendu'];?>"/>
</p>

<p><b>Quantité reçue : </b>
<input type="text" name="qte_recu" size="10" maxlength="20"
       value="<?php if (isset($_POST['qte_recu'])) echo $_POST['qte_recu'];?>"/>
</p>
</fielset>

<div align="center">
<input type="submit" name="submit" value="Envoyer les informations" />
</div>

</form><!-- Fin du formulaire -->

Avatar du membre
ViPHP
ViPHP | 3008 Messages

14 mars 2006, 14:47

Quelle est l'erreur indiquée et à quelle ligne ?

Eléphanteau du PHP | 29 Messages

14 mars 2006, 14:54

Undefined index: type in c:\program files\easyphp1-8\www\enregistrer_commande.php on line 22

Avatar du membre
ViPHP
ViPHP | 3008 Messages

14 mars 2006, 14:57

$message .='<p>Vous avez oublié d\'indiquer la date</p>';
A quoi correspond ton "." avant le = ?

Eléphanteau du PHP | 29 Messages

14 mars 2006, 15:04

Bonne question... je suis vraiment débutant et j'ai disons un peu recopié ce qui est écrit dans mon exemple.:shock: Je sais que c'est de la concadénation. Par contre, mettre un point à cette endroit précis?! Je sais pas pourquoi. Je vais essayer de l'enlever...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

14 mars 2006, 15:06

Dans ce code
if (empty($_POST['Date'])) 
{$d = false; $message .='<p>Vous avez oublié d\'indiquer la date</p>';} 
else 
{$d=$_POST['date'];}
Tu ne concatènes rien...

Eléphanteau du PHP | 29 Messages

14 mars 2006, 15:19

Je viens de faire un test sans les points et ca semble mieux fonctionner.... par contre j'ai encore un: Notice: Undefined index: type in c:\program files\easyphp1-8\www\enregistrer_commande.php on line 24 . ?!?!?!?
Généralement... pour que je finisse pas comprendre un peu de truc... qu'est-ce qui faut regarder lorsqu'on a un undefined index?

<?php
$titre_page = "Enregistrement de commande";
if (isset($_POST['submit']))

{require_once ('mysql_connect.php');
function echappement ($data)
{global $bd;
if (ini_get('magic_quotes_gpc'))
{$data=stripslashes($data);}
return mysql_escape_string($data);}

$message=null;

//Vérifier si les infos sont rentrées dans la case date
if (empty($_POST['Date']))
{$d = false; $message='<p>Vous avez oublié d\'indiquer la date</p>';}
else
{$d=$_POST['date'];}

//Vérifier si les infos sont rentrées dans la case type
if (empty($_POST['Type']))
{$t = false; $message='<p>Vous avez oublié d\'indiquer le type de commande</p>';}
else
{$t=$_POST['type'];}

//Vérifier si les infos sont rentrées dans la case client
if (empty($_POST['client']))
{$c = false; $message='<p>Vous avez oublié d\'indiquer le client</p>';}
else
{$c=$_POST['client'];}

//Vérifier si les infos sont rentrées dans la case numéros de transaction
if (empty($_POST['num_transaction']))
{$nt=FALSE; $message='<p>Vous avez oublié d\'indiquer le numéros de transaction (numéros d\'ordre ou de train)</p>';}
else
{$nt =$_POST['num_transaction'];}

//Vérifier si les infos sont rentrées dans la case transporteur
if (empty($_POST['transporteur']))
{$tr=FALSE; $message='<p>Vous avez oublié d\'indiquer le transporteur</p>';}
else
{$tr =$_POST['transporteur'];}

//Vérifier si les infos sont rentrées dans la case type de transport
if (empty($_POST['type_transport']))
{$tt=FALSE; $message='<p>Vous avez oublié d\'indiquer le type de transport</p>';}
else
{$tt =$_POST['type_transport'];}

//Vérifier si les infos sont rentrées dans la case produit
if (empty($_POST['produit']))
{$p=FALSE; $message='<p>Vous avez oublié d\'indiquer le produit</p>';}
else
{$p =$_POST['produit'];}

//Vérifier si les infos sont rentrées dans la case quantité attendue
if (empty($_POST['qte_attendu']))
{$qa=FALSE; $message='<p>Vous avez oublié d\'indiquer la quantité attendue</p>';}
else
{$qa =$_POST['qte_attendu'];}

//Vérifier si les infos sont rentrées dans la case quantité reçue
if (empty($_POST['qte_recu']))
{$qr=FALSE; $message='<p>Vous avez oublié d\'indiquer la quantité reçue</p>';}
else
{$qr =$_POST['qte_recu'];}

if ($d && $t && $c && $u && $nt && $tr && $tt && $p && $qa && $qr )

// connextion à la bd
{require_once ('mysql_connect.php');

// insertion des infos entrées dans les cases dans la bd
$rq="Insert into gestion (date, type, client, num_transaction, transporteur, type_transport, produit, qte_attendu, qte_recu)
      Values ('$d', '$t', '$c', '$u', '$nt', '$tr', '$tt', '$p', '$qa', '$qr'";

// vérifier si les infos sont entrées dans la bd
$result = mysql_query($rq);

if($result)
{echo "<p><b>Votre commande a été traitée</b></p>";
exit();}

else
{echo "<p>Votre commande n a pas été enregistré à cause d une erreur système". "<p></p>" .mysql_error() . "<p></p>";}

mysql_close();}
else
{$message .='<p>Veuillez recommencer</p>';}
}

if(isset($message))
{echo"<font color='red'>$message</font>";
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<fieldset>
<legend>Veuillez compléter votre commande :</legend>

<p><b>Date : </b>
<input type="text" name="date" size="15" maxlength="15"
       value="<?php if (isset($_POST['date'])) echo $_POST['date'];?>"/>
</p>

<p><b>Type : </b>
<input type="text" name="Type" size="30" maxlength="20"
       value="<?php if (isset($_POST['type'])) echo $_POST['type'];?>"/>
</p>

<p><b>Client : </b>
<input type="text" name="Client" size="40" maxlength="50"
       value="<?php if (isset($_POST['Client'])) echo $_POST['Client'];?>"/>
</p>

<p><b>Numéros de commande : </b>
<input type="text" name="Num_transaction" size="10" maxlength="20"
       value="<?php if (isset($_POST['Num_transaction'])) echo $_POST['Num_transaction'];?>"/>
</p>

<p><b>Transporteur : </b>
<input type="text" name="Transporteur" size="10" maxlength="20"
       value="<?php if (isset($_POST['Transporteur'])) echo $_POST['Transporteur'];?>"/>
</p>

<p><b>Type de transport : </b>
<input type="text" name="type_transport" size="10" maxlength="20"
       value="<?php if (isset($_POST['type_transport'])) echo $_POST['type_transport'];?>"/>
</p>

<p><b>Produit : </b>
<input type="text" name="Produit" size="10" maxlength="20"
       value="<?php if (isset($_POST['Produit'])) echo $_POST['Produit'];?>"/>
</p>

<p><b>Quantité attendue : </b>
<input type="text" name="qte_attendu" size="10" maxlength="20"
       value="<?php if (isset($_POST['qte_attendu'])) echo $_POST['qte_attendu'];?>"/>
</p>

<p><b>Quantité reçue : </b>
<input type="text" name="qte_recu" size="10" maxlength="20"
       value="<?php if (isset($_POST['qte_recu'])) echo $_POST['qte_recu'];?>"/>
</p>
</fielset>

<div align="center">
<input type="submit" name="submit" value="Envoyer les informations" />
</div>

</form><!-- Fin du formulaire -->

Avatar du membre
ViPHP
ViPHP | 3008 Messages

14 mars 2006, 15:33

:arrow: http://frederic.bouchery.free.fr/?2004/ ... e-Ou-Index

Tu as encore un point vers la fin.

A quelle partie de ton code correspond la ligne 24 ?

Eléphanteau du PHP | 29 Messages

14 mars 2006, 15:39

dernière ligne de:
//Vérifier si les infos sont rentrées dans la case type
if (empty($_POST['Type']))
{$t = false; $message='<p>Vous avez oublié d\'indiquer le type de commande</p>';}
else
{$t=$_POST['type'];}

Avatar du membre
ViPHP
ViPHP | 3008 Messages

14 mars 2006, 15:47

Regardes si ce n'est pas la "casse" qui est pris en compte. Ton champs s'appelle "Type". Remplaces ton code par :
//Vérifier si les infos sont rentrées dans la case type 
if (empty($_POST['Type'])) 
{$t = false; $message='<p>Vous avez oublié d\'indiquer le type de commande</p>';} 
else 
{$t=$_POST['Type'];}