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 :

Syntaxe formulaire php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 116
    Points : 48
    Points
    48
    Par défaut Syntaxe formulaire php
    Bonjour à tous,

    J'ai réalisé un petit formulaire en php avec vérification des champs (empty), lors de différents tests toutes les fonctions ont fonctionnées (vérification, affichage du message d'erreur, envoi du mail).

    Maintenant que j'ai fini mon bout de code, quand je fais un test global, le traitement reste bloqué sur mon fichier mail.php.

    Je pense que c'est tout simplement un problème de syntaxe, il doit y avoir des {} mal placés, j'ai essayé plusieurs solutions, tout en me référant au tuto:
    http://sylvie-vauthier.developpez.co...ulaires#LIII-1

    Mais je dois avouer que je tourne en rond.

    Si vous avez une idée lumineuse ou juste la possibilité de mettre le doigt sur mes erreurs, je vous en serai très reconnaissant.

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/plain; charset=UTF-8" />
    </head>
    <?PHP
    if (get_magic_quotes_gpc())
    {
        $nom = stripslashes($_POST['nom']); 
        $email = stripslashes($_POST['email']);
        $nation = stripslashes($_POST['nation']); 
        $prenom = stripslashes($_POST['prenom']); 
        $telephone = stripslashes($_POST['telephone']); 
        $adresse = stripslashes($_POST['adresse']);
        $profession = stripslashes($_POST['profession']); 
        $statut = stripslashes($_POST['statut']); 
        $interet = stripslashes($_POST['interet']);
        $message = stripslashes($_POST['message']);  
    } 
    else
    {  
        $nom = $_POST['nom'];
        $email = $_POST['email'];
        $nation = $_POST['nation']; 
        $prenom = $_POST['prenom']; 
        $telephone = $_POST['telephone']; 
        $adresse = $_POST['adresse'];
        $profession = $_POST['profession']; 
        $statut = $_POST['statut']; 
        $interet = $_POST['interet'];
        $message = $_POST['message'];  
     
     
     
    /* Destinataire (votre adresse e-mail) */
    $to = 'mail@alamaison.com';
     
    // Subject
    $subject = 'Demande informations concernant mon site';
    /////voici la version Mine 
    $headers = "MIME-Version: 1.0\r\n"; 
     
    $headers .='Content-Type: text/plain; charset="utf-8"'." ";
    $headers .='Content-Transfer-Encoding: 8bit'; 
    /* Construction du message */
    $msg  = 'Bonjour,'."\r\n\r\n";
    $msg .= 'Ce mail a été envoyé depuis le site monsite.com par '.$nom.' '.$prenom."\r\n\r\n";
    $msg .= 'Voici le message qui vous est adressé:'."\r\n";
    $msg .= '***************************'."\r\n";
    $msg .= 'Le nom est :'.$nom."\r\n\r\n";
    $msg .= 'Le prénom est :'.$prenom."\r\n\r\n";
    $msg .= 'La nationalité est :'.$nation."\r\n\r\n";
    $msg .= 'Le numéro de téléphone est :'.$telephone."\r\n\r\n";
    $msg .= 'L adresse email est :'.$email."\r\n\r\n";
    $msg .= 'L adresse de domiciliation est :'.$adresse."\r\n\r\n";
    $msg .= 'Sa profession est :'.$profession."\r\n\r\n";
    $msg .= 'Son statut est :'.$statut."\r\n\r\n";
    $msg .= 'Son intérêt est :'.$interet."\r\n\r\n";
    $msg .= 'Son message est :'.$message."\r\n\r\n";
    $msg .= '***************************'."\r\n\r\n";
     
     
    $headers = 'From: '.$nom.' '.$prenom.' <'.$expediteur.'>'."\r\n\r\n";}
    /* Envoi de l'e-mail */
     
    if (empty($nom) || empty($prenom) || empty($nation) || empty($telephone) || empty($email))
        echo 'veuillez remplir tous les champs';
    else
        mail($to, $subject, utf8_decode($msg), utf8_decode ($headers));
     
    header('Location: http://www.monsite.com/');
    </html>
    Je vous remercie d'avance pour votre aide, très bonne journée.

  2. #2
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Bonjour

    Tu n'as absolument pas besoin de balise HTML pour faire le traitement que tu réalises en php. Donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/plain; charset=UTF-8" />
    </head>
    et

    doivent virer.

    Ensuite, pour ouvrir une déclaration php, la balise exacte est Ensuite dans le bas de ta page, tu oublies de la fermer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header('Location: http://www.monsite.com/');
    </html> // à virer
    ?>
    De plus, tu regarderas la syntaxe de ton if/else

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (empty($nom) || empty($prenom) || empty($nation) || empty($telephone) || empty($email))
        echo 'veuillez remplir tous les champs';
    else
        mail($to, $subject, utf8_decode($msg), utf8_decode ($headers));
     
    header('Location: http://www.monsite.com/');
    C'est ce que j'ai repéré au premier coup d'oeil
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour à tous les deux,

    @ledisciple
    Il y a du html car il peut y avoir un echo dans le code php
    Sinon ok pour les balises php, manque le ?> et c'est ça qui doit merdouiller

    @paikan
    Peut tu développer:
    Maintenant que j'ai fini mon bout de code, quand je fais un test global, le traitement reste bloqué sur mon fichier mail.php.
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #4
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par Fench Voir le message
    Bonjour à tous les deux,

    @ledisciple
    Il y a du html car il peut y avoir un echo dans le code php
    Sinon ok pour les balises php, manque le ?> et c'est ça qui doit merdouiller
    En même temps, je n'ai pas remarqué

    à quoi ça sert qu'il fasse un echo

    si derrière, il y a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: http://www.monsite.com/');
    Le header, n'est pas censé faire basculer sa page sur ce site, sans afficher les echo?
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    à quoi ça sert qu'il fasse un echo

    si derrière, il y a

    Code :Sélectionner tout - Visualiser dans une fenêtre à partheader('Location: http://www.monsite.com/');
    C'est sûr, et je ne m'attache pas à la structure du code ... et il n'est peut être pas complet (voir le ?> manquant alors qu'il existe peut être)

    sinon +1 pour toi
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 116
    Points : 48
    Points
    48
    Par défaut
    Merci beaucoup pour vos coups de main et vos réponses.
    C'est effectivement ?> qui été manquant.

    Donc, si j'ai bien compris le concept, si j'utilise la fonction header, je ne peux pas afficher le message pour indiquer aux visiteurs que tous les champs ne sont pas remplis......

    Connaissez vous un autre moyen d'afficher l'information tout en conservant la fonction header ??? (popup, Js, etc....)

    Merci d'avance

  7. #7
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Perso, j'utilise les $_SESSION[""].

    Ca me permet de stocker les erreurs, d'une part :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION["monform"]["erreur"]
    et les champs d'autre part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SESSION["monform"]["champ1"]
    $_SESSION["monform"]["champ2"]
    //etc
    après, je suis sur qu'il y a d'autres façon bien mieux de le faire ..
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

Discussions similaires

  1. Problème de syntaxe dans un formulaire php-mysql
    Par alex45500 dans le forum Langage
    Réponses: 3
    Dernier message: 05/11/2012, 15h56
  2. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 22h42
  3. Nom d'un Formulaire Php
    Par etiennegaloup dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2005, 21h55
  4. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 18h12
  5. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 11h19

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