Formulaire php et mysql

Nouveau WRInaute
Bonjour !

J'ai trouvé un tuto que je trouve pas mal pour mon cas ici : http://www.6ma.fr/tuto/faire+formulaire+php+html+css+sur+3-179

Je demande de l'aide ici d'une part parce que je commence à y avoir mes "habitudes", d'autre part parce que le forum du lien plus haut n'a pas l'air très actif.

Je l'ai un peu adapté (un peu parce que je n'y connais pas grand chose), ce qui donne :

Code:
<?php
// Parametres mysql
define('DB_SERVER', 'localhost'); // serveur mysql
define('DB_SERVER_USERNAME', '*****'); // nom d'utilisateur
define('DB_SERVER_PASSWORD', '*****'); // mot de passe
define('DB_DATABASE', 'formulaire'); // nom de la base

// Connexion au serveur mysql
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);

//Vérification du remplissage des champs
$msg_erreur = "Erreur ! Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte";
$message = $msg_erreur;

if (empty($_POST['nom_prenom']))
  $message .= "Nom, Prénom<br/>";
if (empty($_POST['adresse']))
  $message .= "Adresse<br/>";
if (empty($_POST['telephone']))
  $message .= "Téléphone<br/>";
if (empty($_POST['mail']))
  $message .= "Adresse Mail<br/>";
if (empty($_POST['besoin']))
  $message .= "Besoins<br/>";

//Protection des données
else {
}
  foreach($_POST as $index => $valeur) {
    $$index = mysql_real_escape_string(trim($valeur));
  }

//Insertion des données dans la table
  $sql = "INSERT INTO formulaire VALUES ('', '".$societe."', '".$nom_prenom."', '".$adresse."', '".$telephone."', '".$mail."', '".$besoin."', '".$newsletter."', now())";
  $res = mysql_query($sql);

  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
 } 
?>

Mes problèmes sont les suivants :
1. Le champ "Besoin" ne se remplit pas.
2. Apparemment la fonction pour vérifier si les champs sont tous remplis ne fonctionne pas.
3. J'ai aussi un champ "Datetime" dans la table qui n'affiche que des zéros.

Merci de votre aide

Sandra
 
WRInaute passionné
Utilise pour ta requête la forme :
INSERT INTO taTable (colone1, colone2, ...) VALUES ('value1', 'value2')
pour éviter certains soucis déjà (avec des values qui corresponde à l'ordre des colonnes bien sûr).

Ta fonction créé un message mais ne fait aucune vérification au final.

Fais plutôt :
Code:
  $enErreur = false;
if (empty($_POST['nom_prenom'])) {
  $message .= "Nom, Prénom<br/>"; 
  $enErreur = true;
}
et au moment de lancer ta requête test si tu as une erreur :
Code:
if (!$enErreur)
{
 // ta requete
} else {
 echo $message;
}

(sinon c'est assez moche comme code je trouve)
 
Nouveau WRInaute
Bonjour,

Certains champs ne se remplissent toujours pas... et c'est vrai que le code est pas génial finalement...

Je crois que je vais utiliser un simple formmail pour le moment.

Si vraiment le besoin de stocker dans une bdd se pointe, je reposterai.

Merci quand même de la réponse

Sandra
 
WRInaute accro
faudrait voir le formulaire (si il faut tu n'as tout simplement pas de champ "besoin" dans ton formulaire)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut