IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire bancal ?


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Formulaire bancal ?
    Salut,

    J'ai essayé de mettre au point un formulaire de contact (ainsi que de réservations) pour le site d'amis... cela dit, mes compétences en PHP sont assez limitées, et j'ai vraiment appris sur le tas spécifiquement pour filer un coup de main, mais sans avoir le temps de m'y mettre à fond (et puis le PHP c'est pas mon truc, moi c'était plutôt l'assembleur 68000... un bonjour respectueux et amigal à Frédéric Mazué, à ce propos ).
    Bref, mon formulaire semble fonctionner, tout bancal qu'il soit... par contre on m'a fait remonter que parfois certains posts n’arriveraient pas ! Je ne peux pas certifier que ce soit VRAIMENT le cas (peut être des utilisateurs qui auraient 2 mains gauches), mais au cas où, si quelqu'un pouvait jeter un coup d’œil à mon script afin de voir ce qui pourrait clocher... peut-être un problème de headers, je ne sais pas... (un oeil expert y trouvera forcément à redire, mais même si le code est moche, tant qu'il marche c'est l'essentiel). Si rien ne vous parait suspect, je pourrai incriminer plus surement les utilisateurs
    Le voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
     
    $message = utf8_decode($_POST['WEcb5b684102']);
    $nom = utf8_decode($_POST['WEc7e6d48e00']);
    $prenom = utf8_decode($_POST['WEdc5f2c2d82']);
    $mail = ($_POST['WE4272d23c7a']);
    $adresse = utf8_decode($_POST['WEeba8944860']);
     
    		// Création du message
     
    		$titre = 'Contact';
    		$headers = "Return-Path:".$mail."\n";
     		$headers = 'From: '.$prenom.' '.$nom.' <'.$mail.'>'."\n";
      		$headers .= "X-Mailer: PHP ".phpversion()."n";
      		$headers .= "Reply-To: ".$mail."\n";
      		$headers .= "X-Priority: 3 (Normal)\n";
      		$headers .= "Mime-Version: 1.0\n";
    		$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
     
    		$corps.="     --- CONTACT ---\n";
    		$corps.=" \n";
    		$corps.="- Message: \n";
    		$corps.=$message."\n";
    		$corps.=" \n";
    		$corps.="- Nom: ".$nom."\n";
    		$corps.="- Prénom: ".$prenom."\n";
    		$corps.=" \n";
    		$corps.="- E-mail: ".$mail."\n";
    		$corps.=" \n";
    		$corps.="- Adresse postale: \n";
    		$corps.=$adresse."\n";
    		$corps.=" \n";
    		if(mail("monadresse@provider.com", $titre, stripslashes($corps), $headers)){
    			$ok_mail="true";
    		}else{}
     
    header("Location: merci.htm");
    exit;
     
    ?>
    Par avance, merci pour votre aide !!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux utiliser la classe PHPMailer plutôt que la fonction mail() ton mail sera mieux construit et tu auras un retour d'erreur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse, mais comme je l'évoquais, j'ai bien peur de me perdre dans la reconstruction d'un script qui atteindrait les limites de mes compétences très sommaires ! J'y passerais des jours sans être certain d'arriver à un résultat probant... alors que pour vous ça se fait certainement en quelques minutes

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Hum... Le problème dans ton script, c'est que si le mail est bien envoyé, ton utilisateur est redirigé vers la page "merci" et si le mail n'est pas bien envoyé, il va aussi être redirigé vers la page "merci". Aucune différence, c'est transparent pour l'utilisateur.
    Même sans reprendre le script pour intégrer PhpMailer (ce qui serait quand même mieux), tu pourrais prévoir un cas où le mail ne part pas. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (mail("monadresse@provider.com", $titre, stripslashes($corps) , $headers)) {
        header("Location: merci.htm");
        exit;
    }
    else {
        echo "Oups ! le mail n'est pas parti!";
    }
    Ajouter de la validation serait aussi une bonne idée. Par exemple, si ton utilisateur ne renseigne pas son adresse mail, ton entête va être bancal et l'envoi du mail risque de se planter.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci pour ton aide Celira !

    Effectivement, un message d'erreur en cas de non envoi est une bonne chose ! je vais l'ajouter !
    Sinon, oui le cas où l'utilisateur ne rempli pas tous les champs est prévu par des avertissements gérés par la page crée via le programme de construction du site (OpenElement), donc de ce côté là c'est ok !
    En tout cas merci !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par sodapop Voir le message
    ...le cas où l'utilisateur ne rempli pas tous les champs est prévu par des avertissements gérés par la page crée via le programme de construction du site (OpenElement)...
    La gestion d'erreurs coté client (en JavaScript ou autre) NE DISPENSE PAS de faire une gestion d'erreur COTE SERVEUR (à la réception des $_POST).

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Pas faux. Question bête et sans rapport direct avec le problème : c'est quoi OpenElement ? un framework ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Oui, c'est ce qui me semblait aussi... je vais jeter un oeil à ça, mais pas dit que je m'en sorte avec les honneurs !
    Merci en tout cas pour vos aides !

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Pour la validation, tu peux utiliser les filtres PHP. Ou moins vérifier que les données sont renseignées en utilisant empty.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Celira Voir le message
    Pas faux. Question bête et sans rapport direct avec le problème : c'est quoi OpenElement ? un framework ?
    OpenElement est un logiciel de création de sites web "visuel", avec pas mal de fonctionnalités par éléments et programmables. Donc pour ce qui est de la page de contact, les champs de renseignement "nom", "prénom", "message", "mail"... sont récupérés par mon formulaire quand l’utilisateur clique sur "envoyer", mais OpenElement permet de créer des règles de validation de ces champs (champs vides ou au mauvais format) donc pas de soucis de ce côté là, il ne passe les paramètres à mon formulaire que si les champs sont valides. Mon formulaire n'a donc pas besoin de les revérifier, il ne fait que créer le mail et son envoi.

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Hum... sauf si ton logiciel écrit du code PHP, ta validation doit être uniquement côté client (via du javascript probablement) Or tout ce qui est chez le client peut être modifié par l'utilisateur, y compris les validations.
    Il faut donc ajouter une validation côté PHP.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Disons que mon but était que le formulaire soit bien transmis, avec les informations requises (ce que vérifie OpenElement, par un icône d'erreur si un champ n'est pas correct). Ensuite si des utilisateurs veulent s'amuser à changer des règles de validation, alors tant pis pour eux. Il ne s'agit pas d'un site sensible, juste de pré-réservations d'une maison d'hôtes, avec prise de contact par la suite en direct.
    Et au final, je ne suis même pas sûr que les quelques cas de non réception soient bien réels, et peut être que mon formulaire marche à 100%

  13. #13
    Invité
    Invité(e)
    Par défaut
    Inutile de citer un message complet pour y répondre !

    Merci d'utiliser le bouton "+ Répondre à la discussion" en bas à gauche !

Discussions similaires

  1. Création d'un formulaire sous flash?
    Par ultrakas dans le forum Flash
    Réponses: 5
    Dernier message: 11/01/2005, 18h33
  2. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  3. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo