problême de lein entre page.php et formmail.php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problême de lein entre page.php et formmail.php

Re: problême de lein entre page.php et formmail.php

par AB » 05 avr. 2010, 16:52

Et puis prends l'habitude de mettre exit derrière un header-Location :
header("Location: http://www.marinelepetit.com/remerciement.php");
exit;

Re: problême de lein entre page.php et formmail.php

par xeradou » 05 avr. 2010, 14:48

je vais tester vos solutions puis je vous reponds merci !!!

Re: problême de lein entre page.php et formmail.php

par visualight » 03 avr. 2010, 19:50

Salut,

Il faudrait également sécuriser un tantinet tout cela car si les champs sont vide et que j'appuie sur le bouton Envoyer l'email part !
Il faut au moins que tu contrôle tes variables POST au sein du formail.php

Du style :
<?php
if ((isset($_POST['nom']) && !empty($_POST['nom'])) AND (isset($_POST['prenom']) && !empty($_POST['prenom'])) AND (isset($_POST['e-mail']) && !empty($_POST['e-mail'])) AND (isset($_POST['societe']) && !empty($_POST['societe']))) {

$TO = "[email protected]";

$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.marinelepetit.com/remerciement.php");

} else {
 echo 'L\'email n\'a pas été envoyé car les champs suivants sont requis : nom, prenom, e-mail, societe';
}

?>

Après ça tu peux aussi installer un systeme captcha (antispam brute force) comme securimages :
http://www.phpcaptcha.org/

Et puis, il y a cet article qui parle du probleme d'injections :
http://www.phpsecure.info/v2/article/Ma ... Inject.php

A+
raph

Re: problême de lein entre page.php et formmail.php

par devlop78 » 03 avr. 2010, 19:25

Franchement, je vois pas ce qui cloche.

Mais sûr, La variable POST actuelle est obsolète voire vide selon ton serveur. Si tu la remplaces par $_POST, ça devrait aller

Ensuite, écris header() plutôt que Header, on sait jamais ... php n'est pas ultra case-sensitif mais bon un peu quand même.

Ensuite, rajoute un error_reporting(E_ALL) en début de code et un Display_error(1); (vérifie les syntaxes avant je suis pas sûr).

Tu peux aussi mettre des echo à chaque ligne pour voir où est-ce que le script plante (le plus simple echo $ii++;).

Re: problême de lein entre page.php et formmail.php

par Calimero » 03 avr. 2010, 01:40

Bonjour,

Tu peux commencer par remplacer (dans formmail.php) $HTTP_POST_VARS par $_POST car cette syntaxe est très ancienne et obsolète (et peut-être même la cause du problème).

Si ça ne change rien il va falloir débugguer (en suivant la piste donnée par Nours, ou mieux encore en installant ton site sur un serveur de développement, du type wampserver si tu es sous windows ).

Re: problême de lein entre page.php et formmail.php

par xeradou » 02 avr. 2010, 22:47

sais tu ce que je dois changer dans les codes

Re: problême de lein entre page.php et formmail.php

par xeradou » 02 avr. 2010, 22:39

mais que me conseilles tu
je suis debutant

Re: problême de lein entre page.php et formmail.php

par Nours312 » 02 avr. 2010, 22:35

salut !

tu as un pb d'encodage ... et/ou un espace html qui se profile !...

ce qui fait que le header() ne peux fonctionner vu que quelque chose à été envoyé au navigateur ... ça crée une erreur .. qui ne s'affiche pas du fait que le report des erreur est désactivé sur ton serveur ^^

durant les développement, il est préférable de les activer :: http://www.manuelphp.com/php/function.e ... orting.php

@++ (et désolé pour le mail envoyé ^^)

problême de lein entre page.php et formmail.php

par xeradou » 02 avr. 2010, 22:04

bonsoir à tous !!

voila mon problême :
ma page de remerciement aprés l'envoi d'un mail ne fonctionne pas. je reçois bien mon mail, mais la page reste bloqué sur une page blanche correspondante au script formmail.php qui devrait redirigé sur la page remerciement.php....
voici le lien de mon site en construction en ligne, essayez le formulaire contact pour voir le problême...http://www.marinelepetit.com/contact.php

je vous place aussi les trois dossiers correspondant au formulaire :

1) la page contact :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>www.marinelepetit.com</title>
<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>		
		
	<div id="body2">

<?php include("header.php"); ?>

<?php include("menu.php"); ?>


<br><br><br>
<table class="tb-contact-global">
    <tr>
    <td class="td-global">
	<a href="cv.php"><img src="images/cv-bouton.png"></a>
    </td>
    </tr>
    </table>
	<br><br>
<table class="tb-contact-global">
<tr>
<td class="td-contact-global">
  <div id="formulaire">

	

	<p>Write in the form to send a e-mail : </p>
	<br>

	<form action="formmail.php" method=post enctype="multipart/form-data">
	<input type=hidden name=subject value=formmail>
	
	<table>
	
	<tr>
	<td>Name :</td>
	<td><input type="text" name="nom" id="nom"></td>
	</tr>
	<tr>
	<td>Surname :</td>
	<td><input type= "text" name="prenom" id="prenom"></td>
	</tr>
	<tr>
	<td>E-mail :</td>
	<td><input type= "text" name="e-mail" id="e-mail"></td>
	</tr>
	<tr>
	<td>company :</td>
	<td><input type="text" name="societe" id="societe"></td>
	</tr>
	
	
	</table>
	
	<br><br>
	
	preliminary estimate : <input type="checkbox" name="demandededevis" id="demandededevis">
	<br><br>
	<label>Choose your themes : </label>
	<select>
			<option>report</option>
			<option>artwork</option>
			<option>model</option>
			<option>customer relationship</option>
			<option>exhibition</option>
			<option>private</option>
			
		</select>
	<br><br>
	Text : <textarea rows="6" cols="30" name="texte" id="texte"> </textarea> 
	<br><br>
	
    <input type="image" src="images/bouton-formulaire-contact.png" value=Envoyer>
         
         </div> 
	 
	</form>
	</td>
	<td class="td-carte-de-viste-contact-dans-cellule">
	<img src="images/IMG_5747-copie-copie.jpg" class="image-contact"/>
	</td>
	</tr>
	</table>
	<br><br>
	
    <?php include("footer.php"); ?>

</div>

</body>
</html>
viens ensuite le script php :"formmail.php" qui doit rediriger vers la page remerciement.php:
<?php
$TO = "[email protected]";

$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.marinelepetit.com/remerciement.php");

?>
puis pour finir la page remerciement.php qui devrait normalement être affiché via le script php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>www.marinelepetit.com</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="body2">

    <?php include("header.php");?>
	
    <?php include("menu.php");?>
	
<br><br>	
<table class="tb-remerciement-global">
<tr>
<td class="td-remerciement-global">
<p>Merci, votre message a bien ete envoye.</p>
</td>
</tr>

<tr>
<td class="td-remerciement-global">
<a href="acceuil.php"><img src="images/bouton-remerciement.png" alt="clic"/></a>
</td>
</tr>
</table>
<br><br>	

<?php include("footer.php"); ?>

</div><!-- fin body2 -->

</body>
</html>

 

toute mes pages se situent à la racine du site et donc pas de problême de repertoire...

voila je vous remercie de m'aider car je ne comprends pas d'ou vient le truc....
merci