Mon formulaire a bien fonctionné, mais maintenant j'ai un problème avec mon formulaire: aucun courrier n'est envoyé même si le formulaire est correct et complet, aucun message d'erreur si l'entrée est incorrecte (par exemple adresse mail ou numéro de téléphone ou longueur minimale du nom de l'entrée).formulaire de validation ne fonctionne pas
La (dernière) version PHP de l'hôte est 5.6.10.
S'il vous plaît, quelqu'un peut-il m'aider? THX.
Le code de formulaire:
<?php session_start(); ?>
<!DOCTYPE....>
<head>
...
</head>
<body>
...
...
<?php include 'scripts/contact.php'; ?>
<form action="Contact.php" method="post" accept-charset="UTF-8">
<table id="formular">
<tr>
<td><label for="nume">Nume: <span style="color: red"><sup>*</sup></span> </label></td>
<td><input type="text" name="nume" id="nume" maxlenght="20" value="<?php echo $_POST['nume']; ?>" /></td>
<td><span class="err"><?php if(isset($errors['nume'])&&$error) { print $errors['nume']; } ?></span></td>
</tr>
<tr>
<td><label for="prenume">Prenume: <span style="color: red"><sup>*</sup></span> </label></td>
<td><input type="text" name="prenume" id="prenume" maxlenght="20" value="<?php echo $_POST['prenume']; ?>" /></td>
<td><span class="err"><?php if(isset($errors['prenume'])&&$error) { print $errors['prenume']; } ?></span></td>
</tr>
<tr>
<td><label for="telefon">Telefon: <span style="color: red"><sup>*</sup></span> </label></td>
<td><input type="text" name="tel" id="tel" maxlenght="20" value="<?php echo $_POST['tel']; ?>" /></td>
<td><span class="err"><?php if(isset($errors['tel'])&&$error) { print $errors['tel']; } ?></span></td>
</tr>
<tr>
<td><label for="email">Email: <span style="color: red"><sup>*</sup></span> </td>
<td><input type="text" name="email" id="email" maxlength="50" value="<?php echo $_POST['email']; ?>" /></label></td>
<td><span class="err"><?php if(isset($errors['email'])&&$error) { print $errors['email']; } ?></span></td>
</tr>
<tr>
<td><label for="mesaj">Mesaj: <span style="color: red"><sup>*</sup></span> </label></td>
<td><textarea cols="20" rows="5" wrap="virtual" id="mesaj" name="mesaj" maxlength="150" onkeyup="nrcaractere()"><?php echo $_POST['mesaj']; ?></textarea><br>
<div id="ramase">150 chars remaining</div>
<script type="text/javascript">window.ready = nrcaractere();</script></td>
<td><span class="err"><?php if(isset($errors['mesaj'])&&$error) { print $errors['mesaj']; } ?></span></td>
</tr>
<tr>
<td></td>
<td align="center">
<button type="submit" name="trimite" />Trimite</button>
<button type="button" name="reset" onClick="sterge()" />Reset</button></td>
<td></td>
</tr>
</table>
</form>
...
...
et le script de validation:
<?php
if (isset($_POST['trimite']))
{ $error = FALSE;
if (empty($_POST['nume'])) {
$errors['nume']=' Mandatory';
$error = TRUE;
}
else {
if (!preg_match('/^[a-zA-Z]{1,}$/',$_POST['nume'])) {
$errors['nume']=' Only letters';
$error = TRUE;
}
else {
if (strlen($_POST['nume'])<3) {
$errors['nume']=' Too short. Min. 3 chars';
$error = TRUE;
}
else {
$errors['nume']='<img src=/images/ok.jpg>';
}
}
}
if (empty($_POST['prenume'])) {
$errors['prenume']=' Mandatory';
$error = TRUE;
}
else {
if (!preg_match('/^[a-zA-Z]{1,}$/',$_POST['prenume'])) {
$errors['prenume']=' Only letters';
$error = TRUE;
}
else {
if (strlen($_POST['prenume'])<3) {
$errors['prenume']=' Too short. Min. 3 chars';
$error = TRUE;
}
else {
$errors['prenume']='<img src=/images/ok.jpg>';
}
}
}
if (empty($_POST['tel'])) {
$errors['tel']=' Mandatory';
$error = TRUE;
}
else {
if (!preg_match('/^[0-9]{4}[\s.]{0,1}[0-9]{3}[\s.]{0,1}[0-9]{3}$/', $_POST['tel']) && !preg_match('/^[0-9]{3}[\s.]{0,1}[0-9]{3}[\s.]{0,1}[0-9]{2}[\s.]{0,1}[0-9]{2}$/', $_POST['tel']) && ($_POST['tel'] != '-')) {
$errors['tel']=' Mask: 021.021.02.01 or 0740.123.456 or -';
$error = TRUE;
}
else {
$errors['tel']='<img src=/images/ok.jpg>';
}
}
if (empty($_POST['email'])) {
$errors['email']=' Mandatory';
$error = TRUE;
}
else {
if (!preg_match('/^[a-z0-9&\'\.\-_\+][email protected][a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $_POST['email'])) {
$errors['email']=' Invalid address';
$error = TRUE;
}
else {
$errors['email']='<img src=/images/ok.jpg>';
}
}
if (empty($_POST['mesaj'])) {
$errors['mesaj']=' Mandatory';
$error = TRUE;
}
else {
if (strlen($_POST['mesaj'])<15) {
$errors['mesaj']=' Too short. Min. 15 chars';
$error = TRUE;
}
else {
if (strlen($_POST['mesaj'])>150) {
$errors['mesaj']=' Too long. Max. 150 chars';
$error = TRUE;
}
else {
$errors['mesaj']='<img src=/images/ok.jpg>';
}
}
}
if (!$error) {
$destinatar = "[email protected]";
$subject = "Site message";
$body = 'Nume: '.$_POST['nume'].'
<br>
Prenume: '.$_POST['prenume'].'
<br>
Telefon: '.$_POST['tel'].'
<br>
Email: '.$_POST['email'].'
<br><br>
Mesaj: '.$_POST['mesaj'];
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
if (mail($destinatar,$subject,$body,$headers)) {
echo '<script type="text/javascript">alert("Message sent!")</script>';
unset($_POST);
}
else {
echo '<script type="text/javascript">alert("Not sent. Try again!")</script>';
}
}
}
$_SESSION['s']=$s;
?>
PS. Excusez mon mauvais anglais.
Je ne vois aucun attribut de nom 'mesaj'. Rapport d'erreur –
Désolé, édité et mis à jour. THX – colombo2003