Problème code formulaire php/html
bloodboyz
Messages postés
50
Date d'inscription
Statut
Membre
Dernière intervention
-
bloodboyz Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
bloodboyz Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Il y a quelque moi j'avais trouver un code PHP permettant de créer un formulaire de contact. Malheureusement je ne me souviens plus du site.
Bref, sur l'un de mes anciens sites ils fonctionnait très bien, lorsque je faisait des test d'envoi d'e-mail ça marcher niquel.
Mais là, je l'ai récupéré et inséré dans une page de mon nouveau site et ça ne fonctionne pas.
En fait, c'est comme si il y avait une balise qui n'était pas refermé. Ça m'inscrit un morceau du formulaire et puis ensuite tout un tas de code en PHP.
Le problème s'est uqe je n'ai pratiquement aucune notion en PHP donc je ne peux pas vraiment voir où se trouve l'erreur. Donc je vais vous copier le code et vous pourrez me dire si oui ou non il y en a une.
<?php
//Ecrivez votre adresse e-mail entre les guillemets
$destinataire='mon@adresse.fr';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Contactez-moi</title>
<style type="text/css">
form#contact{border:2px solid red;width:70%;padding:1em}
p#msg,p#adr,p#obj{border:2px solid green;margin-right:10%;padding:10px}
p#msg textarea{border:2px solid blue;height:30em;width:80%}
p#adr input,p#obj input{border:2px solid blue}
p.bt{text-align:center}
p.bt input{border:1px red solid;width:50%}
</style>
<title>Contactez-moi</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="description" content="Tout sur les jeux vidéos PC et Consoles: News de jeux, Tests de jeux, Articles de jeux, Lexique, Combines, Téléchargement, Forum, Galerie de jeux..." />
<meta name="keywords" content="jeux vidéos, PC, XOBX 360, Test, Articles, News, Jeux, Blood-Boyz, Programmeur, Webmaster, Code, Unreal Tournament, Gears of War, Mafia, Diablo, Call of Duty, Gamers, Geek, No-life, Game, Ordinateur, Machine,
Configuration, Frontlines fuel of War, Dawn of War, Warhammer, Linux, FPS, RTS, TPS, RPG, Doom, Domm-Like, Gears of War 2, Skate" />
<meta name="author" content="Blood-Boyz" />
<title>
News
</title>
<link rel="stylesheet" type="text/css" href="base.css" media="all" />
<link rel="stylesheet" type="text/css" href="design.css" media="screen" />
</head>
<body>
<div id="global">
<div id="entete">
<h1>
Yves Seul
</h1>
<p class="sous-titre">
</p>
</div><!-- #entete -->
<div id="centre">
<div id="centre-bis">
<div id="navigation">
<ul>
<li class="gauche"><a href="accueil.html">Accueil</a></li>
<li class="gauche"><a href="news.html.html">News</a></li>
<li class="gauche"><a href="morceaux.html">Morceaux</a></li>
<li class="gauche"><a href="contacts.html">Contacts</a></li>
</ul>
</div><!-- #navigation -->
<div id="secondaire">
<!-- Vide pour le moment -->
</div><!-- #secondaire -->
<div id="principal">
<center><body style="direction: ltr;">
<?php
$Previsualiser='<p class="bt">
<input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser"></p>';
$Envoi="\n".'<p class="bt">
<input name="envoi" tabindex="4" value="Envoyer" type="submit"></p>';
if (isset($_POST['message']))
{
// La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne
$verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
//quelques remplacements pour les specialchars
$message=preg_replace('#(<|>)#', '-', $_POST['message']);
$message=str_replace('"', "'",$message);
$message=str_replace('&', 'et',$message);
$objet=preg_replace('#(<|>)#', '-', $_POST['objet']);
$objet=str_replace('"', "'",$objet);
$objet=str_replace('&', 'et',$objet);
// On assigne et/ou protège nos variables
$votremail=stripslashes(htmlentities($_POST['votremail']));
$message=stripslashes(htmlspecialchars($message));
$objet=stripslashes(htmlspecialchars($objet));
//input envoi/previsualiser
$envoi=htmlentities($_POST['envoi']);
$previsualiser=htmlentities($_POST['previsualiser']);
//on enlève les espaces
$votremail=trim($votremail);
$message=trim($message);
$objet=trim($objet);
$apercu_resultat='<p>Aperçu du résultat :</p>';
/*On vérifie si l'e mail et le message sont pleins, et on agit en fonction.
(on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/
//Si ca ne vas pas (mal rempli, mail non valide...)
if((empty($message))or(empty($objet))or(!preg_match($verif,$votremail)))
{
//les 3 champs sont vides
if(empty($votremail)and(empty($message))and(empty($objet)))
{
echo '<p>Tous les champs sont vides.</p>';
$message='';$votremail='';$objet='';$apercu_resultat='';
}
//un des champs est vide
else
{
if(!preg_match($verif,$votremail))
echo'<p>Votre adresse e-mail n\'est pas valide.</p>';
else
{
echo'<p>Il faut remplir tous les champs !</p>';
if(empty($message))
$apercu_resultat='';
}
}
}
//Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi
else
{
$domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail);
$DomaineMailExiste=checkdnsrr($domaine,'MX');
if(!$DomaineMailExiste)
echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.</p>';
elseif(!empty($previsualiser))
{
$apercu_resultat='<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés.
<br>Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer".<br>Prévisualisation :</p>';
$Previsualiser='';
}
elseif(!empty($envoi))
{
$objet='[SITE] : '.$objet;
$headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=is-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');
if(mail($destinataire,$objet,$message,$headers))
{
echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>';
$Envoi='';
$Previsualiser='';
}
else
echo'<p>Un problème est survenu durant l\'envoi du mail.</p>';
}
else
echo'<p>Une condition innatendue est survenue lors de l\'exécution du script.</p>';
}
echo $apercu_resultat;
}
else
{
echo '<p>Contactez-moi</p>';
$votremail='';$message='';
}
$bas_formulaire=$Previsualiser.$Envoi;
?>
<form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
<p id='obj'><label for='objet'>Objet de votre message :<br>
<input type='text' name='objet' id='objet' tabindex='10' size='30'></label></p>
<p id="adr"><label for="mail">Votre Adresse E-mail<br>
<input name="votremail" tabindex="20" size="30" type="text" id="mail" value="<?php echo $votremail; ?>"></label></p>
<p id="msg"><label for="message">Votre message<br>
<textarea tabindex="30" rows="20" cols="120" name="message" id="message"><?php echo $message; ?></textarea>
</label></p>
<?php echo $bas_formulaire;?>
</form>
<center><h1>Blood-Boyz</h1></center>
</center>
</div><!-- #principal -->
</div><!-- #centre-bis -->
</div><!-- #centre -->
<div id="pied">
</div><!-- #pied -->
</div><!-- #global -->
</body>
</html>
Voilà, désolé si ça n'est pas vraiment clair mais je préfère tout vous donnez plutôt que d'oublier des parties utiles du code.
Merci d'avance.
Au revoir
Il y a quelque moi j'avais trouver un code PHP permettant de créer un formulaire de contact. Malheureusement je ne me souviens plus du site.
Bref, sur l'un de mes anciens sites ils fonctionnait très bien, lorsque je faisait des test d'envoi d'e-mail ça marcher niquel.
Mais là, je l'ai récupéré et inséré dans une page de mon nouveau site et ça ne fonctionne pas.
En fait, c'est comme si il y avait une balise qui n'était pas refermé. Ça m'inscrit un morceau du formulaire et puis ensuite tout un tas de code en PHP.
Le problème s'est uqe je n'ai pratiquement aucune notion en PHP donc je ne peux pas vraiment voir où se trouve l'erreur. Donc je vais vous copier le code et vous pourrez me dire si oui ou non il y en a une.
<?php
//Ecrivez votre adresse e-mail entre les guillemets
$destinataire='mon@adresse.fr';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Contactez-moi</title>
<style type="text/css">
form#contact{border:2px solid red;width:70%;padding:1em}
p#msg,p#adr,p#obj{border:2px solid green;margin-right:10%;padding:10px}
p#msg textarea{border:2px solid blue;height:30em;width:80%}
p#adr input,p#obj input{border:2px solid blue}
p.bt{text-align:center}
p.bt input{border:1px red solid;width:50%}
</style>
<title>Contactez-moi</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="description" content="Tout sur les jeux vidéos PC et Consoles: News de jeux, Tests de jeux, Articles de jeux, Lexique, Combines, Téléchargement, Forum, Galerie de jeux..." />
<meta name="keywords" content="jeux vidéos, PC, XOBX 360, Test, Articles, News, Jeux, Blood-Boyz, Programmeur, Webmaster, Code, Unreal Tournament, Gears of War, Mafia, Diablo, Call of Duty, Gamers, Geek, No-life, Game, Ordinateur, Machine,
Configuration, Frontlines fuel of War, Dawn of War, Warhammer, Linux, FPS, RTS, TPS, RPG, Doom, Domm-Like, Gears of War 2, Skate" />
<meta name="author" content="Blood-Boyz" />
<title>
News
</title>
<link rel="stylesheet" type="text/css" href="base.css" media="all" />
<link rel="stylesheet" type="text/css" href="design.css" media="screen" />
</head>
<body>
<div id="global">
<div id="entete">
<h1>
Yves Seul
</h1>
<p class="sous-titre">
</p>
</div><!-- #entete -->
<div id="centre">
<div id="centre-bis">
<div id="navigation">
<ul>
<li class="gauche"><a href="accueil.html">Accueil</a></li>
<li class="gauche"><a href="news.html.html">News</a></li>
<li class="gauche"><a href="morceaux.html">Morceaux</a></li>
<li class="gauche"><a href="contacts.html">Contacts</a></li>
</ul>
</div><!-- #navigation -->
<div id="secondaire">
<!-- Vide pour le moment -->
</div><!-- #secondaire -->
<div id="principal">
<center><body style="direction: ltr;">
<?php
$Previsualiser='<p class="bt">
<input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser"></p>';
$Envoi="\n".'<p class="bt">
<input name="envoi" tabindex="4" value="Envoyer" type="submit"></p>';
if (isset($_POST['message']))
{
// La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne
$verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
//quelques remplacements pour les specialchars
$message=preg_replace('#(<|>)#', '-', $_POST['message']);
$message=str_replace('"', "'",$message);
$message=str_replace('&', 'et',$message);
$objet=preg_replace('#(<|>)#', '-', $_POST['objet']);
$objet=str_replace('"', "'",$objet);
$objet=str_replace('&', 'et',$objet);
// On assigne et/ou protège nos variables
$votremail=stripslashes(htmlentities($_POST['votremail']));
$message=stripslashes(htmlspecialchars($message));
$objet=stripslashes(htmlspecialchars($objet));
//input envoi/previsualiser
$envoi=htmlentities($_POST['envoi']);
$previsualiser=htmlentities($_POST['previsualiser']);
//on enlève les espaces
$votremail=trim($votremail);
$message=trim($message);
$objet=trim($objet);
$apercu_resultat='<p>Aperçu du résultat :</p>';
/*On vérifie si l'e mail et le message sont pleins, et on agit en fonction.
(on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/
//Si ca ne vas pas (mal rempli, mail non valide...)
if((empty($message))or(empty($objet))or(!preg_match($verif,$votremail)))
{
//les 3 champs sont vides
if(empty($votremail)and(empty($message))and(empty($objet)))
{
echo '<p>Tous les champs sont vides.</p>';
$message='';$votremail='';$objet='';$apercu_resultat='';
}
//un des champs est vide
else
{
if(!preg_match($verif,$votremail))
echo'<p>Votre adresse e-mail n\'est pas valide.</p>';
else
{
echo'<p>Il faut remplir tous les champs !</p>';
if(empty($message))
$apercu_resultat='';
}
}
}
//Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi
else
{
$domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail);
$DomaineMailExiste=checkdnsrr($domaine,'MX');
if(!$DomaineMailExiste)
echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.</p>';
elseif(!empty($previsualiser))
{
$apercu_resultat='<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés.
<br>Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer".<br>Prévisualisation :</p>';
$Previsualiser='';
}
elseif(!empty($envoi))
{
$objet='[SITE] : '.$objet;
$headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=is-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');
if(mail($destinataire,$objet,$message,$headers))
{
echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>';
$Envoi='';
$Previsualiser='';
}
else
echo'<p>Un problème est survenu durant l\'envoi du mail.</p>';
}
else
echo'<p>Une condition innatendue est survenue lors de l\'exécution du script.</p>';
}
echo $apercu_resultat;
}
else
{
echo '<p>Contactez-moi</p>';
$votremail='';$message='';
}
$bas_formulaire=$Previsualiser.$Envoi;
?>
<form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
<p id='obj'><label for='objet'>Objet de votre message :<br>
<input type='text' name='objet' id='objet' tabindex='10' size='30'></label></p>
<p id="adr"><label for="mail">Votre Adresse E-mail<br>
<input name="votremail" tabindex="20" size="30" type="text" id="mail" value="<?php echo $votremail; ?>"></label></p>
<p id="msg"><label for="message">Votre message<br>
<textarea tabindex="30" rows="20" cols="120" name="message" id="message"><?php echo $message; ?></textarea>
</label></p>
<?php echo $bas_formulaire;?>
</form>
<center><h1>Blood-Boyz</h1></center>
</center>
</div><!-- #principal -->
</div><!-- #centre-bis -->
</div><!-- #centre -->
<div id="pied">
</div><!-- #pied -->
</div><!-- #global -->
</body>
</html>
Voilà, désolé si ça n'est pas vraiment clair mais je préfère tout vous donnez plutôt que d'oublier des parties utiles du code.
Merci d'avance.
Au revoir
A voir également:
- Problème code formulaire php/html
- Whatsapp formulaire opposition - Guide
- Code ascii - Guide
- Formulaire de réclamation facebook - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
18 réponses
je l'ai récupéré et inséré dans une page de mon nouveau site
est ce que ta page se nomme bien en .php ???
est ce que ta page se nomme bien en .php ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour information, j'ai une page appeler "contacts.html". Sur celle-ci, il y a un lien qui va vers "contacts.php" et s'est donc sur cette page qu'il y a tout le code PHP.
Euh est-ce que se serrait possible d'avoir un MSN ou autre pour que ça soit plus facile et pour que je puisse donner des screenshot, des morceaux de code et autre.
Merci
Euh est-ce que se serrait possible d'avoir un MSN ou autre pour que ça soit plus facile et pour que je puisse donner des screenshot, des morceaux de code et autre.
Merci
je n'ai pas msm, (je n'aime pas msn)
Ton code contact.php fonctionne chez moi
par contre quand tu dis j'ai un lien vers contact.php dans ma page contact.html
est ce un lien du type <a href="contact.php">Contact</a>
ou du type <link href="contact.php
??
Ton code contact.php fonctionne chez moi
par contre quand tu dis j'ai un lien vers contact.php dans ma page contact.html
est ce un lien du type <a href="contact.php">Contact</a>
ou du type <link href="contact.php
??
Salut, si vous avez toujours pas réglé votre probleme, vous pouvez vous rendre ici, vous y trouverez des tutos a propos des formulaires...
a+
a+
J'ai regarder le lien et vu les cours pour faire un formulaire en PHP. Le problème là s'est qu'il est trop "design". Celui que j'ai mis en code plus au dessus est vraiment tout simple et s'est ce dont j'aurais besoin.
Sinon, vous ne voyez pas pourquoi quand vous vous collé le code ça fonctionne alors que moi non?
Avez-vous collé le code en entier? parce-que ça vient peut être de mon code HTML. Je n'ai pas de problème sur les autres pages mais on ne sait jamais.
Sinon, vous ne voyez pas pourquoi quand vous vous collé le code ça fonctionne alors que moi non?
Avez-vous collé le code en entier? parce-que ça vient peut être de mon code HTML. Je n'ai pas de problème sur les autres pages mais on ne sait jamais.
pour être plus clair j'ai fait un screenshot de ma page internet lorsque j'ai cliquer sur le lien <a href=contact.php">test</a> dans ma pages "contact.html".
[url=https://www.casimages.com/i/090909063720711357.jpg.html][img]http://nsa09.casimages.com/img/2009/09/09/mini_090909063720711357.jpg[/img][/url]
[url=https://www.casimages.com/i/090909063720711357.jpg.html][img]http://nsa09.casimages.com/img/2009/09/09/mini_090909063720711357.jpg[/img][/url]
Dis moi cette page contact.html tu l'as mise sur un serveur ?
ou tu la lances depuis ton explorateur windows ?
ou tu la lances depuis ton explorateur windows ?
Ha ben voilà !!
Pour que le php soit interprété donc que son code n'apparaisse plus mais le résultat, il faut que ta page soit sur un serveur web
ce serveur peut être distant (chez un hebergeur)
ou pour des tests tu peux mettre ta page sur un serveur "local" sur ton PC, pour cela il faut installer par exemple Wamp qui est un serveur local et évidement que Wamp soit lancé
et si local tu dois taper DANS TON NAVIGATEUR l'adresse http://localhost/ton_script.php
sinon transfères ta page sur le site et tu verra ça ira mieux
Pour que le php soit interprété donc que son code n'apparaisse plus mais le résultat, il faut que ta page soit sur un serveur web
ce serveur peut être distant (chez un hebergeur)
ou pour des tests tu peux mettre ta page sur un serveur "local" sur ton PC, pour cela il faut installer par exemple Wamp qui est un serveur local et évidement que Wamp soit lancé
et si local tu dois taper DANS TON NAVIGATEUR l'adresse http://localhost/ton_script.php
sinon transfères ta page sur le site et tu verra ça ira mieux