Problème code formulaire php/html

Fermé
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 - 8 sept. 2009 à 20:58
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 - 9 sept. 2009 à 21:46
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
A voir également:

18 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 sept. 2009 à 21:09
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 ???
0
chrisman77 Messages postés 10 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 10 avril 2012
8 sept. 2009 à 21:15
son code ne me semble pas avoir des problèmes...
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
8 sept. 2009 à 21:17
bah écoute oui s'est ça qui est bizarre.
pourquoi il marche avec toi ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 sept. 2009 à 21:19
parce qu'il l'a nommé en .php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
8 sept. 2009 à 21:22
ha il faut que je le nomme en .HTML?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 sept. 2009 à 21:26
NON il faut que tu le nomme en .php si tu veux que la partie php soit interprétée
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
8 sept. 2009 à 21:27
s'est ce que j'ai fai justement, mais ça ne fonctionne pas.
Vous ça fonctionne?
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
8 sept. 2009 à 21:47
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
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 sept. 2009 à 14:42
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

??
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
9 sept. 2009 à 16:03
Bonjour,

C'est un lien de type <a href="contact.php">Contact</a>
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
9 sept. 2009 à 16:39
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+
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
9 sept. 2009 à 17:50
Bonjour,

Merci pour le lien, je vais regarder ça en détail et je vous tiens au courant.
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
9 sept. 2009 à 18:15
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.
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
9 sept. 2009 à 18:34
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]
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 sept. 2009 à 19:15
Dis moi cette page contact.html tu l'as mise sur un serveur ?
ou tu la lances depuis ton explorateur windows ?
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
9 sept. 2009 à 19:18
pour le moment depuis l'explorateur windows, je ne les ais pas encore fait passer par filezilla.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 sept. 2009 à 20:50
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
0
bloodboyz Messages postés 50 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 26 février 2010 1
9 sept. 2009 à 21:46
Ha ok d'accord! moi je pensais que ça n'était pas obligatoire qu'il soit en ligne parce-qu'il n'y avait pas besoin de base de donné, de MySQL et autre.

Bon dans ce cas je vais faire comme tu me dis.

Merci beaucoup à tous =)

Bonne soirée
0