pb d'enregistrement sur une base 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 : pb d'enregistrement sur une base de données

par Ryle » 14 juin 2007, 14:51

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 ;)

par Sékiltoyai » 14 juin 2007, 14:39

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...

par Garth » 14 juin 2007, 11:57

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.

par maoneb » 12 juin 2007, 19:56

merci merci bcp

par Sékiltoyai » 12 juin 2007, 18:02

Tu peux les voir dans la doc :
isset()
trim()

par maoneb » 12 juin 2007, 17:21

juste une dernière petite question : que signifient !isset et trim stp ?

par maoneb » 12 juin 2007, 15:40

je te remercie de m'aider ... je vais m'y repencher avec ton code ... merci beaucoup

par sadeq » 11 juin 2007, 23:45

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>&nbsp;</p>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
        </div>        </tr>
      <tr>
        <td width="110" height="72" valign="top"><I><B><font color="#000000" face="Comic Sans MS">R&eacute;f&eacute;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&eacute;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&eacute; : </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>

par maoneb » 11 juin 2007, 19:47

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>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> </div> </tr> <tr> <td width="110" height="72" valign="top"><I><B><font color="#000000" face="Comic Sans MS">R&eacute;f&eacute;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&eacute;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&eacute; : </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>

par sadeq » 11 juin 2007, 16:52

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.

pb d'enregistrement sur une base de données

par maoneb » 11 juin 2007, 14:46

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 ???