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 :

initialisation de variable


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 221
    Points : 61
    Points
    61
    Par défaut initialisation de variable
    Bonsoir
    En faisant une mise à jour, mon site wordpress remplit le fichier debug.log.
    Cela est certainement du au fait que je n'ai pas bien déclaré ces variables.
    Comme mon fichier est assez long, pouvez-vous m'indiquez la solution la plus simple et efficace sans que je reprenne toutes les lignes ou se trouvent ces variables
    Merci

    2 extraits ou par e"exemple la variable apresContneu est mal définie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    add_filter( 'content_save_pre', 'insertion_champ_fin_maj_art', 10, 1 );
    function insertion_champ_fin_maj_art( $content ) {
      // DOC:Vidéo
      $video =get_field('doc-video-url');
      if ( $video!=='' AND get_field('doc-support') =='doc-sup_video' ):
       $content = preg_replace('#<div (.*)embed-container(.*)</div>#isU','', $content); // remplace précédente insertion
       $apresContenu.='<div class="embed-container">' .$video .'</div>';  
      endif;
     .....
       // insertion contenu champ à la fin du contenu article 
    	$content = $content .$apresContenu;
       return $content;
    }
    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
    function affic_champs_acf($content) { 
    // Récupération du résumé pour l'afficher avant le contenu de l'article  
    if (has_excerpt()) { //and is_single()
    	$avantContenu .= do_shortcode('[su_shadow style="vertical" class="note-info"][su_note note_color="#6AE9F5" radius="8"]<h3>' .get_the_excerpt() .'</h3>[/su_note][/su_shadow]') ; 
    }
     
    /* ******************************************************** VARIABLES A CHANGER POUR CHAQUE SITE ********************************************************** */
    $catDoc=in_category('92'); // Catégorie des documents
    $boxColor="#6AE9F5" ; // couleur de fond 6AE9F5
    $titleColor="#000" ; // texte dans titre
     
    // ******************** DOCUMENT, DEBUT
    // DOC:Vidéo
    /*$video =get_field('doc-video-url');
    if ( $video!=='' AND get_field('doc-support') =='doc-sup_video' ):
    $apresContenu.='<div class="embed-container">' .$video .'</div>';
    endif;*/
    // DOC:Fichier
    $fic = get_field('doc-fic-txt');
    // trop gros incon $icon = $fic['icon']; if( $file['type'] == 'image' ) {$icon =  $file['sizes']['thumbnail'];} <img src="' .$fic['icon'] .'" />
    if ( $fic!=='' AND get_field('doc-support') =='doc-sup_fic-txt' ): // Si cat est un doc ET support est un fic. text ET fichier non vide
    $url = wp_get_attachment_url( $fic );
    $apresContenu .= '<h3>Fichier: <a target="_blank" href=' .$fic["url"] .' >' .$fic['title'] .'</a></h3>' ;
    endif;  
    // DOC:Audio
    $fic = get_field('doc-fic-audio');
    if ( $fic!=='' AND get_field('doc-support') =='doc-sup_audio' ): // Si support est un fic. audio ET fichier non vide
    $url = wp_get_attachment_url( $fic );
    $apresContenu .='<audio controls="controls"><source src="' .$fic["url"] .'" type="audio/webm" />Votre navigateur ne supporte pas l\'élément <code>audio</code>. Il est peut-être temps d\'utiliser un navigateur libre comme https://www.mozilla.org/fr/firefox/</audio>' ;  
    endif;
    // DOC:Page web principal
    $site =get_field('doc-url-princ');
    if ( $site): // si champ remlie
    	$apresContenu .= '<h3>Page web : <a target="_blank" href=' .$site .' >' .$site .'</a></h3>' ;
    endif;
     
    $img = get_field('doc-img');
    $img_type= get_field('doc-img-type');
    if ( $img!=='' AND get_field('doc-support') =='doc-sup_img' ): // Si cat est un doc ET support est un fic. image ET fichier non vide
    // $url = wp_get_attachment_url( $fic );
    $apresContenu .= '<img src=' .$img .' >' ;
    endif;
    // ******************** DOCUMENT, FIN
     
    // ******************** NDD, DEBUT
    // DOC:Site de référence
    $site =get_field('doc-url-princ'); //ex: site_officiel
    if ( $site!=='' AND isset($catSiteWeb) ):
    $apresContenu .= '<h3>Site web: <a target="_blank" href=' .$site .' >' .$site .'</a></h3>' ;
    endif;
    // ******************** NDD, FIN
    $apresContenu .='<br />';
     
    ............

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Je suppose que le problème est que tu tentes un concaténation sur une variable qui n'est pas initialisée. Ça passe presque inaperçu dans le code parce que c'est discret et ça se joue à un caractère prêt.
    C'est très basique, initialiser une variable nécessite d'affecter une valeur à cette variable: $variable = valeur.

    Donc:
    • ce qui ne faut pas faire:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      function trucmuche() {
          $toto .= 'bidule'; // le fait de vouloir concaténer 'bidule' avec quelque chose qui n'existe pas
                        // provoque une interrogation légitime de l'interpréteur qui renvoie un : Notice Undefined variable toto
                        // C'est comme si on t'ordonnait de coller un post-it sans te dire à quel endroit.
                        // Heureusement, le PHP est plutôt coulant et $toto aura la bonne valeur au final,
                        // mais comme l'écriture n'est pas claire et qu'elle peut résulter d'un oublie ou d'un problème plus grave, 
                        // il te le signale.
       
          // écrire;
          // $pouet = $toto . 'bidule'; // est tout aussi faux pour la même raison
      }
    • ce qu'il faut faire:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      function trucmuche() {
          $toto = '';
          $toto .= 'bidule';
         // ou directement $toto = 'bidule'; bien sûr
      }
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 221
    Points : 61
    Points
    61
    Par défaut
    Bonjour
    C'est bien cela. je m'en doutais. Surpris juste que cela arrive d'un seul coup
    Pendant j'y suis j'ai d'autres notices que j'aimerai éliminer des logs!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [04-Jan-2019 09:38:42 UTC] PHP Notice:  Undefined property: stdClass::$id in /home/../bp-communs.php on line 66
    [04-Jan-2019 09:38:42 UTC] PHP Notice:  Undefined index: photo in /home/../bp-communs.php on line 67
    [04-Jan-2019 09:38:43 UTC] PHP Notice:  Trying to get property of non-object in /home/../inc/helpers.php on line 1437
    mon code bp-communs.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    add_action( 'bp_actions', 'membres_renome_onglet_profil' );
    function membres_renome_onglet_profil() {
        $nav = new RTMediaNav();
        $bp = buddypress();
        $count = $nav->actual_counts( $bp->displayed_user->id );
        buddypress()->members->nav->edit_nav( array( 'name' => __( 'Photos' . '<span>' . $count['total']['photo'] .'</span>', 'textdomain' ) ), 'media' );
    }

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Undefined property: stdClass::$id
    Autrement dit, l'objet auquel tu accèdes n'a pas de propriété id. Vérifie la structure de l'objet (est-ce que la propriété ne s'appelle pas plutôt idUser ou quelque chose du genre ?) ou gère le cas où la propriété n'existe pas (si c'est normalement possible) en utilisant isset() ou property_​exists.

    Undefined index: photo
    Autrement dit, le tableau n'a pas d'index "photo". Pareil que pour le précédent : vérifie le nom de l'index ou gère le cas où il n'existe pas.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 221
    Points : 61
    Points
    61
    Par défaut
    Undefined property: stdClass::$id
    pour moi ce serait plutôt "$count = $nav->actual_counts( $bp->displayed_user->id );"
    de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count = $nav->actual_counts( $bp->displayed_user->id );
    et pour
    Undefined index: photo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     buddypress()->members->nav->edit_nav( array( 'name' => __( 'Photos' . '<span>' . $count['total']['photo'] .'</span>', 'textdomain' ) ), 'media' );
    pour moi c'est déjà des bouts de code php complexe et je ne suis pas l'auteur de ces plugins.
    Si c'était possible de me donner une indication ou solution adaptée ?
    @+

Discussions similaires

  1. memset, initialisation de variables.
    Par sympho dans le forum C
    Réponses: 4
    Dernier message: 31/12/2005, 21h20
  2. Réponses: 11
    Dernier message: 07/04/2005, 10h20
  3. [VB.NET] Initialiser les variables
    Par Dnx dans le forum ASP.NET
    Réponses: 8
    Dernier message: 06/04/2005, 16h22
  4. [VB6]Initialiser une variable Static dans un évenement
    Par loverdose dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 20/01/2005, 14h57
  5. Réponses: 9
    Dernier message: 29/06/2004, 08h40

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