Bonjour à toutezéatous,
Je fais un formulaire avec saisie (pour faire simple) :
- d'un nom,
- d'un prénom,
- d'un email,
- d'un champ textearea.
L'intégrité des données est vérifiée grace à une fonction javascript.
Je propose le choix entre :
- poser une question,
- s'inscrire à la news.
Lorsque le visiteur choisit de s'inscrire, je rentre ses info dans une BdD dont le 1er champ est une clé, auto-incrémentée de type samllint. J'ai également un champ de type date qui récupère la date du jour.
Ma base est InnoDB, Latin1_swedish_ci, MySQL: 5.0
Lorsque le visiteur choisit de poser une question, j'utilise la fonction mail() pour m'envoyer les infos du fomulaire.
Tout cela semble très simple et pourtant...
1- L'insertion de mon enregistrement ne fonctionne pas.
J'ai lu la doc de reférence et le différents messages du forum sans trouver mon bonheur...
j'ai vérifié que ma connection était ok avec quelque chose de le genre :
$link = mysqli_connect($host,$login,$pwd,$bd);
if ( !($link) ) ... // je teste si connexion est ok => elle l'est !
Voici ma requète :
$sql = "INSERT INTO paneliste (num, nom, prenom, email, date_inscr, comment)";
$sql .= " VALUES ('', '".$_POST['nom']."', '".$_POST['prenom']."', '".$_POST['email']."', NOW() , '".$_POST['comment']."')";
echo $sql;
$result = mysqli_query($link,$sql);
if ( !($result ) ) ... // je teste si requète est ok => elle ne l'est pas, mais je ne récupère aucun message d'erreur avec mysqli_error()
Je fais un copier de mon "echo $sql" qui m'a l'air correct, je vais dans phpadmin, je lance le sql et il me dit :
Code : Tout sélectionner
#1366 - Incorrect integer value: '' for column 'num' at row 1.
Apparemment il n'aime pas que je lui envoie une valeur nulle... Si je force la valeur à 2 par exemple, ça passe, mon enregistrement est bien inséré... j'ai beau vérifier tout ce que je pourrai vérifier : structure de table, etc, je ne vois rien... Quelqu'un aurait-il une idée ?
Mon autre pb est que je ne récupère pas les retours à la ligne dans mon champ commentaire dans la base, alors que tout va bien avec les accents et autres caractères spéciaux... J'ai pensé que si j'identifiais le retour chariot dans le textearea et que je le remplaçais par "\n" ça pourrait le faire non ?
Je vous garde en réserve mon 3eme problème ;o))
Merci de m'avoir lue, j'espère avoir été assez claire... Je suis prète à étudier toutes les pistes que vous me suggérerez ;o))
A bientôt
Karpediem