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 :

Ignorer le contenu d'une variable si non appellé [PHP 4]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 47
    Points
    47
    Par défaut Ignorer le contenu d'une variable si non appellé
    Bonjour,

    j'ai fait un code qui appel des variables selon les conditions, les variables contiennent des includes.

    Le soucis, c'est que, peu importe la condition, les includes sont insérées, et mon code ne rime alors à rien. :s

    Je vous montre le code :

    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
    <?php
     
    $introduction = '
    <fieldset style="margin-top:0">
    <legend><a name="'.$item_nm.'">'.$item_ld.'</a></legend>
    <br/>';
     
    $premiere  = $item_pk1.'<br/>'.include ($_SERVER["DOCUMENT_ROOT"].'/frags/'.$item_pg1.'.php');
     
    $seconde   = $item_pk2.'<br/>'.include ($_SERVER["DOCUMENT_ROOT"].'/frags/'.$item_pg2.'.php');
     
    $troisieme = $item_pk3.'<br/>'.include ($_SERVER["DOCUMENT_ROOT"].'/frags/'.$item_pg3.'.php');
     
    $espace = '<br/><br/>' ; 
     
    $fermer = '</fieldset><br/>';
     
    $conclusion = '<div style="clear:both"></div>' ; 
     
    ?>
     
    <?php 
    	{
    	if (empty($item_pk2) && empty($last_item)) 
    		echo ($introduction.$premiere.$fermer) ; 
    	elseif (empty($item_pk2)) 
    		echo ($introduction.$premiere.$fermer.$conclusion) ; 
    	elseif (empty($item_pk3) && empty($last_item))
    		echo ($introduction.$premiere.$seconde.$fermer) ; 
    	elseif (empty($item_pk3)) 
    		echo ($introduction.$premiere.$seconde.$fermer.$conclusion) ; 
    	elseif (empty($last_item)) 
    		echo ($introduction.$premiere.$seconde.$troisieme.$fermer) ; 
    	else 
    		echo ($introduction.$premiere.$seconde.$troisieme.$fermer.$conclusion) ;
    	}
    ?>
    Donc le but, à la base, c'est d'afficher un include, 2 ou alors les 3 selon les conditions. Hors, pour le moment, les 3 s'affichent de toute manière.

    Pourriez vous me dire, s'il vous plait, si il est possible de faire en sorte que les variables ne soient lu que si les conditions le permettent ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ce ne serait pas plus simple comme ca ?
    Code php : 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
    <?php 
    if($item_pk1!='' || $item_pk2!='' || $item_pk3!='')
    {
    	echo $introduction;
    	if($item_pk1!=''){
    	 echo $premiere;
    	}
    	if($item_pk2!=''){
    	 echo $seconde;
    	}
    	if($item_pk3!=''){
    	 echo $troisieme;
    	}
    	echo $fermer;
    	if($last_item!=''){
    	 echo $conclusion;
    	}
    }
    ?>

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Effectivement, c'est plus simple et plus lisible comme ça ^^

    Merci, cela dit ça ne fonctionne pas mieux :s

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    bonjour,
    écris ton algo à la main

    si il n'y a que ça alors ça ne fait que ça
    si il y a ça et ça alors ça ne fait que ça


    etc....
    tu verras que tes conditions pour y arriver sont peut être différentes de ce que tu as programmé auparavant.
    Emmanuel
    --------------------------------------
    aucune réponse en message privé.
    les discussions doivent profiter à tous.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Nheavy Voir le message
    cela dit ça ne fonctionne pas mieux :s
    La question est de savoir "comment c'est censé fonctionner" !
    Et de connaitre la "récupération" des variables $item_pk1, $item_pk2, $item_pk3, $last_item qui sont à la base des conditions...
    Affiche leurs valeurs, pour savoir si ca correspond bien aux besoins.

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 47
    Points
    47
    Par défaut
    Ok jreaux62, alors voici les différents fichiers utilisés :

    Page où est affiché le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	<?php
    	$item_nm = '1';
    	$item_ld = '1024 x 768px';
    	$item_id = '1109869';
    	$item_id2 = '1109870';
    	$item_id3 = '';
    	$item_pk1 = 'Pack 01';
    	$item_pg1 = 'ac';
    	$item_pk2 = 'Pack 02';
    	$item_pg2 = 'ac2';
    	$item_pk3 = '';
    	$item_pg3 = '';
    	include ($_SERVER["DOCUMENT_ROOT"].'/frags/wallfield.php'); 
    	?>
    le fichier wallfield.php contenant la fonction :
    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 
     
    $item_ct = '272775';
     
    $introduction = '
    <fieldset style="margin-top:0">
    <legend><a name="'.$item_nm.'">'.$item_ld.'</a></legend>
    <br/>';
     
    $premiere  = $item_pk1.'<br/>'.include ($_SERVER["DOCUMENT_ROOT"].'/frags/'.$item_pg1.'.php');
     
    $seconde   = $item_pk2.'<br/>'.include ($_SERVER["DOCUMENT_ROOT"].'/frags/'.$item_pg2.'.php');
     
    $troisieme = $item_pk3.'<br/>'.include ($_SERVER["DOCUMENT_ROOT"].'/frags/'.$item_pg3.'.php');
     
    $espace = '<br/><br/>' ; 
     
    $fermer = '</fieldset><br/>';
     
    $conclusion = '<div style="clear:both"></div>' ; 
     
    $last_item = (isSet ($last_item) ? $last_item : '' );
    ?>
     
     
    <?php 
    	echo $introduction.$premiere;
     
    	if ($item_pk2!='') {
    		echo $espace.$seconde ;
    	}
    	if ($item_pk3!='') {
    		echo $espace.$troisieme ; 
    	}
    	echo ($fermer) ;
     
    	if ($last_item!='') {
    		echo $conclusion ;
    	}
    ?>
    La page appelée par la variable $premiere, ac.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript" src="https://site?ids=<?php echo $item_ct; ?>&idd=<?php echo $item_id; ?>&lang=fr"></script>
    <noscript>
     <a href="https://site?ids=<?php echo $item_ct; ?>&idd=<?php echo $item_id; ?>" style="border:0">
      <img src="https://site/fr/162x56.png" style="border:0" alt="" />
     </a>
    </noscript>
    Pour $seconde (ac2.php), le fichier est similaire, les $item_id deviennent $item_id2
    Pour $troisieme (non_définie.php ici), $item_id devient $item_id3


    Donc, j'explique dans le détail,
    selon les pages où est affiché le script, les fichiers [ac.php] peuvent être remplacé par d'autres fichiers, d'où la nécessité des [echo $item_pg].
    Malheureusement, si je ne veut pas afficher [$item_pg3] en laissant l'echo vide, la variable [$troisieme] cherche quand même a inclure le fichier et à l'afficher sur la page, affichant alors une erreur.
    J'aurais souhaité que les fichiers soient inclus si la fonction conditionnelle le permet en appelant la variable.


    J'explique en français pour notar :

    • J'affiche $introduction et $premiere.
    • Si j'ai définie $item_pk2, alors j'affiche $espace et $seconde.
    • Si j'ai définie $item_pk3, alors j'affiche $espace et $troisieme.
    • J'affiche $fermer.
    • Si j'ai définie $last_item, alors j'affiche $conclusion.


    Je ne pense pas m'être trompé dans la fonction à ce niveau là.

    Est-ce plus clair ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    excuses-moi mais si tu relis ton code, on s'aperçoit:
    que les conditions y soient ou pas , tu termine par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else 
    		echo ($introduction.$premiere.$seconde.$troisieme.$fermer.$conclusion) ;
    donc à tous les coups cela s'affiche
    quand je dis de l'écrire à la main c'est pour que tu vois bien ce que tu fais et que ce tu écris ne fait que ce que tu veux et seulement cela.
    bonne après midi
    Emmanuel
    --------------------------------------
    aucune réponse en message privé.
    les discussions doivent profiter à tous.

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 53
    Points : 47
    Points
    47
    Par défaut
    Si, il n'y a pas de problème,

    le else correspond à $item_pk2 et $item_pk3 définie donc c'est normal qu'il affiche tout, les conditions sont avant, mais ne te refere pas au premier code que j'ai écrit, je l'ai simplifié suite à la remarque de jreaux62.

    C'est ça maintenant :
    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
    <?php 
    	echo $introduction.$premiere;
     
    	if ($item_pk2!='') {
    		echo $espace.$seconde ;
    	}
    	if ($item_pk3!='') {
    		echo $espace.$troisieme ; 
    	}
    	echo ($fermer) ;
     
    	if ($last_item!='') {
    		echo $conclusion ;
    	}
    ?>
    ça correspond exactement à mon premier code, sauf que j'ai ajouter la variable $espace et qu'il est plus compréhensible.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher le contenu d'une variable
    Par mpat dans le forum ASP
    Réponses: 11
    Dernier message: 14/11/2005, 14h05
  2. Réponses: 7
    Dernier message: 25/10/2005, 15h19
  3. Imprimer/Visualiser le contenu d'une variable (VBS)
    Par Tartenpion dans le forum VBScript
    Réponses: 2
    Dernier message: 29/09/2005, 10h32
  4. Réponses: 3
    Dernier message: 27/07/2005, 15h12
  5. Réponses: 11
    Dernier message: 22/06/2005, 11h04

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