Problème code PHP pour formulaire de contact complex

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 code PHP pour formulaire de contact complex

Re: Problème code PHP pour formulaire de contact complex

par xTG » 07 mai 2014, 13:22

Ta "page d'erreur" montre aussi que tu n'exécutes pas le PHP.
Travailles-tu en local ? Si c'est le cas tu ne dois pas accéder au fichier via l'url de ton serveur local mais via l'arborescence de ton système de fichier, ce qui causerai ce souci.

Re: Problème code PHP pour formulaire de contact complex

par chapt0011 » 07 mai 2014, 10:26

Après avoir passé ta page html dans le validateur W3C: 42 Erreurs et 2 Warning...
Deux d'entre elles sautent aux yeux :
  • Error Line 85, Column 81: Saw a form start tag, but there was already an active form element. Nested forms are not allowed. Ignoring the tag.
    …orm target="_top" method="post" action="https://www.paypal.com/cgi-bin/webscr">

    Deux Formulaires imbriqués? ... ça doit pas trop marcher ça à ma connaissance (le deuxième tag de formulaire est ignoré) et peut etre que ça ne poste pas au bon endroit...j'ai pas lu le code en entier!
  • Error Line 91, Column 166: Duplicate attribute name.
    …us simple et la plus sécurisée !" name="submit" src="https://www.paypalobjects

    Un attribut dupliqué, ça peut aussi être à l'origine de ton problème!
Hope it will help :wink: et si tu veux voir les autres erreurs : http://validator.w3.org/#validate_by_input

Problème code PHP pour formulaire de contact complex

par seb95 » 29 avr. 2014, 23:35

Bonjours j'ai créer un formulaire de contact avec un lien de payement avec plusieurs champs à remplir pour le visiteurs, lorsque les champs
sont remplient et l'utilisateur valide un lien vers un Paypal pour le payements marche mais je rencontre un problème que je n'arrive pas à
résoudre lorsque je valide il me renvoie sur cette pages
Quelqu'un pourrait t'il m'aider je mets mon code source HTML et PHP merci bien

Pages Erreurs :
envoyer le formulaire."; $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; // on teste si le formulaire a été soumis if (!isset($_POST['envoi'])) { // formulaire non envoyé echo '

'.$message_erreur_formulaire.'

