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

Fermé
ghisloy Messages postés 89 Date d'inscription mercredi 12 novembre 2014 Statut Membre Dernière intervention 1 août 2016 - Modifié par baladur13 le 9/12/2015 à 23:43
 Utilisateur anonyme - 3 déc. 2015 à 16:45
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

2 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
3 déc. 2015 à 12:59
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
3 déc. 2015 à 14:09
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 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
3 déc. 2015 à 15:36

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
3 déc. 2015 à 16:45
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