formulaire de contact...

GULOS1
Invité n'ayant pas de compte PHPfrance

22 janv. 2012, 17:51

Bonjour

J'ai crée via lightroom un site permettant de déposer sur le net mes photos.
Un formulaire de contact est généré à la publication mais il en fonctionne pas.. : à l'envoi, rien ne se passe...

Ci-après le fichier "contact.html"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>

<!-- This site has been generated using the 'Filmstrip Web Site Publisher Pro' plugin for Lightroom. See http://www.photographers-toolbox.com/ for more information -->

<head>
<title>Contact</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="Filmstrip Web Site Publisher Pro - Photographer's Toolbox">

<meta name="description" content="Photo">


<meta name="viewport" content="width=769">
<link rel="stylesheet" type="text/css" media="screen" href="./resources/html5reset-1.6.1.css">
<link rel="stylesheet" type="text/css" media="screen" href="./resources/mainstyles.css">
<link rel="stylesheet" type="text/css" media="screen" href="./resources/custom.css" >

<style type="text/css">
#menu {
background-image: url(./resources/bgmenuimage.jpg);
}
</style>

<style type="text/css">
h1 {
font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", Charcoal, "Helvetica Inserat", "Bitstream Vera Sans Bold", "Arial Black", sans-serif !important;
font-weight: normal;
}

h2 {
font-variant: small-caps;
} </style>

<!--[if lt IE 7]>
<link href="./pngfix.css" media="screen" rel="stylesheet" type="text/css" />
<![endif]-->

<script type="text/javascript" src="./resources/live_update.js"></script>

<script type="text/javascript">
<!--
window.AgMode = "publishAsSubGallery";
-->
</script>



<script type="text/javascript"><!--
--></script>


</head>
<body>



<div id="content"><div id="contentCenterer">


<div id="nonCSS.contactPage.content">
<h1>Page de contact</h1>

<p>Si vous avez des questions, remarques ou suggestions, n'hésitez pas à me contacter via le formulaire ci-après...</p>
</div>



<div style="text-align: center">
<div id="contact-area">

<form method="post" action="contact.php">


<input type="hidden" name="submitted" value="1">


<table cellpadding="0" cellspacing="0">
<tr>
<td align="right"><label for="name">Nom :</label></td>
<td><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td align="right"><label for="email">Email :</label></td>
<td><input type="text" name="email" id="email" /></td>
</tr>
<tr>
<td valign="top" align="right"><label for="message">Message :</label><br /></td>
<td><textarea name="message" rows="10" cols="20" id="message"></textarea></td>
</tr>

<tr>
<td colspan="2" align="center"><input type="submit" name="submit" value="Envoyer" class="submit-button" /></td>
</tr>
</table>

<script type="text/javascript" src="./resources/livevalidation.js"></script>
<script type="text/javascript">
var nameField = new LiveValidation( 'name', {onlyOnSubmit: true } );
nameField.add( Validate.Presence, { failureMessage: "Veuillez remplir le corps du message" } );

var emailField = new LiveValidation( 'email', {onlyOnSubmit: true } );
emailField.add( Validate.Email, { failureMessage: "Adresse mail invalide" } );
emailField.add( Validate.Presence, { failureMessage: "Veuillez remplir le corps du message" } );

var messageField = new LiveValidation( 'message', {onlyOnSubmit: true } );
messageField.add( Validate.Presence, { failureMessage: "Veuillez remplir le corps du message" } );
</script>
</form>

</div>
</div>


</div>

</div>

<script type="text/javascript"><!--
--></script>

</body>
</html>



et le fichier "contact.php" correspondant


<?php

$_myemail = "[email protected]";
$_error = "";
$_done = false;

$_name = "";
$_email = "";
$_message = "";

$_nameError = "";
$_emailError = "";
$_messageError = "";

if ($_POST['submitted'])
{
$_name = htmlspecialchars(stripslashes(trim($_POST['name'])));
$_email = htmlspecialchars(stripslashes(trim($_POST['email'])));
$_message = htmlspecialchars(stripslashes(trim($_POST['message'])));

if (strlen($_name) == 0) $_nameError = "<span class=\"LV_validation_message LV_invalid\">Veuillez remplir le corps du message</span>";
if (strlen($_email) == 0) $_emailError = "<span class=\"LV_validation_message LV_invalid\">Veuillez remplir le corps du message</span>";
if (strlen($_message) == 0) $_messageError = "<span class=\"LV_validation_message LV_invalid\">Veuillez remplir le corps du message</span>";

if (strlen($_email) > 0 && !preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $_email))
{
$_emailError = "<span class=\"LV_validation_message LV_invalid\">Adresse mail invalide</span>";
}

/* If URL is not valid set $_website to empty
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $_website))
{
$_website = '';
}*/

