8795 sujets

Développement web côté serveur, CMS

Suite à un post dans le salon débutant, je fais appel à votre expertise pour le conception d'un formulaire de contact en php qui respecte les standards.
Je débute en php, je ne sais pas quelle piste suivre et j'ai du mal à détecter les mauvaises solutions.

Question n° 1 :

Il vaut mieux créer un script à part, lequel sera appellé via le formulaire de la page xhtml, en fait ?

Question N°2 : tests de saisie

J'avais un petit javascript qui fonctionnait bien (twvalide.js, pour ceux qui le connaissent). Derrière, je collais de l'asp (dans une page à part) ...

D'après vous, il vaut mieux un bon java ... pardon un bon ecmascript ou php (ou les deux !) pour tester la saisie.

Dur de recommencer, on ne sais plus d'où partir et on a l'impression de ne plus rien savoir !
Il y a plusieurs chose à prendre en considération :

1 - Le formulaire en lui même : C'est du XHTML ttrès classiquement, qui sera affiché de manière habituelle, eventuellement, tu peut metre en place un script qui va générer automatiquement tes formulaire, mais le resultat sera toujour du XHTML.

2 - Le traitement des information de ton formulaire : tu vas envoyer les informations de ton formulaire à un script PHP qui va s'occuper de récupérer et traiter les informations. Ce script est totalement independant de ton formulaire, tu peut le faire comme tu veux

3 - La validation des informations : la validation des information peut ce faire de 2 manière : en javascript ou en PHP. Il faut toujours faire une validation PHP pour s'assurer que les informations sont correctes. Les validaion en Javascript sont utile pour le confort des utilisateurs, mais peut fiable car il peut être désactivé par le client.

Voila Smiley cligne
Bon, ok Jep, je retrouve mes marques.

Je vais essayer de faire un montage que je vous soumettrais, c'est le mieux.

Merci
Je fais un petit up sur ce projet laissé en plan.

En fouinant dans les topics adjacents, j'ai trouvé une ressource pour concevoir un formulaire de contact en php, dans lequel il est question d'une classe du nom de php mailer :

http://stephaneey.developpez.com/tutoriel/php/phpmailer/

Il y est question d'installation ...

Quelqu'un peut-il m'expliquer pourquoi il est nécessaire d'installer quelque chose et où il faut l'installer ?

Histoire de voir si je suis sur une bonne piste.

Si il y en a d'autres, je suis preneur !

PS : je débute en php, j'ai fait un peu d'asp.

Merci pour votre php-guidage.

Smiley biggrin
Bonjour,
je ne peut pas répondre à ta question mais savez-vous où trouver des scripts PHP pour le traitement des formulaires ?
merci
Hum Vero, PHPmailer est une classe php, tu n'est pas sur la bonne voie Smiley lol

ttoine, tu peu prendre par exemple des test dans des exemple pour debutant sur http://www.phpdebutant.org...

Vero, regarde un peu je vais t'expliquer comment faire a ma facon(sans te le faire completmeent sinon c'est pas drole Smiley lol )

<?php
if(isset($_POST['pseudo']) and $_POST['bouton'] == "Envoyer") { // Si "pseudo" est bien defini, et si on vien bien du formulaire avec le bouton qui s'appelle bouton et qui vaut "Envoyer". Je fait comme ca pour eviter les problemes lorqu'il y a plusieurs formulaire avec des champs similaire.
if(!empty($_POST['pseudo'])) { // si pseudo n'est PAS vide

// Envoie du mail [cligne]

} else $erreur = "Les pseudo est vide !";
}


<form method="post" action="">
<p><?php if(isset($erreur)) echo "<strong>".$erreur."</strong><br />"; ?>
<input type="text" name="pseudo" />
<input type="submit" name="bouton" value="Envoyer" />
</p>
</form>


Voila, comme ca avec une seul et meme page, je peu tout faire.
Les tests se font en haut du formulaire ou de la page et si le champs pseudo est vide on peu le dire a l'utilisateur Smiley murf
Jep a écrit :
Il y a plusieurs chose à prendre en considération :

2 - Le traitement des information de ton formulaire : tu vas envoyer les informations de ton formulaire à un script PHP qui va s'occuper de récupérer et traiter les informations. Ce script est totalement independant de ton formulaire, tu peut le faire comme tu veux

Voila Smiley cligne


Bonjour,

Bétise, le script n'est pas indépendant du formulaire. Les variables 'name' du formulaires sont à récupérer dans le script php, donc il faut que le nom soit le même.

Le javascript est optionnel, il n'a de réel intérêt que si ils permet de faire une vérification des champs avant de charger une autre page.(temps de réaction instanée).
Pour traiter les champs en php (vérification si le mail ressemble à un mail) il faut utilser des 'regex' et là j'y connais rien, désolé. Il ne faut pas oublier non plus un petit htmlentities pour limiter le 'hack' de ton script.

Pour le mail, c'est très simple (basiquement, parque qu'on peut compléxifiant le truc en spécifiant des headers, des mail a la fois text et html ...). Pour ça rien de mieux que la doc php : http://fr.php.net/manual/fr/ref.mail.php Il faut biensur que l'hebergeur autorise la fonction...
La première chose à vérifier c'est de savoir si le serveur qui héberge le site a laissé la fonctionp php mail() d'origine. Des serveurs comme free.fr ou online.net ne le permettaient jusqu'à quelques mois.
Salut,

1) Vérifie juste que la fonction mail est activée sur ton serveur (ou un équivalent). Si tu ne sais pas comment vérifier ça, je peux te refiler une page bidon qui émet un mail de test vers ton adresse.
2) A partir de là, oublie le mail : c'est la phase finale du traitement. Tu fais ton joli formulaire xhtml, et tu lui affectes une cible qui est l'adresse de ton script de traitement php (potentiellement la même page, mais ceci est un autre problème).
3) Dans cette page de traitement, tu récupères les valeurs renvoyées par ton formulaire (qui se trouvent donc dans le tableau $_POST ou $_GET suivant la méthode utilisée). Tu construis une jolie chaîne de caractères avec ça, qui te servira dans ton mail. Tu l'affiches histoire de vérifier.
4) Tu n'affiches plus la chaîne mais tu t'en sers comme paramètre de ta fonction de mail.

Comme là on sort du champ des standards, tu peux me recontacter hors forum (je t'ai mis un pm avec mon adresse msn).