8711 sujets

Développement web côté serveur, CMS

Bonjour à tous !

Je suis absolument novice en PHP, j'ai besoin de votre aide pour un basique de chez basique en programmation aussi j'espère que vous pourrez m'apporter de l'aide.

Voilà, mon site est codé et j'ai ajouté un formulaire de contact sur une page.

La question est : pouvez-vous m'aider pour le faire fonctionner ?
Je ne sais absolument pas quoi ajouter pour que le formulaire de contact fonctionne.

Pourriez-vous m'éclairer sur le script à utiliser pour que mon formulaire soit opérationnel ?

Merci d'avance à vous tous.

Le code du formulaire.


 <form class="contact_form" action="#" method="post" name="contact_form">
    <ul>
        <li>
             <h2>Envoyer un message</h2>
             <!--<span class="required_notification">* Denotes Required Field</span>-->
        </li>
        <li>
            <label for="name">Nom :</label>
            <input type="text" id="name" placeholder="Nom & prénom" required />
        </li>
        <li>
            <label for="email">Adresse Email :</label>
            <input type="email" name="email" id="email" placeholder="adresse@email.com" required pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$"/>
            <span class="form_hint">Pensez à bien vérifier votre adresse</span>
        </li>
        <!-- <li>
            <label for="website">Website:</label>
            <input type="url" name="website" placeholder="http://johndoe.com" required pattern="(http|https)://.+"/>
            <span class="form_hint">Proper format "http://someaddress.com"</span>
        </li>-->
        <li>
          <label for="message">Votre message :</label>
            <textarea name="message" id="message" cols="40" rows="6" placeholder="(…)" required ></textarea>
        </li>
        <li>
        	<button class="submit" type="submit">ENVOYER</button>
        </li>
    </ul>
</form>
Salut leo2v, merci pour ta réponse.

Honnêtement comme je ne connais rien au langage utilisé dans l'exemple fourni, j'ai bien peur de ne rien comprendre du tout malheureusement…

Y aurait-il une adaptation simple de ce code afin qu'il fonctionne avec mon formulaire ?
Ça m'aiderait bien à comprendre vraiment.

Désolé, je suis perdu là-dedans.
oki on va repprendre du debut alors

<form class="contact_form" action="#" method="post" name="contact_form">
    <ul>
        <li>
             <h2>Envoyer un message</h2>
             <!--<span class="required_notification">* Denotes Required Field</span>-->
        </li>
        <li>
            <label for="name">Nom :</label>
            <input type="text" id="name" placeholder="Nom & prénom" required />
        </li>
        <li>
            <label for="email">Adresse Email :</label>
            <input type="email" name="email" id="email" placeholder="adresse@email.com" required pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$"/>
            <span class="form_hint">Pensez à bien vérifier votre adresse</span>
        </li>
        <!-- <li>
            <label for="website">Website:</label>
            <input type="url" name="website" placeholder="http://johndoe.com" required pattern="(http|https)://.+"/>
            <span class="form_hint">Proper format "http://someaddress.com"</span>
        </li>-->
        <li>
          <label for="message">Votre message :</label>
            <textarea name="message" id="message" cols="40" rows="6" placeholder="(…)" required ></textarea>
        </li>
        <li>
        	<button class="submit" type="submit">ENVOYER</button>
        </li>
    </ul>
</form>


ceci n'est que la partie qui collecte les informations ok
ensuite il faut traiter ce que tu envoie donc dans ta tête il faut bien que tu comprenne les trois étapes de bases d'un envoie de mail par formulaire:
1)je collecte l'info grace au input texte
1bis)normalement je vérifie l'info qu'on me donne mais la on va faire simple ok
2) grâce action et à la méthode POST ou GET du form on va balancer les info collecter
a une page de traitement externe genre traitement.php
<form action="traitement.php" method="get">

ou à la même page ou le formulaire est codé
<form action="<?=$_SERVER['PHP_SELF']?>" method="get">

et c'est la que arrive le l'etape n3
jusque la tu suis Smiley murf
Jusqu'ici tout va bien.

Je comprends que la partie HTML du formulaire ne sert qu'a récupérer des informations
(nom, adresse email et message dans mon cas).

Je dois pour commencer créer une nouvelle page nommé "traitement.php" par exemple.
euhh juste en passent tu sais que php est un langage serveur et html un langage navigateur quant même ?????
car si on part de la ça va être chaud la
car dans ton cas il sagit d'avoir un serveur local dans ton ordi style easy php xamp ou autre pour pouvoir écrire et exécuter du php avant de le balancer sur ton serveur
Modifié par leo2v (10 Sep 2013 - 14:28)
Oui la distinction est faite.

je n'ai juste jamais mis les doigts dans le code PHP, je ne connais rien de ce langage.
Aessian a écrit :
Oui la distinction est faite.

