Envoi resultat requete dans la BDD

Fermé
Alex_00 Messages postés 35 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 novembre 2013 - 7 janv. 2011 à 10:13
Alex_00 Messages postés 35 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 novembre 2013 - 10 janv. 2011 à 16:54
Bonjour,

Encore et toujours un problème ...

Maintenant je n'arrive pas a envoyer le résultat d'une requête INSERT dans ma BDD

voila le code et l'erreur du script recup.php

<?php
mysql_connect("localhost","root","" );
mysql_select_db("gfgsystems" );
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$societe = $_POST['societe'];
$mail = $_POST['mail'];
$message = $_POST['message'];
$requete = INSERT INTO contact ('id_contact', 'nom_contact', 'prenom_contact', 'societe_contact', 'mail', 'message_contact') VALUES("", "$nom", "$prenom", "$societe", "$mail", "$message");
mysql_query($requete);
mysql_close();
?>



Parse error: syntax error, unexpected T_STRING in C:\Program Files\EasyPHP-5.3.3\www\Site Web\recup.php on line 9


J'ai créé un formulaire et ce code doit récupérer ce qu'il y a dans le formulaire

<form name="form1" method="post" action="recup.php">
  <div align="left">
  <table border="0" cellpadding="5" cellspacing="0"
 width="380">
    <tbody>
      <tr>
        <td height="25" width="61">
        <div align="right">
        <p class="textePetit" align="left">Nom* :</p>
        </div>
        </td>
        <td colspan="2"><input name="nom"
 class="boiteFormulaire" onfocus="this.value=''"
 value="Votre nom" size="30" /></td>
      </tr>
      <tr>
        <td height="25" width="61">
        <div align="right">
        <p class="textePetit" align="left">Prénom*
:</p>
        </div>
        </td>
        <td colspan="2"><input name="prenom"
 class="boiteFormulaire" onfocus="this.value=''"
 value="Votre prénom" size="30" /></td>
      </tr>
      <tr>
        <td height="25" width="61">
        <div align="right">
        <p class="textePetit" align="left">Société
:</p>
        </div>
        </td>
        <td colspan="2"><input name="societe"
 class="boiteFormulaire" size="30" /></td>
      </tr>
      <tr>
        <td height="20">
        <div align="right">
        <p class="textePetit" align="left">Email* :</p>
        </div>
        </td>
        <td colspan="2"><input name="mail&quot;"
 class="boiteFormulaire" onfocus="this.value=''" size="30"
 value="@" /></td>
      </tr>
      <tr>
        <td valign="top">
        <div align="right">
        <p class="textePetit" align="left">Message*:</p>
        </div>
        </td>
        <td colspan="2"><textarea name="commentaires"
 cols="55" rows="10" class="boiteFormulaire"
 onfocus="this.value=''">Votre message </textarea></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td width="1">&nbsp;</td>
        <td width="288">
        <div align="right"> <input name="submit"
 class="boiteFormulaire" value="Envoyer" type="submit" /></div>
        </td>
      </tr>
    </tbody>
  </table>
  </div>
  <div style="width: 100%;" class="center"> <span
 class="TexteGris italique"> Les champs suivis d'une * sont
obligatoires. </span><br />
  </div>
</form>


Merci pour votre aide

7 réponses

duweb Messages postés 352 Date d'inscription dimanche 30 mai 2010 Statut Membre Dernière intervention 6 mars 2014 72
7 janv. 2011 à 11:08
essaye déjà comme ca :
INSERT INTO contact (id_contact, nom_contact, prenom_contact, societe_contact, mail, message_contact) VALUES("", $nom, $prenom, $societe, $mail, $message);
0
Alex_00 Messages postés 35 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 novembre 2013 1
7 janv. 2011 à 11:19
j'ai trouvé la solution :)

mais maintenant j'aimerais tester que certains champs ne soient pas vides
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
7 janv. 2011 à 18:19
Salut.

En PHP, une requête SQL est une chaine comme une autre, donc il faut l'entourer de guillemets (doubles ou simples).

Pour vérifier si un champ n'est pas vide, tu peux utiliser la fonction empty($var).
Elle retourne true si la longueur de $var est égale à 0.
Si tu veux mettre une longueur minimale, il faudra utiliser strlen($var) qui retourne la longueur de $var.

Avant d'utiliser les variables POST, vérifie qu'elles existent avec isset($var)
0
Alex_00 Messages postés 35 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 novembre 2013 1
10 janv. 2011 à 15:24
Je n'y arrive toujours pas avec le test des champs vide ou nom

:@

quelque aurais t'il une solution, lorsque l'on clique sur envois, si certains champs sont vides qu'un message d'erreur apparaisse et redirige vers le formulaire sans enregistrer les éléments faux dans la base ???

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
10 janv. 2011 à 16:28
J'ai déjà expliqué comment vérifier si un champ est vide ou pas ...

Si tu veux un autre conseille, je te propres d'utiliser une liste (array simple) pour stocker les messages, comme ceci :

<?php
$errors = array();

$nom = isset($_POST['nom']) ? trim($_POST['nom']) : '';
$prenom = isset($_POST['prenom']) ? trim($_POST['prenom']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';

// Vérification du Nom
if(strlen($nom) < 3) {
    $errors[] = 'Le nom doit contenir 3 caractères.';
}

// Vérification du Prenom
if(strlen($prenom) < 3) {
    $errors[] = 'Le prénom doit contenir 3 caractères.';
}

// Vérification de l'adresse email
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $errors[] = 'L\'adresse email est invalide.';
}

// Autres verifications


if(count($errors)) > 0) {
    // S'il y a des erreurs : on les affiche
    echo '<div class="errors">';
    foreach($errors as $error) {
        echo $error.'<br/>';
    }
    echo '</div>';
} else {
    // S'il n'y a pas d'erreur : insertion dans la base
    $sql ='INSERT INTO table(nom,prenom,email) VALUES(
        "'.mysql_real_escape_string($nom).'",
        "'.mysql_real_escape_string($prenom).'",
        "'.$email.'"
    )';

    //...
}
0
Alex_00 Messages postés 35 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 novembre 2013 1
10 janv. 2011 à 16:43
Je pense pouvoir m'en sortir avec ce code

Merci pour ton aide
0
Alex_00 Messages postés 35 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 novembre 2013 1
10 janv. 2011 à 16:54
ça ne marche toujours pas :@

je comprend pas, c'est bien dans le script php du haut qu'il faut mettre le verification des champs vides ?

est-ce qu'il faut que je change l'extension la ou il y a mon formulaire ???
0