Page 1 sur 1
pb d'enregistrement sur une base de données
Posté : 11 juin 2007, 14:46
par maoneb
salut a tous,
voilà dans le cadre de mon stage de fin de 1ère année en BTS ig il faut que je réalise une application en php html pour une entreprise et j'ai un petit soucis au niveau de l'enregistrement de données sur ma base ... ca m'enregistre l'enregistrement mais il n'apparait pas les informations entrées à l'écran ... quelqu'un peut il m'aider ???
Posté : 11 juin 2007, 16:52
par sadeq
On est content d'avoir compris ton souci mais sans extrait de code qui pose problème on ne peut hélas faire avancer les choses.
Posté : 11 juin 2007, 19:47
par maoneb
désolée ... voici le code de ma page qui doit envoyer les données a la base :
<?
$connexion = @ mysql_connect("localhost", "root","") or exit("Impossible de se connecter !") ;
mysql_select_db("articles",$connexion);
$ref=($ref);
$design=($design);
$qte=($qte);
$req= "insert into produits values ('','$ref','$design','$qte')";
mysql_query($req);
?>
Code : Tout sélectionner
<HTML>
<body onload=redirection()>
<script>
function redirection()
{
window.location.href="saisieprod.php"
}
</script>
</body>
</HTML>
et le code de ma page ou sont saisies les infos si ca peu aider :
Code : Tout sélectionner
<HTML>
<Meta http-equiv="refresh">
<Meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<title>Saisie des produits</title><body bgcolor="#0066CC" text="#FFFFFF" link="#FF0000">
<form action="file:///C|/Documents and Settings/Administrateur/Mes documents/OCS/rec.php" method="get">
<center>
<table width="77%" border="0">
<!--DWLayoutTable-->
<tr>
<td colspan="5" height="85"> <div align="center">
<p><font color="#FFFFFF" size="6" face="Georgia, Times New Roman, Times, serif"><B><em>Ecran de saisie d'un produit</em></B></font></p>
<p> </p>
<p> </p>
<p> </p>
</div> </tr>
<tr>
<td width="110" height="72" valign="top"><I><B><font color="#000000" face="Comic Sans MS">Référence
:</font></B></I></td>
<td width="161" valign="top"></input> <font color="#FF0000">
<input name="ref" type="text" id="ref" size=20>
</font></td>
<td colspan="2" valign="top"><I><B><font color="#000000" face="Comic Sans MS">Désignation : </font></B></I>
<td width="185" valign="top"><input name="design" type="text" id="design" size=20>
</input></input></td>
<tr>
<td height="72" valign="top"><div align="justify"><I><B><font color="#000000" face="Comic Sans MS">Quantité : </font></B></I> </div></td>
<td valign="top"><font color="#FF0000">
<input name="qte" type="text" id="qte" size=20>
</font></td>
<td colspan="2" valign="top"><font face="comic sans ms">
<input type="submit" value="Valider" onClick=window.location.href="rec.php" name="submit">
</font></td>
<td valign="top"><div align="justify"><font color="#FF0000">
</input>
</font><font face="comic sans ms">
<input type="button" value="Fermer" onClick=window.location.href="index.php" name="button">
</font></div></td>
</table>
</center>
</form>
</body>
</html>
Posté : 11 juin 2007, 23:45
par sadeq
Corrige d'abord les erreurs logiques de codage suivantes, à la fois au niveau du code PHP et HTML:
- . Le formulaire HTML doit indiquer dans action le chemin HTTP du programme de traitement (et non via le protocole file://)
. Tu n'as pas besoin du javascript redirecteur pour faire un submit (location.href) un bouton de type submit sait déjà faire un appel HTTP vers la page déclarée dans "action" du "form"
. Pour rappeler les valeurs des champs après le submit utilise l'attribut "value" dans les champs dont La valeur est réécrite par php à partir du postage ($_GET)
. Le programme php doit suivre un algorithme rigoureux qui contrôle les données et gère les erreurs avant d'attaquer SQL
Voici une indication dans une et seule page contenant à la fois le php du traitement et l'HTML du formulaire.
page
rec.php
<?php
//Début du traitement
//on ne doit traiter que si les données obligatoires sont vraiment postées et sont valides
if ($_GET["submit"])
if (!isset($_GET["ref"]) || trim($_GET["ref"]) == "") $message = "La référence est obligatoire";
else if (!isset($_GET["design"]) || trim($_GET["design"]) == "") $message = "La désignation est obligatoire";
else if (!isset($_GET["qte"]) || !is_numeric(trim($_GET["qte"])) || trim($_GET["qte"]) <= 0)
$message = "La quantité doit être numérique > à 0";
else {
//les données sont valides
$ref = trim($_GET["ref"]);
$design = trim($_GET["design"]);
$qte = trim($_GET["qte"]);
//ajouter l'article dans la base de données
$connexion = @mysql_connect("localhost", "root","");
if (!$connexion) $message = "Impossible de se connecter !";
else if (!@mysql_select_db("articles",$connexion))
$message = "Impossible d'ouvrir la base de données!";
else if (@mysql_query("insert into produits values ('','$ref','$design','$qte')") )
$message = "Ajout effectué.";
else $message = "Ajout non effectué!";
}//fin données valides
//Fin du traitement
?>
<HTML>
<Meta http-equiv="refresh">
<Meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<title>Saisie des produits</title><body bgcolor="#0066CC" text="#FFFFFF" link="#FF0000">
<form action="rec.php" method="GET">
<center>
<table width="77%" border="0">
<!--DWLayoutTable-->
<tr>
<td colspan="5" height="85"> <div align="center">
<p><font color="#FFFFFF" size="6" face="Georgia, Times New Roman, Times, serif"><B><em>Ecran de saisie d'un produit</em></B></font></p>
<p> </p>
<p> </p>
<p> </p>
</div> </tr>
<tr>
<td width="110" height="72" valign="top"><I><B><font color="#000000" face="Comic Sans MS">Référence
:</font></B></I></td>
<td width="161" valign="top"><font color="#FF0000">
<input name="ref" type="text" id="ref" size=20 value="<?php echo $_GET['ref']; ?>" />
</font></td>
<td colspan="2" valign="top"><I><B><font color="#000000" face="Comic Sans MS">Désignation : </font></B></I>
<td width="185" valign="top"><input name="design" type="text" id="design" size=20 value="<?php echo $_GET['design']; ?>" /></td>
<tr>
<td height="72" valign="top"><div align="justify"><I><B><font color="#000000" face="Comic Sans MS">Quantité : </font></B></I> </div></td>
<td valign="top"><font color="#FF0000">
<input name="qte" type="text" id="qte" size=20 value="<?php echo $_GET['qte']; ?>" />
</font></td>
<td colspan="2" valign="top"><font face="comic sans ms">
<input type="submit" value="Valider" name="submit" />
</font></td>
<td valign="top"><div align="justify"><font color="#FF0000">
</input>
</font><font face="comic sans ms">
<input type="button" value="Fermer" onClick=window.location.href="index.php" name="button" />
<p><Font color="red"><i><?php echo $message; ?></i></Font></p>
</font></div></td>
</table>
</center>
</form>
</body>
</html>
Posté : 12 juin 2007, 15:40
par maoneb
je te remercie de m'aider ... je vais m'y repencher avec ton code ... merci beaucoup
Posté : 12 juin 2007, 17:21
par maoneb
juste une dernière petite question : que signifient !isset et trim stp ?
Posté : 12 juin 2007, 18:02
par Sékiltoyai
Tu peux les voir dans la doc :
isset()
trim()
Posté : 12 juin 2007, 19:56
par maoneb
merci merci bcp
Posté : 14 juin 2007, 11:57
par Garth
Je suis mois aussi en BTS IG 1 mais débutant en PHP (pas vraiment vu en cours ><), en plus je me tape un projet a faire pour le stage en PHP, par contre un petit conseil a prendre en compte si tu code toujours sans ajout des commentaires a tes codes que se soit en PHP, HTML, C, C++ ou autre, si jamais la personne qui le relit ne comprend pas se qu'effectue ton code même si il est correct tu peux avoir de mauvaise surprise je parle en connaissance de causes.
Posté : 14 juin 2007, 14:39
par Sékiltoyai
Oui mais l'avantage de faire des codes nons commentés et incompréhensibles, c'est que si tu te fais virer, l'entreprise est dans la merde...
Posté : 14 juin 2007, 14:51
par Ryle
Oui mais l'avantage de faire des codes nons commentés et incompréhensibles, c'est que si tu te fais virer, l'entreprise est dans la merde...
C'est une façon de voir les choses..... par contre s'ils ne te virent pas et qu'ils te demandent une évolution de ton code dans 6 mois, c'est qui toi qui est dans la merde...
Sachant que tu pourras aussi - une fois dans ta nouvelle entreprise - tomber sur le code de quelqu'un qui appliquera le même concept, et t'y retrouver plongé tout autant
