8791 sujets

Développement web côté serveur, CMS

Bonjour à tous !

J'ai crée un petit formulaire de contact html qui appelle un fichier php pour le valider et envoyer un mail. Jusque-là classique, tout va bien. Mon problème vient du traitement des erreurs. Comment signaler une erreur à un utilisateur ? Le plus évident c'est en javascript. Mais si l'utilisateur a désactivé javascript c'est mort. D'où mon idée de le faire en php. Et voilà ma question : comment modifier en php la page d'un utilisateur ? Après soumission du formulaire le lien client-serveur est coupé si je ne dit pas de bêtise. Donc déjà je dois sans doute créer une session pour conserver ce lien. Et après ???

Des idées sur la question ? La problématique est archi-classique donc il doit bien exister des solutions ?
Modifié par Bob33 (01 Aug 2009 - 11:32)
Salut,

En cours j'avais utilisé une session, je stockais les données dans un tableau après traitement et renvoyais vers la page en question avec ce tableau qui était lui aussi vérifié et j'affichais les erreurs avec des conditions.

Sinon le javascript est pas mal pour ne pas avoir à charger la page, donc je te conseillerais une première fois en php qui va contrôler les données avec sessions et tout le tralala, quand il fonctionne rajoute une surcouche de javascript qui va vérifier les données avant le php comme ça c'est tout bon tout de suite.

J'ai aussi utilisé une méthode différente sur mon site perso, la page avec le formulaire s'appelle elle même, les contrôles sont fais par cette même page et les erreurs sont affichées en fonction de ce qui est passé par le POST.
Bonjour,

Pour commencer, quel est ton niveau de compétence en PHP ?


Un formulaire peut effectivement être vérifié avant envoie au serveur via JS, c'est bien, si c'est bien fait, car cela évite d'envoyer des données érronées au serveur et limite donc les transferts d'info. Par contre, certains utilisateurs peuvent effectivement désactiver JS.

C'est pour cela que, dans tous les cas (JS activé ou non) il faudra faire un check avec PHP.

Dans ce cas, il ne sera pas question de modifier la page avec PHP, mais de la générer avec les messages d'erreur eventuels nécessaires.

EDIT post réponse de N-J : L'utilisation d'une session n'est vraiment pas nécessaire, un formulaire envoyant des données via $_POST (ou $_GET), il est facile de transférer ces informations (champs de formulaire caché pour demander confirmation, champs de formulaire non caché pour demander correction)...
Modifié par Laurie-Anne (31 Jul 2009 - 14:32)
Il faut que ton php vérifie la valeur des variables envoyées via le formulaire et notifie l'utilisateur si erreur il y a.

Par exemple, tu peux vérifier si la variable "email" a été envoyée et si elle n'est pas nulle comme ceci :

if(isset($_POST['email'] && $_POST['email'] != '')
{
       echo 'Merci.';
}
else
{
      echo 'Merci de renseigner votre email.';
}


Il doit y avoir un bon demi-million de tutoriels sur comment gérer ce genre de choses sur le net.
Modifié par Skoua (31 Jul 2009 - 14:31)
Merci pour vos réponses. Mais ca ne fait pas ce que je veux. Les traitements d'erreurs à base d'echo on en trouve effectivement plein sur le net. Mais ca les affiche dans la page php de vérification, pas dans la page html du formulaire.

Ce que je souhaiterai c'est recharger la page de formulaire en y ajoutant les messages d'erreurs à l'endroit ou les erreurs se sont produites.

@Poto de Simon K -> Ton idée de la page qui s'appelle et se vérifie elle-même donne effectivement le type de résultat souhaité. Mais celà veut dire que le client a en local la page qui sert à faire les vérifications. Ca ne me semble pas très bon niveau sécurité.

@Laurie-Anne -> Programmer en php n'est pas un problème.

Merci de votre aide.
Modifié par Bob33 (31 Jul 2009 - 22:54)
C'est effectivement la solution que m'a proposé Poto de Simon K. Mais n'y a-t-il pas un problème de sécurité en exposant les vérifications à l'utilisateur ? Certes en php il ne les voit pas "naturellement". Mais il me semble que des plug-in existent pour rendre visible le php...
Bob33 a écrit :
Certes en php il ne les voit pas "naturellement". Mais il me semble que des plug-in existent pour rendre visible le php...
Non : PHP est exécuté côté serveur et le code "n'existe plus" dans la page qui html est générée.
Bob33 a écrit :
Mais ca ne fait pas ce que je veux. Les traitements d'erreurs à base d'echo on en trouve effectivement plein sur le net. Mais ca les affiche dans la page php de vérification, pas dans la page html du formulaire.


Faut pas lire les tutos à moitié, celui que je te proposais faisait ce que tu voulais.