Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: melu30 le le 29-06-2015 a 10:28:37

Titre: Pb sur formulaire de contact
Posté par: melu30 le le 29-06-2015 a 10:28:37

Bonjour à tous,

J'aurais besoin d'un petit coup de main.
En effet, lors de la création de mon formulaire, j'ai programmé les messages d'erreurs, or lorsque je teste mon formulaire et que j'omets volontairement de remplir une case, j'ai un autre message d'erreur que celui programmé !!!! je n'arrive pas à comprendre ce qui se passe.
D'avance merci pour le coup de main.
ci-dessous mon formulaire ainsi que le programme de traitement, en PHP/

Formulaire:
<?php
session_start();
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Formulaire de contact</title>
<!-- call bootstrap -->
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet">

</head>
<body background="fondmarbre03.jpg">
<style="padding:100px 0 200px 0">
<div style="padding-bottom:100px" class="container">
<div class="row">
<div class="col-md-12">
</div>
</div>
</div>
<!-- CONTENT -->
<div class="container">
<?php if(array_key_exists('errors',$_SESSION)): ?>
<div class="alert alert-danger">
<?= implode('<br>', $_SESSION['errors']); ?>
</div>
<?php endif; ?>
<?php if(array_key_exists('success',$_SESSION)): ?>
<div class="alert alert-success">
"Votre email a bien &#233t&#233 transmis !"
</div>
<?php endif; ?>
<form action="send_form.php" method="post">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="inputname">Nom</label>
<input required type="text" name="name" class="form-control" id="inputname" value="<?php echo isset($_SESSION['inputs']['name'])? $_SESSION['inputs']['name'] : ''; ?>">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="inputprenom">Pr&#233nom</label>
<input required type="text" name="prenom" class="form-control" id="inputprenom" value="<?php echo isset($_SESSION['inputs']['prenom'])? $_SESSION['inputs']['prenom'] : ''; ?>">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="inputadresse">Adresse</label>
<input required type="text" name="adresse" class="form-control" id="inputadresse" value="<?php echo isset($_SESSION['inputs']['adresse'])? $_SESSION['inputs']['adresse'] : ''; ?>">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="inputcodepostal">Code Postal et Ville</label>
<input required type="text" name="codepostal" class="form-control" id="inputcodepostal" value="<?php echo isset($_SESSION['inputs']['codepostal'])? $_SESSION['inputs']['codepostal'] : ''; ?>">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="inputtelephone">T&#233l&#233phone</label>
<input required type="text" name="telephone" class="form-control" id="inputtelephone" value="<?php echo isset($_SESSION['inputs']['telephone'])? $_SESSION['inputs']['telephone'] : ''; ?>">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="inputemail">Email</label>
<input required type="email" name="email" class="form-control" id="inputemail" value="<?php echo isset($_SESSION['inputs']['email'])? $_SESSION['inputs']['email'] : ''; ?>">
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label for="inputmessage">Message</label>
<textarea required id="inputmessage" name="message" class="form-control"><?php echo isset($_SESSION['inputs']['message'])? $_SESSION['inputs']['message'] : ''; ?></textarea>
</div>
</div>
<div class="col-md-12">
<button type='submit' class='btn btn-primary'>Envoyer</button>
</div>
</div>
</form>
</div>
<!-- END CONTENT -->
</body>
</html>
<?php
unset($_SESSION['inputs']);
unset($_SESSION['success']);
unset($_SESSION['errors']);

Le traitement:
<?php
session_start();
// $errors = [];
$errors = array();
if(!array_key_exists('name', $_POST) || $_POST['name'] == '') {
$errors ['name'] = "Merci de renseigner votre nom";
}
if(!array_key_exists('prenom', $_POST) || $_POST['prenom'] == '') {
$errors ['prenom'] = "Merci de renseigner votre prenom";
}
if(!array_key_exists('adresse', $_POST) || $_POST['adresse'] == '') {
$errors ['adresse'] = "Merci de renseigner votre adresse";
}
if(!array_key_exists('codepostal', $_POST) || $_POST['codepostal'] == '') {
$errors ['codepostal'] = "Merci de renseigner le code postal ainsi que la ville";
}
if(!array_key_exists('telephone', $_POST) || $_POST['telephone'] == '') {
$errors ['telephone'] = "Merci de renseigner votre numero de t&#233l&#233phone";
}
if(!array_key_exists('email', $_POST) || $_POST['email'] == '') {
$errors ['mail'] = "Merci de renseigner votre email";
}
if(!array_key_exists('message', $_POST) || $_POST['message'] == '') {
$errors ['message'] = "Merci de renseigner votre message";
}
if(!empty($errors)){
$_SESSION['errors'] = $errors;
$_SESSION['inputs'] = $_POST;
header('Location: mail.php');
}else{
$_SESSION['success'] = 1;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'FROM:' . htmlspecialchars($_POST['email']);
$to = 'contact@avignon-locations.com';
$subject = 'Message de: ' . htmlspecialchars($_POST['name']) .' - <i>' . htmlspecialchars($_POST['email']) .' </i>';
$message_content = '
<table>
<td>
<tr>
' . htmlspecialchars($_POST["name"]) .',
<br>
' .htmlspecialchars ($_POST["prenom"]) .',
<br>
' . htmlspecialchars ($_POST["adresse"]) .',
<br>
' .htmlspecialchars ($_POST["codepostal"]) .',
<br>
' . htmlspecialchars ($_POST["telephone"]) .',
<br>
' . htmlspecialchars($_POST["email"]) .',
<br>
<br>
'. htmlspecialchars($_POST["message"]) .',
<br><br>
"Site visualis&#233 ==> http://www.avignon-locations.com"
   </td>
</tr>
</table>
';
mail($to, $subject, $message_content, $headers);
header("Location: mail.php");
}

Titre: Re:Pb sur formulaire de contact
Posté par: zig le le 16-08-2015 a 20:32:58

Salut

Les tableaux sont pas utiles la :

if(empty($_POST['name'])) {
$_SESSION['erreur']= "Merci de renseigner votre nom<br />";
}
if(empty($_POST['prenom'])) {
$_SESSION['erreur'].= "Merci de renseigner votre prenom<br />";
}
if(empty($_POST['adresse'])) {
$_SESSION['erreur'].= "Merci de renseigner votre adresse<br />";
}
if(empty($_POST['codepostal'])) {
$_SESSION['erreur'].= "Merci de renseigner le code postal ainsi que la ville<br />";
}
if(empty($_POST['telephone'])) {
$_SESSION['erreur'].= "Merci de renseigner votre numero de t&#233l&#233phone<br />";
}
if(empty($_POST['email'])) {
$_SESSION['erreur'].= "Merci de renseigner votre email<br />";
}
if(empty($_POST['message'])) {
$_SESSION['erreur'].= "Merci de renseigner votre message<br />";
}
if(!empty($_SESSION['erreur'])){
header('Location: mail.php');
}


et dans ton form tu as juste à afficher $_SESSION['erreur']

zig

Titre: Re:Pb sur formulaire de contact
Posté par: pppplus le le 18-08-2015 a 22:17:11

@zig, ce n'est pas très pertinent, puisque ça ne prendra qu'une seule erreur

@melu30 : je n'ai rien vu qui cloche
que donnent :
- print_r($_POST);
- print_r($_SESSION['errors']);
- print_r($_SESSION['inputs']);

La comparaison de tout ça devrait vous aiguiller.

Titre: Re:Pb sur formulaire de contact
Posté par: zig le le 18-08-2015 a 22:24:51

Citation de: pppplus le le 18-08-2015 a 22:17:11
@zig, ce n'est pas très pertinent, puisque ça ne prendra qu'une seule erreur


Non c'est un .= pas un = ça ajoute les différentes erreurs dans la même chaine $erreur
Ceci dit j'ai déterré un topic ça datait un peu

zig

Titre: Re:Pb sur formulaire de contact
Posté par: pppplus le le 18-08-2015 a 22:32:21

ah oui, pas vu le .=
Tu l'as corrigé après ou j'ai été miraud ?

Bon, petit déterrage que de juin, tu t'en sors bien...

Titre: Re:Pb sur formulaire de contact
Posté par: zig le le 18-08-2015 a 22:34:31

Citation de: pppplus le le 18-08-2015 a 22:32:21
Tu l'as corrigé après ou j'ai été miraud ?


non du tout il y était, sauf sur le premier car il ne sert à rien

zig

Titre: Re:Pb sur formulaire de contact
Posté par: pppplus le le 18-08-2015 a 22:36:10

Bon, problème de lunettes alors...
Les nouvelles arrivent bientôt :P


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.