if ($_nameError == "" && $_emailError == "" && $_messageError == "")
{
/* Let's prepare the message for the e-mail */
$_message = "
New message from your website:

Name: $_name
E-mail: $_email

Message:
$_message
";

/* Send the message using mail() function */
mail("[email protected]", $_subject, $_message);

$_done = true;

$_name = "";
$_email = "";
$_message = "";
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>

<!-- This site has been generated using the 'Filmstrip Web Site Publisher Pro' plugin for Lightroom. See http://www.photographers-toolbox.com/ for more information -->

<head>
<title>Contact</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="Filmstrip Web Site Publisher Pro - Photographer's Toolbox">

<meta name="description" content="Photo">


<meta name="viewport" content="width=769">
<link rel="stylesheet" type="text/css" media="screen" href="./resources/html5reset-1.6.1.css">
<link rel="stylesheet" type="text/css" media="screen" href="./resources/mainstyles.css">
<link rel="stylesheet" type="text/css" media="screen" href="./resources/custom.css" >

<style type="text/css">
#menu {
background-image: url(./resources/bgmenuimage.jpg);
}
</style>

<style type="text/css">
h1 {
font-family: Impact, Haettenschweiler, "Franklin Gothic Bold", Charcoal, "Helvetica Inserat", "Bitstream Vera Sans Bold", "Arial Black", sans-serif !important;
font-weight: normal;
}

h2 {
font-variant: small-caps;
} </style>

<!--[if lt IE 7]>
<link href="./pngfix.css" media="screen" rel="stylesheet" type="text/css" />
<![endif]-->

<script type="text/javascript" src="./resources/live_update.js"></script>

<script type="text/javascript">
<!--
window.AgMode = "publishAsSubGallery";
-->
</script>



<script type="text/javascript"><!--
--></script>


</head>
<body>



<div id="content"><div id="contentCenterer">


<div id="nonCSS.contactPage.content">
<h1>Page de contact</h1>

<p>Si vous avez des questions, remarques ou suggestions, n'hésitez pas à me contacter via le formulaire ci-après...</p>
</div>



<?php if ($_done) { ?>
<p id="thanks">Merci, votre message a été envoyé.</p>
<?php } else { ?>

<div style="text-align: center">
<div id="contact-area">

<form method="post" action="contact.php">


<input type="hidden" name="submitted" value="1">


<table cellpadding="0" cellspacing="0">
<tr>
<td align="right"><label for="name">Nom :</label></td>
<td><input type="text" name="name" id="name" value="<?php echo $_name; ?>" /><?php echo($_nameError); ?></td>
</tr>
<tr>
<td align="right"><label for="email">Email :</label></td>
<td><input type="text" name="email" id="email" value="<?php echo $_email; ?>" /><?php echo($_emailError); ?></td>
</tr>
<tr>
<td valign="top" align="right"><label for="message">Message :</label><br /></td>
<td><textarea name="message" rows="10" id="message"><?php echo $_message; ?></textarea><?php echo($_messageError); ?></td>
</tr>

<tr>
<td colspan="2" align="center"><input type="submit" name="submit" value="Envoyer" class="submit-button" /></td>
</tr>
</table>

<script type="text/javascript" src="./resources/livevalidation.js"></script>
<script type="text/javascript">
var nameField = new LiveValidation( 'name', {onlyOnSubmit: true } );
nameField.add( Validate.Presence, { failureMessage: "Veuillez remplir le corps du message" } );

var emailField = new LiveValidation( 'email', {onlyOnSubmit: true } );
emailField.add( Validate.Email, { failureMessage: "Adresse mail invalide" } );
emailField.add( Validate.Presence, { failureMessage: "Veuillez remplir le corps du message" } );

var messageField = new LiveValidation( 'message', {onlyOnSubmit: true } );
messageField.add( Validate.Presence, { failureMessage: "Veuillez remplir le corps du message" } );
</script>
</form>

</div>
</div>

<?php } ?>


</div></div>

</div>

</div>

<script type="text/javascript"><!--
--></script>

</body>
</html>


Pouvez-vous m'aider car je suis totalement perdu...
Merci
Gulos

Mammouth du PHP | 1339 Messages

22 janv. 2012, 18:15

C'est tellement bien présenté !

