Redirection formulaire php html

Fermé
pousada maeva Messages postés 4 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 26 janvier 2013 - 26 janv. 2013 à 10:52
 ReDLoG - 28 janv. 2013 à 17:33
Bonjour,

Je cree un site de reservation d hotels au Bresil, j ai donc fait une page avec un formulaire que je mettrais sur chacune des pages de chaque hotel...


Donc, j ai creer deux pages une html et une php, j ai trouve des lingne de codes et je assemble le tout.
Tout fonctionne bien, l email arrive bien a mon adresse, mais au moment de la redirection, je tombe sur une page blanche :-(

Pourriez me dire ce qui cloche SVP?

Merci d avence

voici mon php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Reserva pousada em maceio</title>
</head>

<body>
<?php
$TO = "maevapousada@gmail.com";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header('Location: http://www.pousada-em-maceio.com.br/fotos.html');
exit();
?>
</body>

</html>


Voici mon html:
<form method=POST action=formmail.php >
<input type=hidden name=subject value=Reserva >

<label class="nom">Seu nome:</label><br />
<input type="text" class="Nome " name="Nome " size="40" value=" "><br />

<label class="email">Seu email:</label><br />
<input type="text" class="from " name="from " size="40" value=" "><br />

<label class="tipo de quarto">Tipo de quarto (duplo, triplo...):</label><br />
<input type="text" class="tipo " name="tipo " size="40" value=" "><br />

<label class="chegada">Chegada:</label><br />
<input type="text" class="chegada " name="chegada " size="40" value=" "><br />

<label class="saida">Saida:</label><br />
<input type="text" class="saida " name="saida " size="40" value=" "><br />

<label class="comentario">Seu comentario</label><br />
<textarea rows="5" cols="38" class="comentario " name="comentario "></textarea><br />
<input type="submit" value="Enviar">

</form></p>



A voir également:

1 réponse

Bonjour,
J'ai déjà vu des milliers de fois ce script d'envoi de mail sur ce forum et d'autres et je REdis à chaque fois qu'utiliser la superglobale $HTTP_POST_VARS est obsolète depuis PHP 4.0 alors que se profile PHP 6 à l'horizon!!!!
D'autre part tu devrais obtenir un joli WARNING de PHP en utilisant la fonction header() alors qu'un flux de données est DEJA envoyé au navigateur (tout le code HTML situé AVANT la fonction notamment...).
0
pousada maeva Messages postés 4 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 26 janvier 2013
26 janv. 2013 à 17:54
Super, merci
ça m aide enormement :-)
Je n oublirais pas, encore mille mercis :-)
0
Bon devant une telle animosité sarcastique de ta part, je vais récapituler :
- pour la 1ère partie du script que tu as copier/coller et qui concerne l'envoi de mail, ça fonctionne car le mail est envoyé juste AVANT l'utilisation de la fonction header() et parce que tout simplement PHP utilise la rétro-compatibilité mais du jour au lendemain, il se pourrait que ça ne fonctionne plus sur ton serveur car ton hébergeur pourrait faire une mise à jour de la version de PHP installée chez lui. Ca c'était pour te rendre service...
- pour la 2ème partie de ton code, une recherche dans la doc officielle PHP en ligne sur la fonction http://fr2.php.net/manual/fr/function.header.php t'aurais donnée la solution mais apparemment, ce que tu attendais, c'est un script tout fait sans avoir fait "bouger" tes neurones, sur ce point je te l'accorde je ne t'ai pas très aidé.
-------------------------------------------------------------------------------------------------------------------------------
Il vaut mieux apprendre à pêcher à un homme plutôt que de lui apporter du poisson tous les jours (citation qui n'est pas de moi mais je te laisse chercher, enfin si tu arrives à faire scintiller tes neurones...).
0
pousada maeva Messages postés 4 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 26 janvier 2013
26 janv. 2013 à 21:07
C est Lao tseu?
il a dit aussi, enfin si c est lui, mais en tout cas il a dit: Un voyage de mille lieues commence toujours par un premier pas...

En fait ça fait 4 jours que je cherche, mais a mon avis, les specialistes oublient toujours le petit detail qui tue, j imagine que c est tellement automatique pour eux que parfois une petite chose passe a la trape, et cela fait que rien ne marche.
Il y a peut etre aussi que, en chopant des bouts de code par ci par la les choses ne s imbrique pas comme il faut...

Oui, j ai fais un copier/coller, mais comme dirait Mr Brainwash, qui a dit qu il etait interdit de le faire?

A parcourir les forums, et a voir des reponses qui ne menent a rien, je ne te vise pas, ou qui envoient sur d autre page avec des explications que le debutant que je suis ne pigent pas, ne font pas , a mon avis, avencer le chmil blique ( terme de Mr Coluche :-) ).

