Il y a actuellement 192 visiteurs
Mercredi 29 Mars 2023
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

PHP problème synthaxe condition

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

PHP problème synthaxe condition

Message le 25 Aoû 2013 18:09

Bonsoir à tous.
J'ai un problème de 'synthaxe' pour la condition en PHP.
Code: Tout sélectionner
<?php

if (isset($_POST['msg'])) {
         $nom = htmlentities($_POST['nom'],ENT_QUOTES);
         $email = htmlentities($_POST['email'],ENT_QUOTES);
         $telephone = htmlentities($_POST['phone'],ENT_QUOTES);
         $sujet = htmlentities($_POST['sujet'],ENT_QUOTES);
         $message = htmlentities($_POST['msg'],ENT_QUOTES);
         
         $erreur = array();

               if(empty($nom)) {
               $erreur['nom'] = 'Le champ nom / entreprise est vide'
                           }
               if(empty($email)) {
               $erreur['email'] = 'Le champ email est vide'
                              }
               
               if(empty($msg)) {
               $erreur['message'] = 'Le champ message est vide'
                            }
               
               if(empty($sujet)) {
               $erreur['sujet'] = 'Le champ sujet est vide'
                             }

}

?>

Pourriez vous me dire quels sont les problèmes pour la condition ?

Cordialement.

<?php
echo 'Bonsoir !'
?>
geek99
Sous Expert(e)
Sous Expert(e)
 
Messages: 63
Inscription: 10 Nov 2012 15:24
 


Re: PHP problème synthaxe condition

Message le 25 Aoû 2013 20:40

Bonsoir,

A première vue, il manque les marqueurs de fin d'instruction : ;

En effet quand tu utilises la fonction if sur plusieurs lignes il faut indiquer les marqueurs de fin ou alors tout mettre sur une seule ligne comme ceci « if(empty($nom)) {$erreur['nom'] = 'Le champ nom / entreprise est vide'} » mais dans ce cas on perd en lisibilité.

Code: Tout sélectionner
    <?php

    if (isset($_POST['msg'])) {
             $nom = htmlentities($_POST['nom'],ENT_QUOTES);
             $email = htmlentities($_POST['email'],ENT_QUOTES);
             $telephone = htmlentities($_POST['phone'],ENT_QUOTES);
             $sujet = htmlentities($_POST['sujet'],ENT_QUOTES);
             $message = htmlentities($_POST['msg'],ENT_QUOTES);
             
             $erreur = array();

                   if(empty($nom)) {
                   $erreur['nom'] = 'Le champ nom / entreprise est vide';
                               }
                   if(empty($email)) {
                   $erreur['email'] = 'Le champ email est vide';
                                  }
                   
                   if(empty($msg)) {
                   $erreur['message'] = 'Le champ message est vide';
                                }
                   
                   if(empty($sujet)) {
                   $erreur['sujet'] = 'Le champ sujet est vide';
                                 }

    }

    ?>


Et tu ne gères pas toutes les erreurs dans ton code : A savoir que tu ne cherches pas à savoir si les valeurs suivantes existent :

  • $_POST['nom']
  • $_POST['email']
  • $_POST['phone']
  • $_POST['sujet']

Personnellement je ferais ceci :
Code: Tout sélectionner
    <?php

    if (!empty($_POST['msg']) AND !empty($_POST['nom']) AND !empty($_POST['email']) AND !empty($_POST['phone']) AND !empty($_POST['msg'])) {
             $nom = htmlentities($_POST['nom'],ENT_QUOTES);
             $email = htmlentities($_POST['email'],ENT_QUOTES);
             $telephone = htmlentities($_POST['phone'],ENT_QUOTES);
             $sujet = htmlentities($_POST['sujet'],ENT_QUOTES);
             $message = htmlentities($_POST['msg'],ENT_QUOTES);
             
             $erreur = array();

                   if(empty($nom)) {
                   $erreur['nom'] = 'Le champ nom / entreprise est vide';
                               }
                   if(empty($email)) {
                   $erreur['email'] = 'Le champ email est vide';
                                  }
                   
                   if(empty($msg)) {
                   $erreur['message'] = 'Le champ message est vide';
                                }
                   
                   if(empty($sujet)) {
                   $erreur['sujet'] = 'Le champ sujet est vide';
                                 }

    }

    ?>


Tu vois dans mon code que j'ai remplacé isset par !empty, le but étant de renforcer le test. Car il isset contrôle uniquement si la variable existe ou non. Alors !empty contrôle l’existence de la variable et en plus il vérifie que celle-ci n'est pas nulle.

@ Bientôt
mcuser
Expert(e)
Expert(e)
 
Messages: 598
Inscription: 23 Mar 2013 17:16
Localisation: Haute Normandie
 

Re: PHP problème synthaxe condition

Message le 26 Aoû 2013 08:52

Les variables nom, email, phone, sujet et message existent. Ce sont des ids/name d'input type="text"
geek99
Sous Expert(e)
Sous Expert(e)
 
Messages: 63
Inscription: 10 Nov 2012 15:24
 

Re: PHP problème synthaxe condition

Message le 26 Aoû 2013 11:51

Bonjour,

C'est bien ce que j'avais compris ;)

Tu prends le meilleur des cas aussi, s'il se produit une erreur lors de l'envoi du formulaire affectant directement les variables alors ton code renverra une erreur php. Le fait de tester ces variables et de renforcer les conditions permettent de gérer les éventuelles erreurs et d'optimiser le code.

Après il est vrai que ce genre d'erreur est rare :P

@ Bientôt
mcuser
Expert(e)
Expert(e)
 
Messages: 598
Inscription: 23 Mar 2013 17:16
Localisation: Haute Normandie
 

Re: PHP problème synthaxe condition

Message le 26 Aoû 2013 12:22

D'accord, merci.
Pourriez vous me conseiller des bons livres sut le PHP car ceux que je connais ne sont pas top.

Cordialement, bonne journée.
geek99
Sous Expert(e)
Sous Expert(e)
 
Messages: 63
Inscription: 10 Nov 2012 15:24
 

Re: PHP problème synthaxe condition

Message le 26 Aoû 2013 15:56

Bonjour,

Concernant le développement Web, j'ai tout appris en ligne, je conseille pour commencer de suivre ces deux tutoriels du Site du Zéro qui se complète :

Concevez votre site Web avec PHP et MySQL écrit par Mateo21
Programmez en orienté objet en PHP écris par vyk12

Ensuite une fois ces deux tutoriels acquis, tu peux aller plus loin avec le site php.developpez.com où tu trouveras de nombreux aspects autour du PHP

@ Bientôt
mcuser
Expert(e)
Expert(e)
 
Messages: 598
Inscription: 23 Mar 2013 17:16
Localisation: Haute Normandie
 

Re: PHP problème synthaxe condition

Message le 27 Aoû 2013 08:09

D'accord merci beaucoup.
geek99
Sous Expert(e)
Sous Expert(e)
 
Messages: 63
Inscription: 10 Nov 2012 15:24
 



Sujets similaires

Message autre problème sur un autre pc portable Asus
Bonjour,Un ami m'a demandé de lui changer la batterie sur son pc portable Asus "modèle R540L" qui ne tenait plus la charge donc cela a fonctionné mais depuis hier il ne s'allume plus et j'entends un léger "ronronnement", c'est bizarre, est-ce l'alimentation du pc qui ne fonction ...
Réponses: 4

Message Problème d'autorisations d'accès...
Bonjour,Je rencontre un nouveau problème, qui je précise sort de nul part puisque je n'ai rien changé... Maintenant je ne sais plus ouvrir mes images, j'ai ce message d'erreur: "la visionneuse de photos windows ne peut pas ouvrir cette image car vous ne disposez pas des autorisations d'accès ...
Réponses: 25

Message problème demarrage PC
Salut Rahan et bonne année Je précise que mon écran est connecté en VGA de son coté et avec un adaptateur DVI cote CG.C'est déjà un souci à corriger. La 6870 a des sorties DVI-D qui n'émettent pas de signal analogique VGA.Sur "la même" HD 6870 sur un de mes PC, j'utilise un adaptateur Disp ...
Réponses: 6

Message Problème envoi fichier PDF
BonjourJ'aimerai envoyer un fichier PDF à un destinataire, sauf que je veux qu'il arrive en image "brute" si j'ose m'exprimer ainsi. je m'explique, mon fichier est sur acrobat et quand je l'envoi le destinataire à le document mais avec les plages d'illustration, etc...je prends comme exemp ...
Réponses: 2

Message OS non détécté ? Problème de démarrage de l'ordinateur
Bonjour à tous,Je vous contacte au sujet d'un problème réccurent et assez problèmatique sur mon ordinateur fixe depuis maintenant quelques semaines. Pour résumer lors de démarrage de l'ordinateur, il arrive que Windows ne soit pas détecté (j'imagine) et que l'ordinateur affiche : " reboot and ...
Réponses: 10

Message Problème de jeux qui freeze
Bonjour à tousJe suis ici pour vous partagé un problème que je n'arrive pas a comprendre et encore moins a réglé. Depuis maintenant 1 mois quand je lance un jeux, n'importe lequel, au bout d'un moment, qui vari entre 1 min et 1h, le jeux freeze. Les freezes dure en moyenne 1 min a 30 min pour les pl ...
Réponses: 0

Message problème d'allumage pc asus
Bonjour,Depuis quelques temps, mon pc portable Asus modèle G 741JW * T7105H" ne veut plus s'allumer alors qu'il est branché sur le secteur car il n'a plus de batterie pour l'instant mais je souhaite la changer si j'arrive à résoudre ce problème.L'alimentation serait-elle la source du problème ...
Réponses: 12


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.