Il y a actuellement 83 visiteurs
Mardi 27 Juillet 2021
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
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
Image
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
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
Image
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
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
Image
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
geek99
Sous Expert(e)
Sous Expert(e)
 
Messages: 63
Inscription: 10 Nov 2012 15:24
 



Sujets similaires

Message probleme ecran en veile et ordi qui tourne
jai un probleme avec mon ordi de bureau tout tourne normalement lecran marche bien et quelque jours apres en le ralument lecran reste en veil et lordi tourne bien en le demontent jai toucher un peut la carte graphique jai ralumer lordie et la sa a marcher mais quelques jours apres rebelote ecrant en ...
Réponses: 5

Message probleme age of empires 3 sur steam
Salut tout le monde depuis quelque temps lorsque je joue sur Steam avec age of empire 3 définitive édition pendant le jeu aléatoirement le jeu plante comme si ma carte graphique était soit défaillante, soit le processeur car le jeu est souvent assez lent voici le type de message que j'ai avant que t ...
Réponses: 4

Message Problème d’affichage 2e écran et tablette graphique
Bonjour à tous,Le problème est le suivant, j?ai besoin de travailler sur 2 écrans et sur une tablette graphique, le câble de mon 2e écran est en HDMI et ma tablette également. Ne possédant qu?une connectique en HDMI sur ma tour j?ai donc acheté un adaptateur HDMI pour double HDMI histoire de faire f ...
Réponses: 0

Message Lenovo yoga problème écran tactile fausses pressions
Bonjour à tous!Je possède un lenovo yoga qui a commencé à bugger depuis quelques mois... L'écran détecte des pressions de partout alors que j'y touche pas comme dans cette vidéo: https://www.youtube.com/watch?v=NKnI4hhyUqg Même si je redémarre le pc, ça recommence, le pc n'est pas en surchauffe (ça ...
Réponses: 11

Message Problème avec cette dernière mise à jour
J'essaie d'installer cette nouvelle mise à jour Windows critique depuis quelques jours maintenant et je continue à rencontrer le même problème, étant donné que cela ne le fait pas.Je vais donc installer les mises à jour et j'obtiens : Mise à jour des fonctionnalités vers Windows 10, version 20H2 Ins ...
Réponses: 3

Message Problème de micro
Bonjour à tous,Dernièrement, le micro de m webcam sur zoom ne fonctionnait pas. D'ou pourrit venir le problème?Avec les derniers Windows je ne sais même plus ou aller pour tester le micro de ma webcam. Je me souviens qu'à l'époque de skype ou msn je pouvais aller dans le menu Windonws qqprt pour fai ...
Réponses: 2

Message Pc portable samsung R730/ CM démarre/VGA ok/LCD probleme
Bonjour, Voila j'expose mon problème, J'ai un vieux PC portable samsung NP-R730 que j'ai voulu remettre en état. le problème s'est l'affichage de l'écran principale, je m'explique, la carte mère démarre sans problème et fonctionne parfaitement branché sur VGA sur un écran externe, en revanche rien o ...
Réponses: 3


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


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