Script d'enregistrement dans base de donnée ne marche pas

ghisloy Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
j'essaye d enregistrer des infos dans une bd mais ca refuse peut importe comment j'ecris la requête et je ne vois pas l'erreur. veuillez m aider
<?php
//connexion a la bd
mysql_connect("127.0.0.1", "root", "") or die ("Erreur de connexion au serveur.");
mysql_select_db("estabat") or die ("Erreur. la base de donnée n’existe pas");
?>
<?php
    if(isset($_POST['button'])){
    // $identite  = $_POST["identite"];
    // $email     = $_POST["email"];
    // $objet     = $_POST["objet"];
    // $message   = $_POST["message"];
    
      //création de la requête SQL:
    $insertion = "INSERT INTO contacter SET nom='".$_POST['identite']."', mail='".$_POST['email']."', objet='".$_POST['objet']."', message='".$_POST['message']."' ";
 
  //exécution de la requête SQL:
  $resultat = mysql_query($insertion);
}
;?>

      


  <link rel="stylesheet" type="text/css" href="../../jscss/css/formulaire.css"/>
  
        <style type="text/css">
    @font-face {
        font-family: 'FontAwesome';
        src: url('../../jscss/fonts/fontawesome-webfont78ce.eot?v=4.2.0');
        src: url('../../jscss/fonts/fontawesome-webfontd41d.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../../jscss/fonts/fontawesome-webfont78ce.woff?v=4.2.0') format('woff'), url('../../jscss/fonts/fontawesome-webfont78ce.ttf?v=4.2.0') format('truetype'), url('../../jscss/fonts/fontawesome-webfont78ce.svg?v=4.2.0#fontawesomeregular') format('svg');
        font-weight: normal;
        font-style: normal;
    }
        </style>
            
   <div style="background:#FFF; z-index: 9999;"><div class="clearfix" style="width:680px; padding:0px 5px; margin-top:0px; text-align:left;">
            <div class="table centre" style="width:680px;"><div class="table-row">
            <div class="table-cell" style="width:675px; padding-top:5px;"><div style="width:inherit; display:block; clear:both">
    <div style="border:1px solid red; margin-right:65px;"><form name="ref_form" id="ref_form" class="formulaire" action="../../htdocs/Contact/index.php" enctype="application/x-www-form-urlencoded" method="POST" style="padding:0 3px 0 0px;">
    <input type="hidden" name="from" value="contacts" />
    <ul><li style="padding:12px 0 12px 5px;"><h2 style="font-size:21px; font-weight: bold;">Contactez-nous</h2>
         <span class="required_notification">* Champs requis</span>
    </li></ul>
    <ul>
        <li>
            <label class="label1" for="identite">Identité</label>
            <input style="width:380px; min-width:380px; max-width:380px; text-transform: uppercase;" name="identite" id="identite" value="" type="text" placeholder="Noms Prénoms" required />
        </li>
        <li>
            <label class="label1" for="email">E-mail</label>
            <input style="width:380px; min-width:380px; max-width:380px; text-transform: lowercase;" name="email" id="email" value="" type="email" placeholder="Adresse e-mail" required />
        </li>
        <li>
            <label class="label1" for="objet">Objet</label>
            <input style="width:380px; min-width:380px; max-width:380px;" name="objet" id="objet" value="" type="text" placeholder="Objet du message" required />
        </li>
    </ul>
    <div style="display:block; clear:both;"><table border="0" cellpadding="0" cellspacing="0">
        <tr><td width="590" valign="top" style="padding-left:5px; font-size:14px; padding-top:10px;"><b>Message à envoyer</b><br> 
        <textarea name="message" style="margin-left:0px; overflow:auto; width:590px; min-width:590px; max-width:590px; min-height:250px; max-height:250px; height:250px;" placeholder="Saisissez ici votre message" ></textarea></td></tr></table>
    </div>
    <ul style=" margin-top:10px;">
        <li style="display:inline; margin-left:200px;"><button class="submit" type="submit" style="width:200px; margin-bottom:10px;">Envoyez le message</button></li>
    </ul>
</form>






merci pour votre coup de main. il me sera très utile. Pub supprimée Modération CCM
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

 $insertion = "INSERT INTO contacter SET nom='".$_POST['identite']."', mail='".$_POST['email']."', objet='".$_POST['objet']."', message='".$_POST['message']."' ";

Ne confond pas la requête UPDATE et la requête INSERT

De façon "propre" une requete INSERT s'écrit :
 INSERT INTO matable (champ1,champx) VALUE('toto','titi')


de plus, il est préférable de récupérer proprement les variables AVANT de les utiliser

et enfin, ajoutes du debug en cas d'erreur (avec un or die)

Bref, ça devrait donner un truc du genre :

$identite = !empty($_POST['identite']) ? $_POST['identite']: '';
$email = !empty($_POST['email']) ? $_POST['email']: '';
$objet = !empty($_POST['objet']) ? $_POST['objet']: '';
$message = !empty($_POST['message']) ? $_POST['message']: '';

 $sql = "INSERT INTO contacter (nom,mail,objet,message) VALUE('$identite','$email','$objet','$message')";  
 
 /exécution de la requête SQL:
 $resultat = mysql_query($sql) or die("<br><b>ERREUR !</b><br>".mysql_error(). "<br><b>Requete :</b><br>".$sql);



NB: Attention toutefois.. tu utilises une vielles syntaxes (et extension..) de mysql.
Je t'invite à lire ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
0
Utilisateur anonyme
 
Bonjour

La syntaxe INSERT INTO table SET champ1=valeur1, champ2=valeur2 est parfaitement valide. Pas besoin de la changer.

Par contre, tu testes
if(isset($_POST['button']))
mais aucun champ ne s'appelle 'button'. Tu devrais tester un champ qui existe réellement dans ton formulaire.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

La syntaxe INSERT INTO table SET champ1=valeur1, champ2=valeur2 est parfaitement valide. Pas besoin de la changer.

Il n’empêche que cette syntaxe est "propre" à Mysql contrairement à celle que je donne qui est "standard" à SQL.
Autant prendre les bonnes habitudes.
Pour le reste, au niveau perf elles sont identiques.
0
Utilisateur anonyme
 
D'accord, mais à mon avis ghisloy a dû croire que c'était son erreur. Il aurait été préférable de lui indiquer clairement que ça n'allait pas résoudre son problème, pour lui éviter de perdre son temps à chercher pourquoi ça ne marche pas mieux.
0