Pb inscription dans base de donnée
Résolu
leuntout
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je met en place une newsletter sur mon site. j'ai une page inscription.php qui entre en jeu après la saisie de l'adresse mail, pour la validation et l'inscription sans la base de donnée. Tout semble fonctionner sauf que quand je me rend sur la bdd, elle est vide, aucune adresse mail n'est enregistrée.
Voici la partie du script concerné :
<?php
if($_GET['tru']==1) //si la variable $_GET['tru'] est égale à 1
//on affiche le formulaire
{
?>
<font color="red">Attention, vous avez 25 secondes pour remplir le formulaire. Passé ce délai, celui-ci ne sera plus validePassé ce délai, celui-ci ne sera plus valide.</font>
<form method="post" action="inscription.php?tru=2">
Entrez votre e-mail : <input type="text" name="email" size="25" /><br />
<input type="submit" value="Envoyer" name="submit" /> <input type="reset" name="reset" value="Effacer" />
</form>
<?php
}
elseif($_GET['tru']==2) //sinon, si la variable $_GET['tru'] est égale à 2
{
mysql_connect("***", "***", "***");
mysql_select_db("***");
$email_mail = mysql_real_escape_string($_COOKIE['email']);
$email_entre = mysql_real_escape_string($_POST['email']);
if($email_entre==$email_mail) //si les deux adresses e-mail sont identiques
{
mysql_query("INSERT INTO newsletter VALUES('" . $email_entre . "')"); //on l'inscrit dans la base de données MySQL
echo "Vous avez bien été inscrit à la newsletter de Rémunérez-moi.com ! Vous allez être redirigé dans 1 seconde.";
}
else
{
echo "Vous n'avez pas entré la bonne adresse e-mail !";
}
}
else
{
echo "Il y a eu une erreur.";
}
?>
Merci de m'éclairer, je suis novice et ai du mal avec le php
Je met en place une newsletter sur mon site. j'ai une page inscription.php qui entre en jeu après la saisie de l'adresse mail, pour la validation et l'inscription sans la base de donnée. Tout semble fonctionner sauf que quand je me rend sur la bdd, elle est vide, aucune adresse mail n'est enregistrée.
Voici la partie du script concerné :
<?php
if($_GET['tru']==1) //si la variable $_GET['tru'] est égale à 1
//on affiche le formulaire
{
?>
<font color="red">Attention, vous avez 25 secondes pour remplir le formulaire. Passé ce délai, celui-ci ne sera plus validePassé ce délai, celui-ci ne sera plus valide.</font>
<form method="post" action="inscription.php?tru=2">
Entrez votre e-mail : <input type="text" name="email" size="25" /><br />
<input type="submit" value="Envoyer" name="submit" /> <input type="reset" name="reset" value="Effacer" />
</form>
<?php
}
elseif($_GET['tru']==2) //sinon, si la variable $_GET['tru'] est égale à 2
{
mysql_connect("***", "***", "***");
mysql_select_db("***");
$email_mail = mysql_real_escape_string($_COOKIE['email']);
$email_entre = mysql_real_escape_string($_POST['email']);
if($email_entre==$email_mail) //si les deux adresses e-mail sont identiques
{
mysql_query("INSERT INTO newsletter VALUES('" . $email_entre . "')"); //on l'inscrit dans la base de données MySQL
echo "Vous avez bien été inscrit à la newsletter de Rémunérez-moi.com ! Vous allez être redirigé dans 1 seconde.";
}
else
{
echo "Vous n'avez pas entré la bonne adresse e-mail !";
}
}
else
{
echo "Il y a eu une erreur.";
}
?>
Merci de m'éclairer, je suis novice et ai du mal avec le php
A voir également:
- Pb inscription dans base de donnée
- Wetransfer gratuit sans inscription - Guide
- Base de registre - Guide
- Twitter inscription - Guide
- Vinted inscription - Guide
- Paypal inscription - Guide
9 réponses
Bonjours.
Moi je mets la requête SQL dans une variable et pas entre les () de mysql_query. Exemple :
$sql = "INSERT INTO newsletter VALUES('','".$champ1."','".$champ2."')";
$req = mysql_query($sql) or die ('Erreur SQL : <br/>'.$sql.'<br/><br/>'.mysql_error());
En espérant que je t'ai aidé ;-)
Moi je mets la requête SQL dans une variable et pas entre les () de mysql_query. Exemple :
$sql = "INSERT INTO newsletter VALUES('','".$champ1."','".$champ2."')";
$req = mysql_query($sql) or die ('Erreur SQL : <br/>'.$sql.'<br/><br/>'.mysql_error());
En espérant que je t'ai aidé ;-)
Salut!
J'ai bien modifié selon tes conseils et toujours rien, 0 enregistrements dans la bdd...
j'utilise phpmyadmin. Si tu vois autre chose...
Merci
J'ai bien modifié selon tes conseils et toujours rien, 0 enregistrements dans la bdd...
j'utilise phpmyadmin. Si tu vois autre chose...
Merci
Est-tu sur que tu oublie aucun champs dans VALUES ? Par exemple si tu as un champ nommé "id" en auto incrémentation, tu dois comme même le mettre dans la liste VALUES et respecter l'ordre
voici le code que j'utilise pour inscrire dans la base de donnée :
mysql_query("INSERT INTO newsletter VALUES('" . $email_entre . "')");
Ma base se constitue comme ceci :
Nom : rem_newsletter
Table : newsletter
Champ : email
L'ouverture de ma base est : mysql_select_db("rem_newsletter");
Je dois préciser la table dedans? normalement elle est dans la ligne que je cite plus haut.
Merci
mysql_query("INSERT INTO newsletter VALUES('" . $email_entre . "')");
Ma base se constitue comme ceci :
Nom : rem_newsletter
Table : newsletter
Champ : email
L'ouverture de ma base est : mysql_select_db("rem_newsletter");
Je dois préciser la table dedans? normalement elle est dans la ligne que je cite plus haut.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok.
Essaye :
<?php
mysql_connect('ton serveur SQL','Ton login','Ton passe');
mysql_select_db('rem_newsletter');
$sql = "INSERT INTO newsletter VALUES('".$email_entre."')";
$req = mysql_query($sql) or die('Erreur SQL : <br/>'.$sql.'<br/><br/>'.mysql_error());
mysql_close();
?>
Soit ça fonctionne : tant mieux
Sinon, SQL doit renvoyer une erreur qui s'affiche à la place du code et donc montre la ...
Essaye :
<?php
mysql_connect('ton serveur SQL','Ton login','Ton passe');
mysql_select_db('rem_newsletter');
$sql = "INSERT INTO newsletter VALUES('".$email_entre."')";
$req = mysql_query($sql) or die('Erreur SQL : <br/>'.$sql.'<br/><br/>'.mysql_error());
mysql_close();
?>
Soit ça fonctionne : tant mieux
Sinon, SQL doit renvoyer une erreur qui s'affiche à la place du code et donc montre la ...
Super,ca marche!!!
Est ce que tu peux juste m'expliquer le petit changement?
que je puisse le mettre à profit pour d'autres choses.
En tout cas, merci beaucoup d'avoir pris le temps!!!
Bonne soirée
Est ce que tu peux juste m'expliquer le petit changement?
que je puisse le mettre à profit pour d'autres choses.
En tout cas, merci beaucoup d'avoir pris le temps!!!
Bonne soirée
Déjà, j'ai mis la requête SQL dans une variable. La requête est entre les guillemets ("). Dé que je dois mettre une variable dans la requête, j'écris : apostrophe + guillemets + variable (sans oublier le . à gauche et à droite) + guillemets + apostrophe.
Je pense savoir d'où vient le problème dans ta requête :
mysql_query doit être dans une variable (du moins je pense) : $req = mysql_query ("ta requête") ...
Je pense savoir d'où vient le problème dans ta requête :
if($email_entre==$email_mail) //si les deux adresses e-mail sont identiques { mysql_query("INSERT INTO newsletter VALUES('" . $email_entre . "')"); echo "Vous avez bien été inscrit à la newsletter de Rémunérez-moi.com ! Vous allez être redirigé dans 1 seconde."; }
mysql_query doit être dans une variable (du moins je pense) : $req = mysql_query ("ta requête") ...