[php] Pb pour ajouter une ligne à la base
micom59
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
jerbien13 -
jerbien13 -
Bonjour, j'aimerais ajouter des lignes de données à ma base de donnée par l'intermédiaire d'un formulaire mais il ne rajoute à ma base que des 0
Voici le code de mon formulaire :
<html>
<body>
<BODY BGCOLOR=#33CCFF>
<center><h1>Entrée de composants</h1>
<p>
<form name="formulaire" method="post" action="http://127.0.0.1/site1/ajouter.php">
<table width="200" border="1">
<tr>
<td>Article:</td>
<td><input name="article" type="text" id="$article"></td>
</tr>
<tr>
<td>Quantité:</td>
<td><input name="quantite" type="text" id="$quantite"></td>
</tr>
<tr>
<td>Zone:</td>
<td><input name="trave" type="text" id="$zone"></td>
</tr>
<td>Lot:</td>
<td><input name="lot" type="text" id="$lot"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Envoyer">
</div></td>
</tr>
</table>
</form>
</center>
<a href="index.html">Retour</a>
</body>
</html>
et voici le code de ajouter.php
<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'base';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
mysql_query('INSERT INTO article VALUES("$article","$quantite","$zone","$lot") ');
?>
</body>
</html>
quelqu'un a t'il une idée pour que insert to m'ajoute les bonnes valeurs?
merci d'avance pour votre aide.
Voici le code de mon formulaire :
<html>
<body>
<BODY BGCOLOR=#33CCFF>
<center><h1>Entrée de composants</h1>
<p>
<form name="formulaire" method="post" action="http://127.0.0.1/site1/ajouter.php">
<table width="200" border="1">
<tr>
<td>Article:</td>
<td><input name="article" type="text" id="$article"></td>
</tr>
<tr>
<td>Quantité:</td>
<td><input name="quantite" type="text" id="$quantite"></td>
</tr>
<tr>
<td>Zone:</td>
<td><input name="trave" type="text" id="$zone"></td>
</tr>
<td>Lot:</td>
<td><input name="lot" type="text" id="$lot"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Envoyer">
</div></td>
</tr>
</table>
</form>
</center>
<a href="index.html">Retour</a>
</body>
</html>
et voici le code de ajouter.php
<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'base';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
mysql_query('INSERT INTO article VALUES("$article","$quantite","$zone","$lot") ');
?>
</body>
</html>
quelqu'un a t'il une idée pour que insert to m'ajoute les bonnes valeurs?
merci d'avance pour votre aide.
A voir également:
- [php] Pb pour ajouter une ligne à la base
- Partager photos en ligne - Guide
- Base de registre - Guide
- Aller à la ligne excel mac - Guide
- Mètre en ligne - Guide
- Ajouter à l'écran d'accueil iphone - Guide
7 réponses
Tes variables n'existent pas car register globals à off, très bonne chose.
Donc au lieu de $article, utilise $_POST['article'] , pareil pour les autres.
N'oublie pas de contrôler et protéger tes requêtes, car en l'état, ton code permet facilement une injection sql.
Donc au lieu de $article, utilise $_POST['article'] , pareil pour les autres.
N'oublie pas de contrôler et protéger tes requêtes, car en l'état, ton code permet facilement une injection sql.
ok, j'ai donc ca maintenant dans ajouter.php
<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'base';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
if
mysql_query('INSERT INTO article VALUES("$_POST['article']","$_POST['quantite']","$_POST['zone']","$_POST['lot']") ');
echo "Enregistrement effectué";
?>
<a href="index.html">Retour</a><p>
</body>
</html>
et maintenant il me dit Parse error: parse error, expecting `'('' in c:\weblocal\sites\site1\ajouter.php on line 13
il doit pas comprendre entre les ' " mais je sais pas lesquels mettre juste avant l'insert, devant le $post et devant l'article.
tu remplacerais par quoi?
Mes variables sont numériques, je note qu'il faudra que ca passe par une vérification.
<html>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'base';
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
if
mysql_query('INSERT INTO article VALUES("$_POST['article']","$_POST['quantite']","$_POST['zone']","$_POST['lot']") ');
echo "Enregistrement effectué";
?>
<a href="index.html">Retour</a><p>
</body>
</html>
et maintenant il me dit Parse error: parse error, expecting `'('' in c:\weblocal\sites\site1\ajouter.php on line 13
il doit pas comprendre entre les ' " mais je sais pas lesquels mettre juste avant l'insert, devant le $post et devant l'article.
tu remplacerais par quoi?
Mes variables sont numériques, je note qu'il faudra que ca passe par une vérification.
ok! merci, mais c'est ou qu'il faut que je remplace $article par $_POST['article']?
et tu entends quoi par protéger tes requêtes?
Merci beaucoup d'avoir répondu.
et tu entends quoi par protéger tes requêtes?
Merci beaucoup d'avoir répondu.
Les remplacer dans ton mysql_query()
Protéger ta requête signifie que tu dois contrôler les variables provenant de l'utilisateur.
Et vérifier ce que tu attends comme type de valeur.
$_POST['article'], est censé être quoi ? une chaine ? un nombre ? une valeur fournie parmi une liste ? autre ?
Dans tout les cas, il faut vérifier.
Et dans le cas d'une chaine, il faut l'échapper avec la fonction mysql_real_escape_string() puisque tu utilises mysql.
Protéger ta requête signifie que tu dois contrôler les variables provenant de l'utilisateur.
Et vérifier ce que tu attends comme type de valeur.
$_POST['article'], est censé être quoi ? une chaine ? un nombre ? une valeur fournie parmi une liste ? autre ?
Dans tout les cas, il faut vérifier.
Et dans le cas d'une chaine, il faut l'échapper avec la fonction mysql_real_escape_string() puisque tu utilises mysql.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Moi je te propose ceci avant de les inserer dans ta bd
$article=$_POST['article'];
........
pour tous tes champs
mysql_query('insert into article values("$article",.................);
Pour tous tes champs
$article=$_POST['article'];
........
pour tous tes champs
mysql_query('insert into article values("$article",.................);
Pour tous tes champs