IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Envoi de données à partir d'un formulaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut Envoi de données à partir d'un formulaire
    Bonjour!

    après avoir résolu le problème des listes déroulantes, j'ai programmé un fichier ajout.php qui me permet 3 opération à la fois.

    1. L'envoie d'un mail qui contient des info de la réservation (à la personne qui a réserver)
    2. L'ajout de l'enregistrement à la table reservation
    3. Renvoi à la page d'acceuil

    voici ci joint la page que j'ai mis
    ajout.php

    J'ai mis un <form methode='post' action='ajout.php' >dans ma page reservation.php mais quand je clique sur envoyer ça ne me donne rien du tt!!!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    si tu mets la redirection avant ta connexion et l'execution de tes requêtes
    Il est normal que rien ne se passera à ce niveau-là....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Header("Location: http://accueil.html");
    
    
    //Ajout de la réservation à la base de donnée
    //	Connexion à la base de donnée
    	 $db = mysql_connect('localhost', 'root', 'passroot')  or die('Erreur de connexion '.mysql_error()); 
    //	Selection de la base de donnée
    	mysql_select_db('gestion',$db)  or die('Erreur de selection '.mysql_error());  
    //	Requete SQL num_dep
    	$sql_dep="SELECT NUM_DEP FROM departement WHERE NOM_DEP=$Dep";
    	$num_dep=mysql_query($sql_dep); 
    // 	Requete SQL ajout
    	$sql_add= "INSERT INTO reservation(NUM, NUM_SALLE, NUM_DEP,NOMBRE_PARTICIPANT,DEBUT, FIN, OBJET, EMAIL, NOM, PRENOM,) 
    	VALUES('','$num_salle','$num_dep','$nbr','$Debut','$Fin','$Objet','$Email','$Nom','$Prenom')"; 
    // 	Insertion dans la table
    	mysql_query($sql_add) or die('Erreur SQL !'.$sql_add.'<br>'.mysql_error()); 
    //	Fermeture de la connexion
    	mysql_close();  // on ferme la connexion

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Elle est déjà mise avant la connexion à la base de donnée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?
    //affectation des valeurs du formulaire à des variables 
    $num_salle=$_POST['select_num_salle'];
    $nbr=$_POST['nbr'];
    $Date=$_POST['MyDate'];
    $Debut = $_POST['heure_debut'];
    $Fin = $_POST['heure_fin'];
    $Objet = $_POST['objet'];
    $Nom = $_POST['nom'];
    $Penom = $_POST['prenom'];
    $Email = $_POST['email'];
    $Dep = $_POST['select_dep'];
    //les messages qui seront envoyés
    //Pour la personne qui a réservée
    $message_sender=" Vous venez de réserver la salle: \t $num_salle\t pour le $Date \t de $Debut à $Fin . \n Un mail de confirmation vous sera envoyé ultérieurement";
     
    $To = $Email;
     
    $h  = "De: Gestion salles de réunion " . $To;
    mail($To,, $message_sender, $h);
     
    Header("Location: http://accueil.html");
     
    //Ajout de la réservation à la base de donnée
    //	Connexion à la base de donnée
    	 $db = mysql_connect('localhost', 'root', 'passroot')  or die('Erreur de connexion '.mysql_error()); 
    //	Selection de la base de donnée
    	mysql_select_db('gestion',$db)  or die('Erreur de selection '.mysql_error());  
    //	Requete SQL num_dep
    	$sql_dep="SELECT NUM_DEP FROM departement WHERE NOM_DEP=$Dep";
    	$num_dep=mysql_query($sql_dep); 
    // 	Requete SQL ajout
    	$sql_add= "INSERT INTO reservation(NUM, NUM_SALLE, NUM_DEP,NOMBRE_PARTICIPANT,DEBUT, FIN, OBJET, EMAIL, NOM, PRENOM,) 
    	VALUES('','$num_salle','$num_dep','$nbr','$Debut','$Fin','$Objet','$Email','$Nom','$Prenom')"; 
    // 	Insertion dans la table
    	mysql_query($sql_add) or die('Erreur SQL !'.$sql_add.'<br>'.mysql_error()); 
    //	Fermeture de la connexion
    	mysql_close();  // on ferme la connexion  
    ?>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si tu mets une redirection à ce niveau-là,Tout le code qui suit ne sera pas executé vu que tu va être transferé sur une autre page!

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Le problème c'est que mème si j'ai mis la redirection vers la page d'acceuil àla fin du code, ça ne marche toujours pas!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il te manque déjà ceci pour pouvoir récupérér l'id de ton département.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	$sql_dep="SELECT NUM_DEP FROM departement WHERE NOM_DEP=$Dep";
    	$result=mysql_query($sql_dep) or die ("Erreur select:".mysql_error()); 
    $row = mysql_fetch_row($result);
    $num_dep = $row[0];

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Bien vu!
    Merci!

    mais quand j'exécute à partir du formulaire ça marche pas!

    mais quand j'éxécute le fichier ajout.php à partir de localhost ça me donne:
    '.mysql_error()); // Fermeture de la connexion mysql_close(); Header("Location: http://accueil.html"); ?>

  8. #8
    Invité
    Invité(e)
    Par défaut
    Repost déjà le code que tu as modifié et mets l'erreur complète que tu vois sur ta page.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Voilà le code du fichier ajout.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?
    //affectation des valeurs du formulaire à des variables 
    $num_salle=$_POST['select_num_salle'];
    $nbr=$_POST['nbr'];
    $Date=$_POST['MyDate'];
    $Debut = $_POST['heure_debut'];
    $Fin = $_POST['heure_fin'];
    $Objet = $_POST['objet'];
    $Nom = $_POST['nom'];
    $Penom = $_POST['prenom'];
    $Email = $_POST['email'];
    $Dep = $_POST['select_dep'];
    //les messages qui seront envoyés
    //Pour la personne qui a réservée
    $message_sender=" Vous venez de réserver la salle: \t $num_salle\t pour le $Date \t de $Debut à $Fin . \n Un mail de confirmation vous sera envoyé ultérieurement";
     
    $To = $Email;
     
    $h  = "De: Gestion salles de réunion " . $To;
    mail($To,, $message_sender, $h);
     
     
     
    //Ajout de la réservation à la base de donnée
    //	Connexion à la base de donnée
    	 $db = mysql_connect('localhost', 'root', 'passroot')  or die('Erreur de connexion '.mysql_error()); 
    //	Selection de la base de donnée
    	mysql_select_db('gestion',$db)  or die('Erreur de selection '.mysql_error());  
    //	Requete SQL num_dep
    	$sql_dep="SELECT NUM_DEP FROM departement WHERE NOM_DEP=$Dep";
    	$result=mysql_query($sql_dep) or die ("Erreur select:".mysql_error()); 
    	$row = mysql_fetch_row($result);
    	$num_dep = $row[0]; 
    // 	Requete SQL ajout
    	$sql_add= "INSERT INTO reservation(NUM, NUM_SALLE, NUM_DEP,NOMBRE_PARTICIPANT,DEBUT, FIN, OBJET, EMAIL, NOM, PRENOM,) 
    	VALUES('','$num_salle','$num_dep','$nbr','$Debut','$Fin','$Objet','$Email','$Nom','$Prenom')"; 
    // 	Insertion dans la table
    	mysql_query($sql_add) or die('Erreur SQL !'.$sql_add.'<br>'.mysql_error()); 
    //	Fermeture de la connexion
    	mysql_close(); 
     
    	Header("Location: http://accueil.html");
    ?>
    et quand je léxcécute ça m'affiche ce message:
    '.mysql_error()); // Fermeture de la connexion mysql_close(); Header("Location: http://accueil.html"); ?>

    Comme si le code n'arrive pas à ajouter l'enregistrement.
    Cette erreur s'affiche qaund j'éxécute le fichier ajout.php, mais à partir du formulaire quand je clique sur envoyer (qui fait appel à ajout.php) ça ne m'affiche rien du tout! elle najoute pas elle ne renvoie pas à la page daccueil: rien!

  10. #10
    Invité
    Invité(e)
    Par défaut
    Alors en regardant de plus près ta requête insert, je vois
    INSERT INTO reservation(NUM, NUM_SALLE, NUM_DEP,NOMBRE_PARTICIPANT,DEBUT, FIN, OBJET, EMAIL, NOM, PRENOM,)
    Pourrais-tu également fournir les types de tous les champs affichés ci-dessus.

    Pour info si ton champ dans la base de données est de type numérique -> il ne faut pas de ''.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Oui j'ai réparé la virgule mais ça ne tourne pas toujours.

    pour les types de champs j'ai:

    NUM=> numérique
    NUM_SALLE=> numérique
    NUM_DEP=>numérique
    NOMBRE_PARTICIPANT=>numérique
    DEBUT=>heure (time)
    FIN=>heure
    OBJET=>texte
    EMAIL=>texte
    NOM=>texte
    PRENOM=>texte

  12. #12
    Invité
    Invité(e)
    Par défaut
    Donc les champs
    NUM=> numérique
    NUM_SALLE=> numérique
    NUM_DEP=>numérique
    NOMBRE_PARTICIPANT=>numérique

    ne doivent pas être entourés par des '' dans ta requête

    NUM est ta clé primaire? autoincrément -> si c'est le cas il ne faut pas la spécifier dans ta requête.


    Avant:

    $sql_add= "INSERT INTO reservation(NUM, NUM_SALLE, NUM_DEP,NOMBRE_PARTICIPANT,DEBUT, FIN, OBJET, EMAIL, NOM, PRENOM)
    VALUES('','$num_salle','$num_dep','$nbr','$Debut','$Fin','$Objet','$Email','$Nom','$Prenom')";
    Après:

    $sql_add= "INSERT INTO reservation(NUM_SALLE, NUM_DEP,NOMBRE_PARTICIPANT,DEBUT, FIN, OBJET, EMAIL, NOM, PRENOM)
    VALUES($num_salle,$num_dep,$nbr,'$Debut','$Fin','$Objet','$Email','$Nom','$Prenom')";

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    C'est j'ai réparé;

    mais ça me donne un message d'erreur au niveau de la lige 20, c'est à dire là où j'ai la fonction d'envoie d'un mail.
    Voilà le script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Pour la personne qui a réservée
    $message_sender=" Vous venez de réserver la salle: \t $num_salle\t pour le $Date \t de $Debut à $Fin . \n Un mail de confirmation vous sera envoyé ultérieurement";
     
    $To = $Email;
     
    $h  = "De: Gestion salles de réunion " . $To;
    mail($To,$message_sender, $h);
    Me donne:
    Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 20
    Erreur select:Erreur de syntaxe près de '' à la ligne 1

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Voilà encore de nouveaux erreurs:
    Notice: Undefined index: select_num_salle in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 3

    Notice: Undefined index: nbr in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 4

    Notice: Undefined index: MyDate in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 5

    Notice: Undefined index: heure_debut in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 6

    Notice: Undefined index: heure_fin in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 7

    Notice: Undefined index: objet in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 8

    Notice: Undefined index: nom in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 9

    Notice: Undefined index: prenom in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 10

    Notice: Undefined index: email in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 11

    Notice: Undefined index: select_dep in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 12

    Est ce parce que les champs ne sont pas encore rempli sur le formulaire? et pourquoi quand je rentre à la table pour vérifier l'ajout, je trouve la table vide?

  15. #15
    Invité
    Invité(e)
    Par défaut
    Warning: mail() [function.mail]: "sendmail_from" not set in php.ini
    Comme le message l'indique tu dois vérfiier cette valeur dans le fichier php.ini.
    tu devrais également mettre le serveur smtp de ton fournisseur d'accès internet au lieu de localhost car je doute fort que tu aies un serveur mail installé sur ta machine.

    N'oublie pas de redémarrer easyphp après avoir effectué ces modifications.


    Notice: Undefined index: select_num_salle in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 3

    Notice: Undefined index: nbr in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 4

    Notice: Undefined index: MyDate in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 5

    Notice: Undefined index: heure_debut in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 6

    Notice: Undefined index: heure_fin in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 7

    Notice: Undefined index: objet in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 8

    Notice: Undefined index: nom in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 9

    Notice: Undefined index: prenom in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 10

    Notice: Undefined index: email in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 11

    Notice: Undefined index: select_dep in C:\Program Files\EasyPHP 2.0b1\www\GestionSallesReunion\ajout.php on line 12
    Il est clair que si tu charges directement la page ajout.php sans passer par le formulaire tu auras ce genre d'erreurs...

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Re!

    Bon rien que pour tester la fonction d'ajout à la base de données. ça m'affiche un msg d'erreur Erreur select:Erreur de syntaxe près de '' à la ligne 1

    alors que je n'ai à la ligne 1 que la balise

  17. #17
    Invité
    Invité(e)
    Par défaut
    $sql_add= "INSERT INTO reservation(NUM_SALLE, NUM_DEP,NOMBRE_PARTICIPANT,DEBUT, FIN, OBJET, EMAIL, NOM, PRENOM)
    VALUES($num_salle,$num_dep,$nbr,'$Debut','$Fin','$Objet','$Email','$Nom','$Prenom')";
    echo $sql_add."<br>";
    Pour vérifier la syntaxe de ton INSERT

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Toujours rien!

  19. #19
    Invité
    Invité(e)
    Par défaut
    FAIS LE TEST VIA LE FORMULAIRE et AFFICHE LE RESULTAT DE L'echo de ta REQUETE ICI!!!!

    POUR RAPPEL, JE NE SUIS PAS A COTE DE TOI POUR VOIR CE QU'IL SE PASSE!

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    ça ne donne rien!

    voilà le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    //affectation des valeurs du formulaire à des variables 
    $num_salle=$_POST['select_num_salle'];
    $nbr=$_POST['nbr'];
    $Date=$_POST['MyDate'];
    $Debut = $_POST['heure_debut'];
    $Fin = $_POST['heure_fin'];
    $Objet = $_POST['objet'];
    $Nom = $_POST['nom'];
    $Penom = $_POST['prenom'];
    $Email = $_POST['email'];
    $Dep = $_POST['select_dep'];
     
     
    //Ajout de la réservation à la base de donnée
    //	Connexion à la base de donnée
    	 $db = mysql_connect('localhost', 'root', 'passroot')  or die('Erreur de connexion '.mysql_error()); 
    //	Selection de la base de donnée
    	mysql_select_db('gestion',$db)  or die('Erreur de selection '.mysql_error());  
    //	Requete SQL num_dep
    	$sql_dep="SELECT NUM_DEP FROM departement WHERE NOM_DEP=$Dep";
    	$result=mysql_query($sql_dep) or die ("Erreur select:".mysql_error()); 
    	$row = mysql_fetch_row($result);
    	$num_dep = $row[0]; 
    // 	Requete SQL ajout
    	$sql_add= "INSERT INTO reservation(NUM_SALLE, NUM_DEP,NOMBRE_PARTICIPANT,DEBUT,FIN,OBJET,EMAIL,NOM,PRENOM) 
    	VALUES($num_salle,$num_dep,$nbr,'$Debut','$Fin','$Objet','$Email','$Nom','$Prenom')"; 
     
    // 	Insertion dans la table
    	mysql_query($sql_add) or die('Erreur SQL !'.$sql_add.'<br>'.mysql_error()); 
    //	Fermeture de la connexion
    	mysql_close(); 
    //Redirection vers la page d'accueil
    	@header("Location: http://accueil.html");
    ?>
    J'ai exécuter à partir du formulaire, ça ne redirectionne pas vers la page d'accueil et ça n'enregistre pas dans la base!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. remplir les données à partir d'un formulaire
    Par hafcher dans le forum Langage
    Réponses: 7
    Dernier message: 17/06/2008, 14h18
  2. [MySQL] Insérer des données à partir d'un formulaire
    Par super-java dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/10/2007, 11h01
  3. Réponses: 3
    Dernier message: 25/07/2007, 16h48
  4. Réponses: 12
    Dernier message: 26/04/2007, 11h38
  5. Insertion de données à partir d'un formulaire
    Par zeugzeug dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/04/2007, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo