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 :

getElementsByTagName() on a non-object


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut getElementsByTagName() on a non-object
    bonjour,
    j'ai erreur php :
    Fatal error: Call to a member function getElementsByTagName () on a non-object in /weather /classes/BxWeatherModule.php on line 37
    l'erreur ne se produit pas toujours ,parfois sa fonctionne bien

    voiçi 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
    function serviceWeatherIndexPage(){
    include("geoipcity.inc");
    include("geoipregionvars.php");
    $ip = $_SERVER['REMOTE_ADDR'];
    $weather_feed = "";
    $pathr= BX_DOL_URL_ROOT;
    $gi = geoip_open("../GeoLiteCity.dat",GEOIP_STANDARD);
    $record = geoip_record_by_addr($gi,$ip);
    geoip_close($gi);
    $city = $record->city;
    if ($city == "") 
        $city = "Sydney";
    $url_post = "http://where.yahooapis.com/v1/places.q('".urlencode($city)."')?appid=foOF4CzV34EFIIW4gz1lx0Ze1em._w1An3QyivRalpXCK9sIXT5de810JWold3ApkdMdCrc-";
    $weather_feed = file_get_contents($url_post);
    $objDOM = new DOMDocument();
    $objDOM->loadXML($weather_feed);
    $woeid = $objDOM->getElementsByTagName("place")->item(0)->getElementsByTagName("woeid")->item(0)->nodeValue;
    }
    le fichier xml:

    Code xml : 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
    <places xmlns="http://where.yahooapis.com/v1/schema.rng" xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:start="0" yahoo:count="1" yahoo:total="38">
    <script>...</script>
    <place yahoo:uri="http://where.yahooapis.com/v1/place/615702" xml:lang="fr-FR">
    <woeid>615702</woeid>
    <placeTypeName code="7">Ville</placeTypeName>
    <name>Paris</name>
    <country type="Pays" code="FR" woeid="23424819">France</country>
    <admin1 type="Région" code="" woeid="7153319">Île-de-France</admin1>
    <admin2 type="Département" code="FR-75" woeid="12597155">Paris</admin2>
    <admin3/>
    <locality1 type="Ville" woeid="615702">Paris</locality1>
    <locality2/>
    <postal/>
    <centroid>
    <latitude>48.856930</latitude>
    <longitude>2.341200</longitude>
    </centroid>
    <boundingBox>
    <southWest>
    <latitude>48.658291</latitude>
    <longitude>2.086790</longitude>
    </southWest>
    <northEast>
    <latitude>49.046940</latitude>
    <longitude>2.637910</longitude>
    </northEast>
    </boundingBox>
    <areaRank>3</areaRank>
    <popRank>13</popRank>
    </place>
    </places>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Cela signfie que
    $objDOM->loadXML($weather_feed); n'a pas fonctionné.

    Déjà tu peux intercepter le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($objDOM->loadXML($weather_feed)) {
    $woeid = $objDOM->getElementsByTagName("place")->item(0)->getElementsByTagName("woeid")->item(0)->nodeValue;
    }
    else {
        echo 'erreur';
    }
    loadXML renvoit des erreurs de type Warning quand il y a un problème.
    Assure toi de bien afficher (ou loguer) toutes les erreurs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    voila ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $weather_feed = file_get_contents($url_post);
    	$objDOM = new DOMDocument();
    	$objDOM->loadXML($weather_feed);
    	if ($objDOM->loadXML($weather_feed)) {
    $woeid = $objDOM->getElementsByTagName("place")->item(0)->getElementsByTagName("woeid")->item(0)->nodeValue;
    }
    else {
        echo 'erreur';
    }
    	$woeid = $objDOM->getElementsByTagName("place")->item(0)->getElementsByTagName("woeid")->item(0)->nodeValue;
    j'obteins toujours une erreur :
    Call to a member function getElementsByTagName()

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $weather_feed = file_get_contents($url_post);
    	$objDOM = new DOMDocument();
    	if ($objDOM->loadXML($weather_feed) == TRUE) {
    $woeid = $objDOM->getElementsByTagName("place")->item(0)->getElementsByTagName("woeid")->item(0)->nodeValue;
    }
    else {
        echo 'erreur';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu confirmes au moins que c'est sur cette ligne (ligne 4 dans mon exemple) que l'erreur est indiquée ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    quand j’utilise un proxy sa marche il me détecte avec la ville sacranton au état unis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	$url_post = "http://where.yahooapis.com/v1/places.q(".var_dump(urlencode($city)).")?appid=foOF4CzV34EFIIW4gz1lx0Ze1em._w1An3QyivRalpXCK9sIXT5de810JWold3ApkdMdCrc-";
    	$weather_feed = file_get_contents($url_post);
    	$objDOM = new DOMDocument();
    	$objDOM->loadXML($weather_feed);
    	$woeid = $objDOM->getElementsByTagName("place")->item(0)->getElementsByTagName("woeid")->item(0)->nodeValue;
    le probléme c'est que quand le nom de la ville a un accent exemple : garge-lés-gonésse

    ça ne fonctionne pas ,j'ai cette erreur :
    string(20) "Garges-l%E8s-gonesse"
    Warning: file_get_contents(http://where.yahooapis.com/v1/places...old3ApkdMdCrc-) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in /homez.627/dolphint/www/Dolphin-Boonex-Templates/modules/doldesign/newsinfos/weather/index.php on line 19

    Warning: DOMDocument::loadXML() [domdocument.loadxml]: Empty string supplied as input in /homez.627/dolphint/www/Dolphin-Boonex-Templates/modules/doldesign/newsinfos/weather/index.php on line 21

    Fatal error: Call to a member function getElementsByTagName() on a non-object in /homez.627/dolphint/www/Dolphin-Boonex-Templates/modules/doldesign/newsinfos/weather/index.php on line 22

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu confirmes au moins que c'est sur cette ligne (ligne 4 dans mon exemple) que l'erreur est indiquée ?
    oui c'est a la ligne 4

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/08/2007, 12h06
  2. Réponses: 9
    Dernier message: 05/07/2007, 11h25
  3. [POO] Call to a member function on a non-object
    Par Roromix dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2007, 14h40
  4. [phpToPDF] "Call to a member function on a non-object"
    Par pikatshu dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 16/04/2007, 18h47
  5. [POO] Erreur Trying to get property of non-object
    Par Niouts dans le forum Langage
    Réponses: 14
    Dernier message: 13/09/2006, 10h09

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