je n'ai juste jamais mis les doigts dans le code PHP, je ne connais rien de ce langage.


a tu un serveur d'évaluation local style easy php
super donc dans ton rep racine tu crée un fichier de travail genre testform et dedans tu créer un nouveau document que tu nome index.php
et tu colle ça dedans pour commencer sur un truc simple oki

<!DOCTYPE HTML>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<body>
<form action="<?=$_SERVER['PHP_SELF']?>" method="get">
  Des petit mots: <input type="text" name="mots"><br>
  <input type="submit" value="Submit">
</form>
</body>
</html>


Modifié par leo2v (10 Sep 2013 - 14:34)
oki voici la deusième étape



<!DOCTYPE HTML>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<body>
<?php
//ici on regarde si on a poster un truc depuis le formulaire ci dessous
if (isset($_POST['envoi'])) {

$monText = $_POST['mots'];
echo $monText;

}
?>

<form action="#" method="post">
  Des petit mots: <input type="text" name="mots"><br>
 <input type="submit" name="envoi" value="Envoyer">
</form>
</body>
</html>

le petit # dis que je poste dans la même page
la c'est la meme chose avec la methode get
un avantage marrant pour le debugage c'est que tu peus lire dans la barre d'adresse les variables qui sont transmises a ta page
Par contre niveau secure c'est pas top
<!DOCTYPE HTML>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<body>
<?php
//on verifi que le formulaire a été valider la phrase dit si tu a reçu un get avec envoi passe a la suite de l'instruction normalement on met un else pour lever une exception au cas ou il n'y a rien de transmis
if (isset($_GET['envoi'])) {
//la suite est ici
// je stoc mon clef=valeur dans une variable $monText
$monText = $_GET['mots'];
//la je fait un echo de cette variable en gros tu dis au serveur ecris moi ce qu'il y a dedans
echo $monText;

}
?>

<form action="#" method="get">
  Des petit mots: <input type="text" name="mots"><br>
 <input type="submit" name="envoi" value="Envoyer">
</form>
</body>
</html>

donc si tu regarde bien pour comprendre le principe tu vois comment sont transmises les variables
donc tu vois que le input name "mots" est pris pour stocker ce qui va etre placer dans ton champs oki
Modifié par leo2v (10 Sep 2013 - 15:02)
Suite et fin
par contre il faut faire le test sur un vrais serveur sinon ça va lever une erreure
<!DOCTYPE HTML>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<body>
<?php
if (isset($_GET['envoi'])) {

$monText = $_GET['mots'];

// on prepare maintenant le formatage du mail que le serveur va envoyer
//tout ceci est l'entete de ton mail
$email_dest = "tonmail@tonfournisseur.fr";
//Ceci est le sujet que tu va recevoir dans le corps du mail
$sujet = "Vous avez reçu un super mail depuis votre site";
$entetes ="MIME-Version: 1.0 \n";
//la c'est pour dire de qui ça proviens en locurence de ton site
	$entetes .="From: tonmail@tonfournisseur\n";
//ça c'est pour renvoyer un mail a l'envoyeur
	$entetes .="Return-Path: tonmail@tonfournisseur.fr\n";
	$entetes .="Reply-To:tonmail@tonfournisseur.fr\n";
	$entetes .="Content-Type: text/html; charset=utf8 \n";
//la on commence le formatage html du mail
	$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body>\n";


//Partie HTML de l'e-mail...

		//ici tu recup la variable du GET pour la formater dans ton mail
$partie_champs_texte = "<p>Nom :  " .$monText . "</p><br>\n";

					// Fin du message HTML
					$fin = "</body></html>\n\n";
					// la tu rassemble tout le petit monde par concatenation dans une variable
					$sortie = $partie_entete . $partie_champs_texte . $fin;
					//la tu créer veritablement ton mail
						if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
					echo("Envoi du formulaire impossible");
					exit();
					} else {

                    // si c'est partis t'affiche oki
                  echo("Envoi du formulaire oki");
				 
                    exit();
                  } // Fin else
			
			} // Fin de if GET

	
	
	
?>

<form action="#" method="get">
  Des petit mots: <input type="text" name="mots"><br>
 <input type="submit" name="envoi" value="Envoyer">
</form>
</body>
</html>

Modifié par leo2v (10 Sep 2013 - 15:57)
je sais que sur easy php il faut modifier le php ini pour permettre le test d'envoie en local xamp je connais pas trop Smiley confused
Dis moi si tu comprend pas un truc ok
je l'ai mis en demo ici mais ça balance a ma messagerie
http://webtune-culture.com/form/
Modifié par leo2v (10 Sep 2013 - 15:45)
ok, je vais regarder et tester tout ça.

j'avoue ne pas être bien sur de savoir comment intégrer ce code à mon formulaire existant…

Merci pour le coup de main et tout cas, j’essaie de comprendre comment mettre ça en place.