Formulaire de contact
Résolu
flo39400
Messages postés
596
Date d'inscription
Statut
Membre
Dernière intervention
-
flo39400 Messages postés 596 Date d'inscription Statut Membre Dernière intervention -
flo39400 Messages postés 596 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila j'ai envie de mettre une section contact afin que les utilisateurs puisse contacter les modérateurs ou administrateur du site.
J'ai un léger problème a envoyer cela dans la base de données.
J'ai des codes erreur :
_Notice: Undefined variable: mail in C:\wamp64\www\2017\contact.php on line 14
_Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Champ 'message' inconnu dans field list' in C:\wamp64\www\2017\contact.php on line 14
_PDOException: SQLSTATE[42S22]: Column not found: 1054 Champ 'message' inconnu dans field list in C:\wamp64\www\2017\contact.php on line 14
Voici la table "message" en détail:
_id / int(11) / / AI / primary
_pseudo / varchar(255) / NULL
_mail / varchar(40)
_date_heur / datetime
_ip_uttilisateur / varchar(255)
_traitement / varchar(11) / NON
Merci d'avance.
Voila j'ai envie de mettre une section contact afin que les utilisateurs puisse contacter les modérateurs ou administrateur du site.
J'ai un léger problème a envoyer cela dans la base de données.
<?php include("CObdd.php"); include_once('cookieconnect.php'); include('/ban_site/bann_ip.php'); if(isset($_POST['submit_message'])) { if(isset($_POST['message']) AND !empty($_POST['message']) AND ($_POST['mail']) AND !empty($_POST['mail']) OR !empty($_SESSION['pseudo'])) { $message = htmlspecialchars($_POST['message']); $ins = $bdd->prepare('INSERT INTO message (pseudo, message, mail, ip_uttilisateur, date_heur) VALUES (?, ?, ?, ?, NOW())'); $ins->execute(array($_SESSION['pseudo'],$message,$mail,$user_ip)); $msg = "<span style='color:red'>Votre message a bien été envoyer !</span>"; } } ?> <!DOCTYPE html> <html> <head> <title>Bienvenue <?php if(!empty($_SESSION['id'])) { echo $_SESSION['pseudo']; } else {?> uttilisateur <?php } ?> -> Contact</title> <link rel="stylesheet" type="text/css" href="style.css"> <meta charset="utf-8"> </head> <?php if($statut['statut_ip'] == 1) { include("menu.php"); ?> <body> <section class="contact"> <h2>Contact</h2> <p> Vous voulez nous contacter uttilisez le formulaire ci-dessous : </p> <article> <form method="POST" class="post_message"> <tr><td class="com_pseudo"><?php if(!empty($_SESSION['pseudo'])) { echo "Votre pseudo : "; echo $_SESSION['pseudo']; } ; ?></td></tr><br/><br/> <tr><td class="adresse_mail"><label for="mail">Mail :</label></td></tr> <tr><td><input type="email" placeholder="Votre e-mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>"/></td></tr></br> </br> <tr><td><textarea name="message" placeholder="Votre message" rows="5" cols="40" class=""></textarea></td></tr><br/> </br> <tr><td><input type="submit" value="Evoyer votre message" name="submit_message" class="message_submit"/></td></tr><br/><br/> </form> </br> <p> <i>Votre adresse ip sera enregistré en même temps que votre message !</i> </p> </article> </section> <?php } else { ?> <p align="center"><br/><br/>L'adresse <a href="https://fr.wikipedia.org/wiki/Adresse_IP" rel="nofollow noopener noreferrer" target="_blank">IP</a> de votre <a href="https://fr.wikipedia.org/wiki/Fournisseur_d%27acc%C3%A8s_%C3%A0_Internet" rel="nofollow noopener noreferrer" target="_blank">FAI</a> a était bloquer,<br/> a cause d'un problème grave contre notre site internet.<br/><br/><br/> Si cela vous semble être une erreur veuilliez contacter l'administrateur a cette adresse:<br/> <a href="mailto:?to=floflo12@gmail.com" rel="nofollow noopener noreferrer" target="_blank" />floflo12@gmail.com</a></p> <?php } ?> </body> </html>
J'ai des codes erreur :
_Notice: Undefined variable: mail in C:\wamp64\www\2017\contact.php on line 14
_Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Champ 'message' inconnu dans field list' in C:\wamp64\www\2017\contact.php on line 14
_PDOException: SQLSTATE[42S22]: Column not found: 1054 Champ 'message' inconnu dans field list in C:\wamp64\www\2017\contact.php on line 14
Voici la table "message" en détail:
_id / int(11) / / AI / primary
_pseudo / varchar(255) / NULL
_mail / varchar(40)
_date_heur / datetime
_ip_uttilisateur / varchar(255)
_traitement / varchar(11) / NON
Merci d'avance.
A voir également:
- Formulaire de contact
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Formulaire de contact le bon coin introuvable ✓ - Forum Vos droits sur internet
- Recuperer contact carte sim - Guide
2 réponses
Bonjour,
Ta variable $mail n'a jamais été déclarée et aucune valeur ne lui est assignée.
Tu devrais lui donner une valeur sur le modèle de ce que tu as fait pour $message :
Au passage, cela n'a aucune incidence, mais tu peux enlever tes tests isset() quand tu fais un !empty à côté, car empty appelle lui-même isset().
Fonctionnellement,
Xavier
Ta variable $mail n'a jamais été déclarée et aucune valeur ne lui est assignée.
Tu devrais lui donner une valeur sur le modèle de ce que tu as fait pour $message :
$mail = htmlspecialchars($_POST['mail']);
Au passage, cela n'a aucune incidence, mais tu peux enlever tes tests isset() quand tu fais un !empty à côté, car empty appelle lui-même isset().
Fonctionnellement,
isset($_POST['message']) AND !empty($_POST['message'])est strictement équivalent à
!empty($_POST['message']).
Xavier
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Dans la commande
INSERT INTO message (pseudo, message, mail, ip_uttilisateur, date_heur) ..., les noms entre parenthèses devraient être les noms de colonnes de ta table. "message" n'est pas une colonne de ta table. Par ailleurs, je te suggère de ne pas employer le même nom pour une table et pour une colonne.
Merci voila la modification mais erreur toujours un problème :
Code erreur:
_Notice: Undefined variable: mail in C:\wamp64\www\2017\contact.php on line 14
_Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'mail' ne peut être vide (null)' in C:\wamp64\www\2017\contact.php on line 14
_ PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ
'mail' ne peut être vide (null) in C:\wamp64\www\2017\contact.php on line 14
<?php include("CObdd.php"); include_once('cookieconnect.php'); include('/ban_site/bann_ip.php'); if(isset($_POST['submit_message'])) { if(isset($_POST['message']) AND !empty($_POST['message']) AND ($_POST['mail']) AND !empty($_POST['mail']) OR !empty($_SESSION['pseudo'])) { $message = htmlspecialchars($_POST['message']); $ins = $bdd->prepare('INSERT INTO message (pseudo, mail, message, date_heur, ip_uttilisateur) VALUES (?, ?, ?, NOW(), ?)'); $ins->execute(array($_SESSION['pseudo'],$mail,$message,$user_ip)); $msg = "<span style='color:red'>Votre message a bien été envoyer !</span>"; } } ?> <!DOCTYPE html> <html> <head> <title>Bienvenue <?php if(!empty($_SESSION['id'])) { echo $_SESSION['pseudo']; } else {?> uttilisateur <?php } ?> -> Contact</title> <link rel="stylesheet" type="text/css" href="style.css"> <meta charset="utf-8"> </head> <?php if($statut['statut_ip'] == 1) { include("menu.php"); ?> <body> <section class="contact"> <h2>Contact</h2> <p> Vous voulez nous contacter uttilisez le formulaire ci-dessous : </p> <article> <form method="POST" class="post_message"> <tr><td class="com_pseudo"><?php if(!empty($_SESSION['pseudo'])) { echo "Votre pseudo : "; echo $_SESSION['pseudo']; } ; ?></td></tr><br/><br/> <tr><td class="adresse_mail"><label for="mail">Mail :</label></td></tr> <tr><td><input type="email" placeholder="Votre e-mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>"/></td></tr></br> </br> <tr><td><textarea name="message" placeholder="Votre message" rows="5" cols="40" class=""></textarea></td></tr><br/> </br> <tr><td><input type="submit" value="Evoyer votre message" name="submit_message" class="message_submit"/></td></tr><br/><br/> </form> </br> <p> <i>Votre adresse ip sera enregistré en même temps que votre message !</i> </p> </article> </section> <?php } else { ?> <p align="center"><br/><br/>L'adresse <a href="https://fr.wikipedia.org/wiki/Adresse_IP" rel="nofollow noopener noreferrer" target="_blank">IP</a> de votre <a href="https://fr.wikipedia.org/wiki/Fournisseur_d%27acc%C3%A8s_%C3%A0_Internet" rel="nofollow noopener noreferrer" target="_blank">FAI</a> a était bloquer,<br/> a cause d'un problème grave contre notre site internet.<br/><br/><br/> Si cela vous semble être une erreur veuilliez contacter l'administrateur a cette adresse:<br/> <a href="mailto:?to=floflo12@gmail.com" rel="nofollow noopener noreferrer" target="_blank" />floflo12@gmail.com</a></p> <?php } ?> </body> </html>
Code erreur:
_Notice: Undefined variable: mail in C:\wamp64\www\2017\contact.php on line 14
_Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'mail' ne peut être vide (null)' in C:\wamp64\www\2017\contact.php on line 14
_ PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ
'mail' ne peut être vide (null) in C:\wamp64\www\2017\contact.php on line 14
Bonjour, donc j'ai corriger maintenant ça fonctionne mieux.
$mail je l'enregistre avec le message et l'adresse ip.
Et si $_SESSION['pseudo'] est présent l'enregistré aussi.
Voila ou j'en suis:
Notice: Undefined index: pseudo in C:\wamp64\www\2017\contact.php on line 17
A cause du fait que si le visiteur laisse le message avec son adresse mail, le pseudo dois rester vide voila pourquoi j'ai mis :
Mais a mon avis je doit ajouter quelque chose pour éviter ce message d'erreur mais quoi ?
$mail je l'enregistre avec le message et l'adresse ip.
Et si $_SESSION['pseudo'] est présent l'enregistré aussi.
Voila ou j'en suis:
Notice: Undefined index: pseudo in C:\wamp64\www\2017\contact.php on line 17
A cause du fait que si le visiteur laisse le message avec son adresse mail, le pseudo dois rester vide voila pourquoi j'ai mis :
OR !empty($_SESSION['pseudo'])
Mais a mon avis je doit ajouter quelque chose pour éviter ce message d'erreur mais quoi ?
Notice: Undefined index: pseudo in C:\wamp64\www\2017\contact.php on line 17
A cause du fait que si le visiteur laisse le message avec son adresse mail, le pseudo dois rester vide voila pourquoi j'ai mis :
Mais a mon avis je doit ajouter quelque chose pour éviter ce message d'erreur mais quoi ?