Inscription à une news => pb champ auto-incrémenté

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Inscription à une news => pb champ auto-incrémenté

par karpediem » 08 oct. 2007, 23:07

Merci pour ton aide précieuse.

ça ne fonctionne toujours pas... Demain je contacte mon hébergeur...

Encore un grand MERCI pour cet échange !

Excellente soirée.

Karpédiem

par @rthur » 08 oct. 2007, 22:59

Fais une page vierge avec juste le code suivant:
<?php
mail('[email protected]','Sujet de test', 'Message de test')
?>
Si ça ne marche pas:
1) Essaye avec une autre adresse e-mail (on ne sait jamais avec les antispam)
2) Si le pb persiste, contacte ton hébergeur

par karpediem » 08 oct. 2007, 22:44

Mon code est tout simple d'autant que je l'ai épuré au fur et à mesure pour le cas où je lui enverrai des inepties...
$from  = '[email protected]';
$message      = 'ceci est un test';
$entetemail ='Content-Type: text/plain; charset="iso-8859-1"'; 

if ( mail($from,'Questionnaire news', $message, $entetemail))
{ 
	echo "<br />mail ok<br />$message";
}
else
{
	echo "<br />mail pas ok<br />$message";
}
Peut-être qu'à force d'épurer j'ai ôté des info fondamentales ;-(

Voilà... c'est tout bête non ?

par @rthur » 08 oct. 2007, 22:35

Bah montre nous un extrait de ton code qu'on puisse voir les paramètres que tu lui passe...
Sinon, contact ton hébergeur :)

par karpediem » 08 oct. 2007, 22:15

il n'y a pas de message d'erreur ;o)) non, ce n'est pas une blague ;o))

je teste

Code : Tout sélectionner

if ( ! (mail())) echo "message d'erreur : mail pas ok...";
lorsque je vérifie dans ma boite, je n'ai effectivement rien...

trop cool le nl2br(), c'est axactement ça !

par @rthur » 08 oct. 2007, 22:09

Bonjour,

On va faire précis et concis:

1) http://fr.php.net/nl2br
2) Quel est le message d'erreur?

par karpediem » 08 oct. 2007, 22:02

tu sais quoi ?

j'ADORE ce forum !! hyper réactif et toujours de bonnes solutions ! En plus, on ne se moque pas de ceux et celles qui posent des questions stupides ;o))

ça MARCHE !!!!

C'était bien ça... c'est vrai que lorsqu'on y réfléchit, c'est logique ;o))

Je peux poser mes 2 autres questions ?

1 - Comment faire pour récupérer lors de mon insertion dans le champ "comment" les retours à la ligne ? ce n'est pas fondamental, mais pour la lecture des info ça sera toujours plus lisible...

2 - Lorsque j'envoie mon mail, même en l'épurant au max, j'ai une erreur... je crois que c'est peut-être parce que la fonction mail n'a pas été activée... je peux toujours contacter mon fournisseur, mais est-ce que j'ai le moyen de le vérifier ?

Encore un grand MERCI pour cette première réponse EXCELLENTE !

@ bientôt

Karpediem

par Tracker » 08 oct. 2007, 20:53

Salut,
Vire le premier champ dans ton insert, c'est la clé, elle est auto-incrémentée donc n'a pas à figurer lors de l'insertion.

Inscription à une news => pb champ auto-incrémenté

par karpediem » 08 oct. 2007, 20:48

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