'."\n"; } else { /* * cette fonction sert à nettoyer et enregistrer un texte */ function Rec($text) { $text = htmlspecialchars(trim($text), ENT_QUOTES); if (1 === get_magic_quotes_gpc()) { $text = stripslashes($text); } $text = nl2br($text); return $text; }; /* * Cette fonction sert à vérifier la syntaxe d'un email */ function IsEmail($email) { $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(? Smiley decu ? Smiley decu ?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:
(? Smiley decu ?:[01]?\d1,2|2[0−4]\d|25[0−5])\.)3(?:[01]?\d1,2|2[0−4]\d|25[0−5])
))$/', $email); return (($value === 0) || ($value === false)) ? false : true; } // formulaire envoyé, on récupère tous les champs. $forme = (isset($_POST['forme'])) ? Rec($_POST['forme']) : ''; $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : ''; $CodePostal = (isset($_POST['CodePostal'])) ? Rec($_POST['CodePostal']) : ''; $Ville = (isset($_POST['Ville'])) ? Rec($_POST['Ville']) : ''; $Tel = (isset($_POST['Tel'])) ? Rec($_POST['Tel']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $nom1 = (isset($_POST['nom1'])) ? Rec($_POST['nom1']) : ''; $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : ''; $adresse1 = (isset($_POST['adresse1'])) ? Rec($_POST['adresse1']) : ''; $CodePostal1 = (isset($_POST['CodePostal1'])) ? Rec($_POST['CodePostal1']) : ''; $Ville1 = (isset($_POST['Ville1'])) ? Rec($_POST['Ville1']) : ''; $Tel1 = (isset($_POST['Tel1'])) ? Rec($_POST['Tel1']) : ''; $date = (isset($_POST['date'])) ? Rec($_POST['date']) : ''; $nomdelasalle = (isset($_POST['nomdelasalle'])) ? Rec($_POST['nomdelasalle']) : ''; $adresse2 = (isset($_POST['adresse2'])) ? Rec($_POST['adresse2']) : ''; $CodePostal2 = (isset($_POST['CodePostal2'])) ? Rec($_POST['CodePostal2']) : ''; $Ville2 = (isset($_POST['Ville2'])) ? Rec($_POST['Ville2']) : ''; // On va vérifier les variables et l'email ... $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré if (($nom != '') && ($adresse != '') && ($CodePostal != '')($Ville != '') && ($Tel != '') && ($email != '') && ($nom1 != '')($prenom != '') && ($adresse1 != '') && ($CodePostal1 != '') && ($Ville1 != '')($Tel1 != '') && ($date != '') && ($nomdelasalle != '') && ($adresse2 != '') && ($CodePostal2 != '') && ($Ville2 != '')) { // les 4 variables sont remplies, on génère puis envoie le mail $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" . 'Reply-To:'.$email. "\r\n" . 'X-Mailer Smiley langue HP/'.phpversion(); // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; // Remplacement de certains caractères spéciaux $message = str_replace("'","'",$message); $message = str_replace("’","'",$message); $message = str_replace(""",'"',$message); $message = str_replace('
','',$message); $message = str_replace('
','',$message); $message = str_replace("<","<",$message); $message = str_replace(">",">",$message); $message = str_replace("&","&",$message); // Envoi du mail if (mail($cible, $objet, $message, $headers)) { echo '

'.$message_envoye.'

'."\n"; } else { echo '

'.$message_non_envoye.'

'."\n"; }; } else { // une des 3 variables (ou plus) est vide ... echo '

'.$message_formulaire_invalide.' Retour au formulaire

'."\n"; }; }; // fin du if (!isset($_POST['envoi'])) if (($err_formulaire) || (!isset($_POST['envoi']))) { }; ?>

Code source :



PHP
<?php



//Ecrivez votre adresse e-mail entre les guillemets

$destinataire='[email protected]';



// copie ? (envoie une copie au visiteur)

$copie = 'oui'; // 'oui' ou 'non'



// Messages de confirmation du mail

$message_envoye = "Votre message nous est bien parvenu !";

$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Messages d'erreur du formulaire

$message_erreur_formulaire = "Vous devez d'abord <a href=\"Formulaire.html\">envoyer le formulaire</a>.";

$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

// on teste si le formulaire a été soumis

if (!isset($_POST['envoi']))

{

// formulaire non envoyé

echo '<p>'.$message_erreur_formulaire.'</p>'."\n";

}

else

{



/*

* cette fonction sert à nettoyer et enregistrer un texte

*/

function Rec($text)

{

$text = htmlspecialchars(trim($text), ENT_QUOTES);

if (1 === get_magic_quotes_gpc())

{

$text = stripslashes($text);

}

$text = nl2br($text);

return $text;

};

/*

* Cette fonction sert à vérifier la syntaxe d'un email

*/

function IsEmail($email)

{

$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?  Smiley decu ?  Smiley decu ?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:
(?  Smiley decu ?:[01]?\d1,2|2[0&#8722;4]\d|25[0&#8722;5])\.)3(?:[01]?\d1,2|2[0&#8722;4]\d|25[0&#8722;5])
))$/', $email);

return (($value === 0) || ($value === false)) ? false : true;

}



// formulaire envoyé, on récupère tous les champs.

$forme = (isset($_POST['forme'])) ? Rec($_POST['forme']) : '';

$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';

$adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : '';

$CodePostal = (isset($_POST['CodePostal'])) ? Rec($_POST['CodePostal']) : '';

$Ville = (isset($_POST['Ville'])) ? Rec($_POST['Ville']) : '';

$Tel = (isset($_POST['Tel'])) ? Rec($_POST['Tel']) : '';

$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';

$nom1 = (isset($_POST['nom1'])) ? Rec($_POST['nom1']) : '';

$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';

$adresse1 = (isset($_POST['adresse1'])) ? Rec($_POST['adresse1']) : '';

$CodePostal1 = (isset($_POST['CodePostal1'])) ? Rec($_POST['CodePostal1']) : '';

$Ville1 = (isset($_POST['Ville1'])) ? Rec($_POST['Ville1']) : '';

$Tel1 = (isset($_POST['Tel1'])) ? Rec($_POST['Tel1']) : '';

$date = (isset($_POST['date'])) ? Rec($_POST['date']) : '';

$nomdelasalle = (isset($_POST['nomdelasalle'])) ? Rec($_POST['nomdelasalle']) : '';

$adresse2 = (isset($_POST['adresse2'])) ? Rec($_POST['adresse2']) : '';

$CodePostal2 = (isset($_POST['CodePostal2'])) ? Rec($_POST['CodePostal2']) : '';

$Ville2 = (isset($_POST['Ville2'])) ? Rec($_POST['Ville2']) : '';

// On va vérifier les variables et l'email ...

$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

if (($nom != '') && ($adresse != '') && ($CodePostal != '')($Ville != '') && ($Tel != '') && ($email != '') && ($nom1 != '')($prenom != '') && ($adresse1 != '') && ($CodePostal1 != '') && ($Ville1 != '')($Tel1 != '') && ($date != '') && ($nomdelasalle != '') && ($adresse2 != '') && ($CodePostal2 != '') && ($Ville2 != ''))

{

// les 4 variables sont remplies, on génère puis envoie le mail

$headers = 'MIME-Version: 1.0' . "\r\n";

$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .

'Reply-To:'.$email. "\r\n" .

'X-Mailer  Smiley langue HP/'.phpversion();

// envoyer une copie au visiteur ?

if ($copie == 'oui')

{

$cible = $destinataire.','.$email;

}

else

{

$cible = $destinataire;

};

// Remplacement de certains caractères spéciaux

$message = str_replace("'","'",$message);

$message = str_replace("&#8217;","'",$message);

$message = str_replace(""",'"',$message);

$message = str_replace('<br>','',$message);

$message = str_replace('<br />','',$message);

$message = str_replace("<","<",$message);

$message = str_replace(">",">",$message);

$message = str_replace("&","&",$message);

// Envoi du mail

if (mail($cible, $objet, $message, $headers))

{

echo '<p>'.$message_envoye.'</p>'."\n";

}

else

{

echo '<p>'.$message_non_envoye.'</p>'."\n";

};

}

else

{

// une des 3 variables (ou plus) est vide ...

echo '<p>'.$message_formulaire_invalide.' <a href="Formulaire.html">Retour au formulaire</a></p>'."\n";

};

}; // fin du if (!isset($_POST['envoi']))





if (($err_formulaire) || (!isset($_POST['envoi'])))

{



};

?>




HTML
<!DOCTYPE html>

<html>

<head>

<title>My/Salle.com</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<link rel="stylesheet" href="Index-style.css" type="text/css" /> 

</head>

<body>

<div id="page">

<header id="header" class="header" role="banner">

<a id="logo" class="header__logo" rel="home" title="Accueil" href="index.html">

<img class="header__logo-image" alt="Accueil" src="CSS/Images/Logo.jpg">

</a>

</header>

<div id="main">

<div id="content1" class="column" role="main">

<h1>Formulaire de location à remplir obligatoirement</h1>

<div id="coordonnees" class="column" role="main">

<p class="titre-coord">LA STRUCTURE</p>

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

<p class="forme"><label for="forme">Forme Juridique</label> : <input type="text" name="forme" tabindex="1" placeholder="" required/></p> 

<p class="Nom"><label for="nom">Nom</label> : <input type="text" name="nom" placeholder="Entrez votre nom" required/></p>

<p class="adresse"><label for="adresse">Adresse</label> : <input type="text" name="adresse" tabindex="2" placeholder="Entrez votre adresse"required/> </p>

<p class="code"><label for="CodePostal">Code Postal</label> : <input type="text" name="CodePostal" tabindex="3" placeholder="Code Postal"required/> </p>

<p class="ville"><label for="Ville">Ville</label> : <input type="text" name="Ville" tabindex="4" placeholder="Ville"required/> </p>

<p class="telephone"><label for="Tel">Tél</label> : <input type="text" name="Tel" tabindex="5" placeholder="Tél"required/> </p>

<p class="emailBis"><label for="email">Email</label> : <input type="email" name="email" tabindex="6" placeholder="Entrez une adresse valide"required/></p>

<p class="titre-coord-orga">ORGANISATEUR</p>

<p class="Nom1"><label for="nom1">Nom</label> : <input type="text" name="nom1" tabindex="7" placeholder="Entrez votre nom" required/></p>

<p class="prenom"><label for="prenom">Prénom</label> : <input type="text" name="prenom" tabindex="8" placeholder="Entrez votre prénom"required/> </p>

<p class="adresse1"><label for="adresse1">Adresse</label> : <input type="text" name="adresse1" tabindex="9" placeholder="Entrez votre adresse"required/> </p>

<p class="Code1"><label for="CodePostal1">Code Postal</label> : <input type="text" name="CodePostal1" tabindex="10" placeholder="Ville"required/> </p>

<p class="ville1"><label for="Ville1">Ville</label> : <input type="text" name="Ville1" tabindex="11" placeholder="Code Postal"required/> </p>

<p class="telephone1"><label for="Tel1">Tél</label> : <input type="text" name="Tel1" tabindex="12" placeholder="Ville"required/> </p> 

<p class="titre-coord-events">LIEU ET DATE DE L'EVENEMENT</p> 

<p class="date"><label for="date">Date de l'évènement</label> : <input type="text" name="date" tabindex="13" placeholder="Date"required/> </p>

<p class="nomdelasalle"><label for="nomdelasalle">Nom de la salle</label> : <input type="text" name="nomdelasalle" tabindex="14" placeholder="Nom de la Salle"required/> </p>

<p class="adresse2"><label for="adresse2">Adresse</label> : <input type="text" name="adresse2" tabindex="15" placeholder="Adresse de la salle"required/> </p>

<p class="Code2"><label for="CodePostal2">Code Postal</label> : <input type="text" name="CodePostal2" tabindex="16" placeholder="Code Postal"required/> </p>

<p class="ville2"><label for="Ville2">Ville</label> : <input type="text" name="Ville2" tabindex="17" placeholder="Ville"required/> </p>

<p class="declare"> <input type="radio" name="declara" value="1">Je déclare avoir pris connaissance et accepte 

<a target="_blank" >les conditions générales de location du TPE.</a></p>

<form target="_top" method="post" action="https://www.paypal.com/cgi-bin/webscr">

<input type="hidden" value="_s-xclick" name="cmd"/>

<input type="hidden" value="FBLV5H8NDRMH4" name="hosted_button_id"/>

<input type="submit" name="envoi" value="Valider" tabindex="17" border="0" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !" name="submit" src="https://www.paypalobjects.com/fr_FR/FR/i/btn/btn_paynowCC_LG.gif"/>

</form>

</form>

</div>

</div>

</div>

<footer id="footer" class="region-footer">

<ul class="navbar">

<li><a href="apropos.html">A propos</a>

<li><a href="ConditionsGenerales.html">Conditions generales</a>

<li><a href="MentionsLegales.html">Montions legales</a>

</footer>

</ul>

</div>

</body>

</html>
Merci bien à qui m'aidera