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 :

pb insertion d'un enregistrement dans une table


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 32
    Points : 29
    Points
    29
    Par défaut pb insertion d'un enregistrement dans une table
    J'essaie d'insérer un enregistrement dans une table d'une base de données MySQL : formulaire HTML > Traitement PHP > Base de données.

    Je réutilise un code qui fonctionne, mais qui là ne fonctionne pas ! Je récupère les données du formulaire, je me connecte à la base... pas de message d'erreur. Mais quand je vérifie avec PHPMyAdmin, aucun enregistrement dans ma table.

    Voici le code du fichier censé écrire les données dans la table :
    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
     
    <?php
    $title= $_GET[title];
    $datetext= $_GET[date_event];
    $place= $_GET[place];
    $linkplace= $_GET[link_place];
    $website= $_GET[web_site];
    $linkwebsite= $_GET[web_site_link];
    $describe= $_GET[describe];
    $type= $_GET[type];
     
     
    $sql="INSERT INTO event (title, datetext, place, linkplace, website, linkwebsite, describe, type) VALUES ( '".addSlashes($title)."' , '".addSlashes($datetext)."' , '".addSlashes($place)."' , '".addSlashes($linkplace)."' , '".addSlashes($website)."' , '".addSlashes($linkwebsite)."' , '".addSlashes($describe)."' , '".addSlashes($type)."' )";
     
    $db = mysql_connect("XXXXX", "XXXXXXX", "XXXXXXXXX")
       or die("Impossible de se connecter : " . mysql_error());
     
    mysql_select_db('XXXXXXXXX',$db);
    mysql_query($sql);
    $mel = "postmaster@lokazionel.fr";
    $sujet = "Un nouvel événement sur Lokazionel";
    $message = " Event : { $title}, Date : { $date_event}, Place : { $place}, linkplace : { $linkplace}, Website : { $website}, Linkwebsite : { $linkwebsite}, describe : { $describe}, Type : { $type}";
    mail($mel, $sujet, $message,  "From: Lokazionel.fr <postmaster@lokazionel.fr>\r\n");
     
    echo '<font face="times" color="#000000" size="+1">
    ';
    echo 'Votre événement a bien été enregistré.';
    echo 'Your event is registred.';
    echo '</font>
    ';
    ?>
    J'ai utilisé une fonction mel, juste pour voir si mes variables sont récupérées dans le fichier. Elles le sont mais ne s'enregistre pas dans la base de données.

    Si vous avez des idées, je suis preneur. Merci d'avance !

    Allen Blocci
    www.lokazionel.fr

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Salut,

    Essaye de voir dans ton fichier d'erreur php (il faut peut être le configurer dans le php.ini section "error_reporting") Tu pourra du coup utiliser la fonction error_log() qui écrit dans le fichier d'erreur. Déjà ca va t'éviter de faire un mail pour cela, et aussi tu pourras faire un error_log($sql) et essayer directement d'exécuter la requête qui est générée dans ton code.

    Perso j'ai un doute sur addSlashes, moi je l'utilise comme ca : addslashes() -pas de S majuscule-

    Une dernier point regarde la lib PDO, elle propose une méthode Quote() qui fait sécurise mieux les variables que addslashes (addslashes ne suffit pas)

    Bon courage.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    Merci pour tes indications.

    En ce qui concerne mon problème, j'ai réussi à insérer mon enregistrement avec cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql="INSERT INTO `nomdelabase`.`event` (
    `title` ,
    `datetext` ,
    `place` ,
    `linkplace` ,
    `website` ,
    `linkwebsite` ,
    `describe` ,
    `type`
    )
    VALUES ( '".addslashes($title)."' , '".addslashes($datetext)."' , '".addslashes($place)."' , '".addslashes($linkplace)."' , '".addslashes($website)."' , '".addslashes($linkwebsite)."' , '".addslashes($describe)."' , '".addslashes($type)."' )";
    Ce que je ne comprends pas c'est que mon autre script (sans le nom de la base dans l'INSERT INTO) fonctionne très bien...

    Merci bcp

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/07/2015, 11h17
  2. Réponses: 2
    Dernier message: 29/10/2008, 15h31
  3. Réponses: 3
    Dernier message: 23/11/2006, 16h45
  4. Réponses: 2
    Dernier message: 05/06/2006, 14h24
  5. AJOUT d'un ENREGISTREMENT dans UNE TABLE
    Par ramo dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/08/2005, 16h24

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