Il y a actuellement 275 visiteurs
Vendredi 19 Avril 2024
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 [Réglé] probleme USB
Bonjour a tous,Je ne sais ou poster mon problème d'USB je le post donc ici . Mon souci vient du fait que lorsque je branche mon intercom SENA SRL 3 sur les USB mon PC sous W10 j'ai l'impression que celui-ci se connecte deux fois car j'entends bien le son de la connexion se faire deux fois et j'ent ...
Réponses: 5

Message Problème avec la KB5034441
Bonjour,Certains ont du rencontrer ce problème avec cette mise à jour qui a bien du mal à passer.Je viens de recevoir ce correctif proposé par Microsoft :ICI.Je vous le dit de suite personnellement si j'étais dans le même cas que vous j'attendrai une réelle mise à jour mise en place par Microsoft.Je ...
Réponses: 12

Message encore un probleme mise à jour windows KB5001716
Salut à vous cela commence, j'avoue, à devenir pénible, j'en suis désolé, mais ce soir au 5 mars 2024 est apparu un nouveau problème sur Windows update la mise à jour KB5001716 ne veut pas s'installer, j'ai eu beau redémarrer mon pc pour voir si cela pouvait fonctionner rien à faire cette mise à jou ...
Réponses: 28

Message [Réglé] problème de barre inexistante sur pc portable asus
Bonjour,Depuis hier, en allumant mon pc portable asus modèle F 402 S, il bloque sur le bureau, je n'ai plus la barre de tâches donc les icônes à côté de l'heure comme avant et la souris fait un rond et impossible de cliquer et d'ouvrir des fichiers ou d'aller sur internet c'est bizarre, est-ce une ...
Réponses: 9

Message probleme avec le nouvel Outlook !
Bonjour,à la maison, nous nous partageons 7 adresses : outlook.fr, orange.fr, live.fr, libello.com, hotmail.com et 2 gmail.com.Tout était parfait jusqu'au moment où le nouvel OUTLOOK s'est imposé.Là, un seul compte a survécu, @outlook.fr, impossible d'afficher les 6 autres !Quand on ouvre la message ...
Réponses: 5

Message Konrow City 4 - Probleme de place...
Bonjour à toutes et tousJe sais que mon tél est un bas de gamme mais je n'ai pas besoin de plus..., si ce n'est un peu de place...https://konrow.com/products/city4 avec Android? 11 (édition GO)...Mon souci est que sur le mien, la carte interne est presque pleine alors que je n'ai "presque" ...
Réponses: 2

Message Problème de son quand je joue (windows ok)
Merci mais cela ne donne rien...Je vais peut-être reformater windows car ce "bug" est arrivé du jour au lendemain...
Réponses: 15


Qui est en ligne

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


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