8796 sujets

Développement web côté serveur, CMS

Bonjour à toutes et tous .

J'ai réalisé un formulaire d'envoi de données .

Mes scripts plantes .. Page blanche et pas email dans ma boite .
Ces scripts sont placés sur le serveur .. bien sur .
[code=php]
<?php
// Fichier "adminis.php"

// On vérifie d'abord si le formulaire a été envoyé en s'assurant
// que la variable $_POST contient bien une entrée 'valid'
if (isset($_POST['valid'])) {

// Liste de toutes les variables obligatoires du formulaire
$aVars = array('nom','prenom','ville','email','message');

// Les tests de validité pour le e-mail
$aTests = array('email'=> '#\w+[-_.]?\w+?@\w+[-_.]?\w+?\.[a-z]{2,5}#');

// Variable pour savoir s'il y a des erreurs dans les infos fournies
$bErreur = false;

// On boucle sur chaque variable obligatoire du formulaire
foreach ($aVars as $var) {
// On test pour savoir si la variable est vide
$bErreur = (bool)(empty($_POST[$var]));

// On test la validité de l'info fournie
if (isset($aTests[$var])) { $bErreur = (bool)(!preg_match($aTests[$var], $_POST[$var])); }

// Si une erreur a été détectée, alors on rédirige vers la page d'erreur
// et on arrête le script
if ($bErreur) {
header("Location: erreur.html");
exit();
}
}

// Si aucune erreur n'a été détectée, alors on construit le message à envoyer
$sMessage = 'Message envoyé le '.date('d/m/Y').' à '.date('H:i')."\r\n";
$sMessage .= 'Identité : '.$_POST['nom','prenom']."\r\n";
$sMessage .= 'Ville : '.$_POST ['ville']."\r\n";
$sMessage .= 'E-mail : '.$_POST['email']."\r\n";
$sMessage .= 'Message : '."\r\n\r\n--\r\n\r\n";
$sMessage .= $_POST['message']."\r\n\r\n--\r\n\r\n";

// Objet du mail
$sObjet = 'Message pour , envoyé à partir du site ';

// Adresse e-mail
$sEmail = ''; // Adresse à personnaliser

// Envoi du message
mail($sEmail, $sObjet, $sMessage);

// On retourne à la page du formulaire
header("Location: administration.php");
}
?>
[/code]
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml">
<html xhtml="http://www.w3.org/1999/xhtml" xml:lan="fr" lang="fr">
<head>
<title>Page d'administration.</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" media="screen" type="text/css" title="code" href="adminis.css" />
<?php include('../banniere.php'); ?>
<h1>La page que vous désirez ouvrir est réservée aux administrateurs .</h1>
<p>Elle est protégée par un mot de passe.</p>
<?php include('006.php'); ?>


<div id="corpsForm">
<form name="MotdP" method="post" action="adminis.php">
<fieldset id="MotdP" >
<h3>Si vous désirez vraiment obtenir un mot de passe :</h3>
<p><label>Veuillez indiquer votre : </label>
<p><label for="nom">*Nom :</label><input type="text" name"nom" id="nom" />
<label for="prenom">*Prénom :</label><input type="text" name"prenom" id"prenom" /></p>
<p><label for="ville">*lieu de résidence :</label><input type="text" name"ville" id="ville" />
<label for="email">*eMail :</label><input type="text" name="email" id="email" /></p>
<label for="message" title="Veuillez saisir votre message (remarque, suggestion, témoignage, etc.)" class="oblig">* Les motifs de votre requête :</label>&nbsp;
<textarea name="message" id="message" rows="5" cols="40" title="Veuillez saisir votre message (remarque, suggestion, témoignage, etc.)" tabindex="1"></textarea>

<p><input type="submit" name="valid" id="valid" value="Envoyer" /></p>
<p><input type="reset" id="annuler" value="Annuler" /></p>

<label>* Champs obligatoires !</label>
</fieldset>
</form>
</div>

<h4>Si votre demande est acceptée , vous recevrez un eMail contenant votre mot de passe</h4>

</body>
</html>
Si vous trouvai l'erreur .. Merci . Je cherche depuis deux jours .
Cordialement.
Modifié par Go'Gaule (22 Sep 2010 - 00:12)
Salut,

Est-ce que ton SMTP est correctement configuré ? Si tu remplaces ton code :
mail($sEmail, $sObjet, $sMessage);

par :
if ( !mail($sEmail, $sObjet, $sMessage) ) {
   echo 'Mail non envoyé';
}

ça te donne quoi ?
Bonjour .

Merci.

Agylus
a écrit :
Est-ce que ton SMTP est correctement configuré ? Si tu remplaces ton code :


Oui je le pense , car un autre formulaire , sur le même site fonctionne parfaitement .

Avec ton code rien de changé .

J'ai une boulette , mais ou ?

Cordialement.
Modifié par Go'Gaule (20 Sep 2010 - 11:41)
Tout en haut de ton script, rajoute ces lignes (servent à afficher toutes les erreurs et notices de PHP) :

error_reporting( E_ALL | E_STRICT );
ini_set( 'display_errors', 'on' );
Bonsoir .

a écrit :

$_POST['valid']
Il correspond à quoi ..?


Ben ..
a écrit :
// On vérifie d'abord si le formulaire a été envoyé en s'assurant

// que la variable $_POST contient bien une entrée 'valid'

if (isset($_POST['valid'])) {


Heu ..!
Bonjour .

Oui , j'ai posté le "mauvais code" .. je l'ai " ré-écrit " plusieurs fois de façon différentes ..

J'ai corrigé .

Cordialement.