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

Résolu/Fermé
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 - 7 avril 2008 à 14:17
oliver.55 Messages postés 84 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 19 juin 2008 - 7 avril 2008 à 15:36
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

6 réponses

oliver.55 Messages postés 84 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 19 juin 2008 12
7 avril 2008 à 14:20
Il faudrait que tu exécute ta requête d'insertion : mysql_query(de ta requete) or die ...
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
7 avril 2008 à 14:35
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
oliver.55 Messages postés 84 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 19 juin 2008 12
7 avril 2008 à 14:42
C'est laquelle la ligne 28 ?
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
7 avril 2008 à 14:44
En effet c'est la ligne 28
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
7 avril 2008 à 14:47
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
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
7 avril 2008 à 14:50
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

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

Posez votre question
oliver.55 Messages postés 84 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 19 juin 2008 12
7 avril 2008 à 14:57
Pense à mettre ton problème en résolu merci !
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
7 avril 2008 à 14:58
C'est déjà fait

A bientôt et encore une fois merci
0
oliver.55 Messages postés 84 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 19 juin 2008 12
7 avril 2008 à 15:36
Désolé quand je l'ai écris ce n'a l'était pas encore jusqu'à ce que je revienne sur la page !
0