01net    Web


Actuellement en ligne : 839 Utilisateurs dont 51 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > PHP
> [Résolu] Enrregistrement dans une table via php
Auteur
Message
 
<     1       >
Xei
  
   
      ?   @     Posté le 11/06/2008 14:17:10  
Voter pour ce message
Bonjour,

Je vous explique tout :

Je suis en train de faire une application qui doit gérer les demandes des écoles pour la mairie.

J'ai fait une authentification, cela marche nikel, j'ai mon formulaire de demande nikel aussi, j'ai un bouton enregistrer en bas du formulaire, je voudrait que lorsque l'on clique dessus, les champs : date_demande, agent, ecole, demandeur et description soit enregistrer dans une table demande de la BD test. Mais je bloque, et donc j'ai besoin de votre aide, en espérant que vous pourrez me donner un coup de main.

Merci d'avance et bonne journée a tout ceux qui lirons se post.
-->Message édité par Xei le 12/06/2008 17:02:35<--
naheulbeuk
  
  :-)
      ?   ^   @     Posté le 11/06/2008 14:53:37  
Voter pour ce message
salut, j'imagine que tu bosse en PHP ?
la page php que t'appelle quand tu soumets ton formulaire doit donc se connecter à la base de données puis insérer les données (qui sont dans $_POST si ta méthode de formulaire est POST) dans la table "demande" ;)

tu utilise mysql comme base de données ? ya des trucs que tu comprends pas car je vois rien de difficile là dedans ;) si t'as besoin n'hésite pas :p
-------
Visitez mon site sur la sécurité informatique : http://www.site-naheulbeuk.com
Et son forum : http://www.site-naheulbeuk.com/forum/
Xei
  
   
      ?   @     Posté le 11/06/2008 15:26:25  
Voter pour ce message
Oui je bosse en php ^^

Donc si je comprend bien, je fait une autre page par exemple test.php.
Dans cette page je met un code qui permet de se connecter à la base et de choisir la base :

mysql_connect('localhost', 'root', '');
mysql_select_db('test';

Donc je met sa dans la page et egalement un INSERT INTO....

C'est bien sa?

Merci
naheulbeuk
  
  :-)
      ?   ^   @     Posté le 11/06/2008 15:37:35  
Voter pour ce message
oui ;)

et dans ton formulaire à valider (balise "form"), tu mets action="test.php" dans ton exemple ;)
-------
Visitez mon site sur la sécurité informatique : http://www.site-naheulbeuk.com
Et son forum : http://www.site-naheulbeuk.com/forum/
Xei
  
   
      ?   @     Posté le 11/06/2008 15:39:43  
Voter pour ce message
Ok Ok ouai c'est vrai c'était pas super dur, mais j'arrive plus a penser j'ai trop de boulot. Merci Beaucoup à toi naheulbeuk, à la prochaine!:) Bonne journée
naheulbeuk
  
  :-)
      ?   ^   @     Posté le 11/06/2008 15:57:50  
Voter pour ce message
je t'en prie, @++ :p
-------
Visitez mon site sur la sécurité informatique : http://www.site-naheulbeuk.com
Et son forum : http://www.site-naheulbeuk.com/forum/
Xei
  
   
      ?   @     Posté le 11/06/2008 16:15:30  
Voter pour ce message
Un dernier petit problème, j'ai donc fait ma page test.php avec le code pour la connexion, ...
Voici ci dessous le code de cette page :

<?php require_once('connexion.php'); ?>
<?php
session_start(); // On relaye la session
if (session_is_registered("authentification") && $_SESSION['role'] == "admin"){ // vérification sur la session authentification (la session est elle enregistrée ?)

}
else {
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
?>
<?php

mysql_connect('localhost', 'root', ''); //Connection à la base de donnée.
mysql_select_db('test'); // On sélectionne la table voulu, ici test.

// On peut maintenant travailler sur la BD
$date_demande = $_POST['date_demande'];
$agent = ($_POST['agent']);
$demandeur = $_POST['demandeur'];
$description = $_POST['description'];
// On fait le INSERT INTO pour ajouter la demande a la table demande, on l'enregistre.
$reponse = mysql_query("INSERT INTO demande (date_demande, agent, demandeur, description_demande) VALUES ('$date_demande', '$agent', '$demandeur', '$description_demande)");
$reponse = mysql_query($reponse, $test) or die(mysql_error());
header("Location:accueil.php?add=OK"); // redirection si enregistrement réussie

mysql_close(); // On cloture la connexion de la BD
?>

Dan mon form, j'ai action ="test.php" method="post"

Mais lorsque je clique sur le bouton pour enregistrer dans ma table, j'ai une erreur, qui est celle ci dessous je la comprend mais voila j'ai besoin de quelqu'un pour la résoudre, car je ne l'ai jamais vu.
Car en plus ma première ligne n'est pas une ligne SQL donc voila l'erreur :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '')' at line 1


Merci d'avance
naheulbeuk
  
  :-)
      ?   ^   @     Posté le 11/06/2008 16:19:45  
Voter pour ce message
c'est à cause de tes variables PHP que tu utilise dans ta requete SQL à mon avis ;)

$reponse = mysql_query("INSERT INTO demande (date_demande, agent, demandeur, description_demande) VALUES (\"$date_demande\", \"$agent\", \"$demandeur\", \"$description_demande\")");

si tu mets des simples apostrophes, tes variables PHP ne sont pas interprétées du coup tu essaie d'insérer les chaines de cractères avec le $ !
pour les interpréter faut utiliser les double quotes " ;)


de plus, tu peux virer le $test comme 2ème paramètre de mysql_query ;)

$reponse = mysql_query($reponse) or die(mysql_error());
-->Message édité par naheulbeuk le 11/06/2008 16:21:01<--
-------
Visitez mon site sur la sécurité informatique : http://www.site-naheulbeuk.com
Et son forum : http://www.site-naheulbeuk.com/forum/
Xei
  
   
      ?   @     Posté le 11/06/2008 16:24:33  
Voter pour ce message
Ahh Yès c'était bien ça, donc encore une fois un grand merci a toi, tu gère trop merci beaucoup:D
Le N@in Vert
  Je pompe donc je suis.
  :-)
      ?   ^   @     Posté le 11/06/2008 17:40:29  
Voter pour ce message
Bonjour
Juste pour info la ta page n'est pas très sécuritaire : N'importe quelle type qui si connais un minimum peut faire une injection SQL et faire le bazar dans ta base de donnée...

Pour éviter ce problème remplace tout tes :
$var = $_POST['var'];
par :
$var = mysql_real_escape_string($_POST['var']);
et si tu compte afficher le contenue de la base de donné dans une page web met ça :
$var = mysql_real_escape_string(htmlentities($_POST['var']));
-------
Les aventure du donjon de naheulbeuk : www.penofchaos.com/donjon
Le site du zero : http://www.siteduzero.com
Mon site perso : http://lesitedesnains.ironie.org
Xei
  
   
      ?   @     Posté le 12/06/2008 10:00:16  
Voter pour ce message
Daccord, merci pour l'info sur la sécurité, je vais faire sa de suite!

Merci beaucoup
<     1       >

01net > Forum de 01net > Programmation et développement > PHP
> [Résolu] Enrregistrement dans une table via php

Aller à :

Page générée en : 0.14s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Entretien du PC
Mettez à jour, sauvegardez et restaurez en quelques clics  tous les pilotes de votre PC.
Jeux
Nouveauté : Vous devez explorer des chambres qui filent la frousse et trouver des objets cachés !