Probleme d'enregistrement dans la bd

Fermé
ghisloy Messages postés 89 Date d'inscription mercredi 12 novembre 2014 Statut Membre Dernière intervention 1 août 2016 - Modifié par ghisloy le 17/02/2015 à 15:37
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 17 févr. 2015 à 16:47
j'essaye de mettre le champ newsletters sur mon site afin récupérer les mail pour une éventuelle campagne... voici le code php que j'ai écris mais quand je saisi le mail sur le site, cela ne va pas dans la bd. qu'est ce qui n'a pas marché.Aidez moi à corriger le code


<?php
         
           // Si le formulaire a été envoyé
if (isset ($_POST['OK']))
{
 
 // Si le champs est vide, lancer une erreur
 if (empty ($email))
  $info = 'Veuillez saisir votre adresse mail';
 else
 {
  // Connexion à la bdd
  mysql_connect("localhost", "root","") or die("Echec de connexion au serveur.");; // Connexion à MySQL
  mysql_select_db("feroxmusic") or die("Echec de sélection de la base.");; // Sélection de la base coursphp
 
  // Insertion dans la bdd
  $query = "INSERT INTO newsletters (mail) VALUES('$email')";
 
  if (mysql_query($query))
   $info = 'Inscription fait avec succès';
  else
   $info = 'Erreur lors de votre inscription';
 
  //mysql_close();
 }
}
 
  ?>



et voici le code du champs newsletter:

<p>
                <label for="Abonnement">Abonnez-vous :</label>
                
                <input type="email"  autofocus="autofocus" name="email"  border="2" id="" placeholder="entrez votre mail..."  size="17" maxlength="35" autocomplete="on"/> 
                <input type="submit" name="submit" value="OK" />
                </p>


merci

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
17 févr. 2015 à 16:47
Salut,

Pas mal de choses à corriger, en vrac :
- pas de balise form pour ton formulaire ?
- la variable $_POST['OK'] n'existe pas car l'attribut name de ton input est 'submit' et non 'OK' : à remplacer par $_POST['submit']
- la variable $email n'existera pas (sauf si l'option register_globals est activée, ce qui est fortement déconseillé) : à remplacer par $_POST['email'] (pour récupérer la valeur de ton input avec name="email")
- erreur de syntaxe sur les lignes de connexion à la bdd : tu ne dois avoir qu'un seul point-virgule en fin de ligne
- ta requête comprend un risque d'injection sql, utiliser la fonction mysql_real_escape_string() pour éviter cela :
$query = "INSERT INTO newsletters (mail) VALUES('" . mysql_real_escape_string($_POST['email']) . "')";


Enfin pour t'aider à trouver les erreurs en développement, pense à activer l'affichage des erreurs php.

Bonne journée
0