Met des echo "Test #x" après chaque { où x est égal a 1 puis a 2, puis 3 etc, pour savoir là ou ca bloque.
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Petit nouveau ! | 4 Messages

22 janv. 2012, 18:48

C'est à dire ? je dois placer quoi et où ?

Pour moi, le php c'est un peu du chinois :)

Merci de l'aide

Mammouth du PHP | 1339 Messages

22 janv. 2012, 19:06

Fais un simple lien mailto: alors ...
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Petit nouveau ! | 4 Messages

22 janv. 2012, 19:24

le problème c'est que ces pages de codes générées via lightroom correspondent graphiquement à ce que je souhaite.
J'ai essayé avec mailto mais je dois tout revoir.

Savez-vous pourquoi ces 2 pages de codes ne fonctionnent pas ?

Merci de votre aide
GULOS

Mammouth du PHP | 1339 Messages

22 janv. 2012, 19:38

Peut-etre car la variable qui configure le sujet du mail n'est pas définie...

Remplace $_subject par 'Le sujet de mon mail' avec les ' compris...
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Petit nouveau ! | 4 Messages

22 janv. 2012, 20:40

Bonsoir

Apparemment aucun changement...
En fait j'arrive à remplir correctement le formulaire en ligne mais à l'envoi, il m'ouvre la fenêtre php avec le code complet...
Bref ça ne marche toujours pas...
Merci de ton aide

Petit nouveau ! | 4 Messages

23 janv. 2012, 18:17

Quelqu'un peut-il m'aider à régler ce problème ??

Merci d'avance
Gulos

ViPHP
xTG
ViPHP | 7331 Messages

23 janv. 2012, 18:23

Utilises-tu un serveur web ? (Apache + PHP par exemple)
Utilises-tu l'url du serveur pour exécuter ton site web ? (localhost ou 127.0.0.1)
Ta page de traitement porte-t-elle l'extension .php ?

N.B : tu as des balises PHP pour afficher du code php sur le forum... Car là c'est tout simplement illisible.

Eléphanteau du PHP | 28 Messages

25 janv. 2012, 10:19

Tien je te donne mon formulaire de contact test le,Dit nous si il fonctionne chez toi :


<fieldset>
<center>
<?php 

function valide_email($email)
{
	$syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; 
	if(!preg_match($syntaxe,$email)) 
	{
		return true;
	}
	else
	{
		return false;
	}
}

header('Content-type: text/html; charset=UTF-8'); 

if (isset($_POST['submitform']))
{
	// je verifie que les champs sont remplies et j'envoie le mail ou j'affiche une erreurs.
	if (isset($_POST['nom'], $_POST['email'], $_POST['message']))
	{
		$nom = htmlentities(trim($_POST['nom']));
		$email = htmlentities(trim($_POST['email']));
		$message = htmlentities(trim($_POST['message']));

		if (empty($nom))
		{
			echo '<b><font style="color: #ff0000;" >le champ nom est vide</font></b>';
		}
		else if(empty($email))
		{
			echo '<b><font style="color: #ff0000;" >le champ email est vide</font></b>';
		}
		else if(empty($message))
		{
			echo '<b><font style="color: #ff0000;" >le champ message est vide</font></b>';
		}
		else
		{
					 
			// je vérifie que l'email est valide.
			if (!valide_email($email)) 
			{
		 
					// je j'envoie l'email si aucune erreur est affiché
					$adresse_dest = "ton email";
					
					$boundary = hash('sha256', uniqid(rand()));
					
					$sujet = "Contact SoGames Production";
					
					$contenu_message = "";
					$contenu_message .= "\n--".$boundary."\nContent-Type: text/html;";
					$contenu_message .= "charset=\"ISO-8859-1\"\n\n";
				    $contenu_message .= "<p align='left'>
										<b>Nom client : </b>" .$nom."
										<br /><b>Email client : </b>" .$email." 
										<br /> <b>Message du client :</b><br />" .$message. "</p>";
										
					$adresse_exp = "";
					$adresse_exp .= "MIME-Version: 1.0\n";
					$adresse_exp .= "Content-Type: multipart/alternative;";
					$adresse_exp .= "boundary=".$boundary."\n";
					$adresse_exp .= "From: [email protected]";

						$succes = mail(html_entity_decode($adresse_dest), html_entity_decode($sujet), html_entity_decode($contenu_message), html_entity_decode($adresse_exp));
						if($succes)// Si le mail a été correctement envoyé.
						{
							echo '<b>l\'email &agrave; bien &eacute;t&eacute; envoy&eacute; merci</b>';
							header('Refresh: 1;url=contact.php');
						}
						else
						{
							echo '<font style="color: #ff0000;" >Une erreur est survenue lors de l\'envoi du mail</font>';
							header('Refresh: 1;url=contact.php');
						}
							
			//je renvoie une erreur si l'email est incorrect.
			} 
			else
			{
				echo '<font style="color: #ff0000;" >l\'email suivant : '.$email.' est invalide</font>';
			}
		}
	}	
}
?>
</center>
<form action="" method="post">
	<label>Votre Nom :</label><br />
		<input type="text" name="nom" size="38" value="<?php if (isset($_POST['nom'])) echo htmlentities($_POST['nom']); ?>" /><br />
	<label>Votre email :</label>
		<br /><input type="text" name="email" size="38" value="<?php if (isset($_POST['email'])) echo htmlentities($_POST['email']); ?>" /><br />
	<label>Votre message :</label><br />
		<textarea name="message" rows="15" cols="30"><?php if (isset($_POST['message'])) echo htmlentities($_POST['message']); ?></textarea><br />
	<br />
<input type="submit" value="      Envoyer votre message       " name="submitform" />
</form>
</fieldset>