Bon je ne suis pas fache contre toi :-). et te presente mes excuses, voudras tu les accepter?

et pour finir, j ai tout simplement replacer, en copiant/collant, :-) , le header par du html

<meta http-equiv='Refresh' content='0; URL=obrigado.html'>


Ça marche tres bien!!!

Encore une fois, merci, tout de meme, d avoitr pris le temp de me repondre.
Merci
0
Tout dans la même page :
<?php
if (isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar') {
	$To = "maevapousada_at_gmail.com";

	$Subject = $_POST['subject']."\r\n";

	$Headers = "From: ".$_POST['nome']." <".$_POST['from'].">\r\n";
	$Headers .= "MIME-Version: 1.0\r\n";
	$Headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
	$Headers .= "Content-Transfer-Encoding: 8bit\r\n";

	$Body = "Seu nome: ".$_POST['nome']."\r\n";
	$Body .= "Tipo de quarto: ".$_POST['tipo']."\r\n";
	$Body .= "Chegada: ".$_POST['chegada']."\r\n";
	$Body .= "Saida: ".$_POST['saida']."\r\n";
	$Body .= "Seu comentario:\r\n";
	$Body .= $_POST['comentario']."\r\n";

	if(mail($To, $Subject, $Body, $Headers)) {
		$error = "<p>Un problème technique est survenu lors de l'envoi de vos informations. Veuillez réessayer plus tard. Merci!</p>\n";
	} else {
		header('Location: http://www.pousada-em-maceio.com.br/fotos.html');
		exit();
	}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<title>Reserva pousada em maceio</title>
</head>

<body>
<form method="post" action="formmail.php">
	<?php if(isset($error)) echo $error; ?>
	<input type="hidden" name="subject" value="Reserva" />

	<p><label class="nom">Seu nome:</label><br />
	<input type="text" class="Nome" name="nome" size="40" value="" /></p> 

	<p><label class="email">Seu email:</label><br />
	<input type="text" class="from" name="from" size="40" value="" /></p>

	<label class="tipo de quarto">Tipo de quarto (duplo, triplo...):</label><br />
	<input type="text" class="tipo" name="tipo" size="40" value="" /></p>

	<p><label class="chegada">Chegada:</label><br />
	<input type="text" class="chegada" name="chegada" size="40" value="" /></p>

	<p><label class="saida">Saida:</label><br />
	<input type="text" class="saida" name="saida" size="40" value="" /></p>

	<p><label class="comentario">Seu comentario</label><br />
	<textarea rows="5" cols="38" class="comentario" name="comentario"></textarea></p>
	<p><input type="submit" name="enviar" value="Enviar" /></p>
</form>
</body>
</html>


Bien entendu tu dois enregistrer ce fichier sous formmail.php car le formulaire fais partie intégrante de la page et l'attribut action pointe sur le même fichier.
Je n'a
Pense à traduire le message d'erreur ($errreur) en portugais, je maitrise l'espagnol mais très peu le portugais même si ressemblance il y a sur certains mots ;-)
0
j'ai tapé sur la touche "enter" avant d'avoir fini mon explication. Pour l'adresse mail ($To) tu auras rectifié de toi-même j'ai volontairement "ôté" l'arrobase car le parser de CCM me mets chaque fois une erreur et bloque ma réponse lorsqu'il détecte l'arrobase, donc tu remplaces _at_ par le caractère arrobase de ton clavier.
Bonne continuation...!
0