Probléme d'intégration dans la base de donnée

Résolu
Bonjour,
Je programme actuellement un script en php sensé intégrer une adresse e-mail dans une base de donnée après l'avoir vérifié.
Au niveau du script tout va bien mais au niveau de la base de donnée, l'adresse e-mail n'est pas enregistrée.
Voici mon code :

*****************************************************************************

***Le formulaire***

<form action="inscription.php" method="post">
<label>Newsletter :</label>
<input size="20" name="mail" type="text">
<input name="send" type="submit" value="S'inscrire" />
</form>

***Le script PHP***

<?php
//On se connecte à la base de donnée
mysql_connect("server", "base", "mdp");
mysql_select_db("nom_base");

//On vérifie si le formulaire a bien été remplie
if (isset($_POST['mail']) && !empty($_POST['mail']))
{
// on teste la validite de l'adresse mail
if (!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$", $_POST["mail"]))
{
$message = "Votre adresse e-mail n'est pas valide";
}

//Sinon on vérifie si l'adresse e-mail existe dans la base
else{
$sql = 'SELECT count(*) FROM mail WHERE mail="'.$_POST['mail'].'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

if ($data[0] != 0)
{
$message = "Cette adresse existe déja dans la base de données.";
}

//Si l'adresse e-mail est valide et n'existe pas encore alors on l'insére dans la base
else{
$sql = 'INSERT INTO mail VALUES ("", "'.$_POST['mail'].'")';

$message = "Votre mail a bien été enregistré. Merci de vous être inscrit à la newsletter.";
}

}

}
else
{
$message = "Veuillez entrer votre adresse e-mail SVP!";
}
mysql_close();
?>

************************************************************************
Ma base quand à elle comprend 2 champs (id et mail).
Je vous remercie d'avance pour vos solutions
Configuration: Windows XP
Firefox 2.0.0.13

6 réponses

  1. Il faudrait que tu exécute ta requête d'insertion : mysql_query(de ta requete) or die ...
    0
    1. je viens d'essayer avec :

      *******************

      //Si l'adresse e-mail est valide et n'existe pas encore alors on l'insére dans la base
      else{
      mysql_query("INSERT INTO mail VALUES ("", "$_POST['mail']")")
      OR DIE('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

      $message = "Votre mail a bien été enregistré. Merci de vous être inscrit à la newsletter.";
      }

      *************************

      mais ça me donne une réponse du genre

      *************************

      Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/content/d/y/m/dymaconfection/html/inscription.php on line 28

      *************************
      0
      1. C'est laquelle la ligne 28 ?
        0
        1. En effet c'est la ligne 28
          0
      2. Tu as des problèmes dans les paires de guillemets. Essaye :
        mysql_query( "INSERT INTO mail VALUES ( '', '" . $_POST['mail'] . "')" )
        	OR DIE('Erreur SQL !<br />' . $sql . '<br />' . mysql_error() );
        


        le paramètre de die est étrange : qu'est-ce-que c'est que $sql ?
        0
        1. Merci de votre aide elle m'a été précieuse je viens de trouver la solution grâce à vous

          il fallait mettre :

          ***********************************

          //Si l'adresse e-mail est valide et n'existe pas encore alors on l'insére dans la base
          else{
          mysql_query("INSERT INTO mail VALUES ('', '$mail')")
          OR DIE('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

          $message = "Votre mail a bien été enregistré. Merci de vous être inscrit à la newsletter.";
          }

          *****************************

          Et tout marche encore une fois Merci
          0
      3. Pense à mettre ton problème en résolu merci !
        0
        1. C'est déjà fait

          A bientôt et encore une fois merci
          0
      4. Désolé quand je l'ai écris ce n'a l'était pas encore jusqu'à ce que je revienne sur la page !
        0