Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[php] json_decode Trying to get property of non-object

Pagina: 1
Acties:

  • RareAMV
  • Registratie: November 2012
  • Laatst online: 22-11 10:51
Ik heb een probleem, en ik weet niet wat ik fout doe, ik heb een scriptje waarmee ik kan inloggen via steam, als je inlogt stuurt steam een json bestand met daarin de data van degene die inlogt. Nu wil ik die json bestand openen om de naam van de profiel te tonen op de website. Dit is het stukje code waar het fout gaat:

PHP:
1
2
$steam = json_decode(file_get_contents("../public_html/cache/" . $_SESSION['T2SteamID64'] . ".json"));
$steam_uname = $steam->response->players[0]->personaname;


Ik had de code eerst op mijn eigen pc uitgetest, daar werkte het, dus had ik het geupload naar mijn webhost (hostavo). als ik dan de code probeer uit te voeren, kan ik wel inloggen(mijnscript gaat naar steam login, en als je heb ingelogd, ga je weer terug naar mijnscript) en hij slaat het json bestand op(kan hem openen). Ik kan ook $_SESSION['T2SteamID64'] echo'en. Dat werkt dus. Maar als ik probeer om data uit die json bestand te halen dan geeft hij deze error:

Notice: Trying to get property of non-object in XXXXX/public_html/index.php (bij $steam_uname)

Dus ik neem aan dat hij wel het bestand kon decoden/openen. Wat doe ik hier verkeerd?

P.S. ik ben niet altijd even snugger dus het kan zijn dat ik iets heel stoms heb gemist. Als jullie de volledige code nodig hebben zeg het maar, ik heb nu niet de volledige code geplaatst omdat het een redelijk lange code is met veel html gebeuren etc... en ik het gevoel heb dat hier de fout zit(gezien de error) terwijl de rest van de script werkt zonder problemen.

Al vast bedankt voor de reacties^^.

  • DaWin
  • Registratie: Juni 2012
  • Laatst online: 14:16

DaWin

beep boop

Als json_decode faalt, krijg je niet direct een error te zien, maar krijg je NULL terug als waarde. Je kan met json_last_error() en json_last_error_msg() kijken wat er fout ging tijdens het decoden. Zie http://www.php.net/manual/en/book.json.php voor meer info :)

  • RareAMV
  • Registratie: November 2012
  • Laatst online: 22-11 10:51
DaWin schreef op donderdag 21 november 2013 @ 10:34:
Als json_decode faalt, krijg je niet direct een error te zien, maar krijg je NULL terug als waarde. Je kan met json_last_error() en json_last_error_msg() kijken wat er fout ging tijdens het decoden. Zie http://www.php.net/manual/en/book.json.php voor meer info :)
Ik heb het uitgeprobeerd en krijg een JSON_ERROR_NONE , dus ik neem aan dat niks mis is met mijn json_decode. Dus het probleem moet liggen bij $steam_uname variabel... en ik heb geen flauw idee wat dat kan zijn. Btw voorbeeld van json:

JSON:
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
{
    "response": {
        "players": [
            {
                "steamid": "76561198048253573",
                "communityvisibilitystate": 3,
                "profilestate": 1,
                "personaname": "Sogeking - www.tf2wager.tk",
                "lastlogoff": 1384936522,
                "profileurl": "http://steamcommunity.com/id/RareAMV/",
                "avatar": "http://media.steampowered.com/steamcommunity/public/images/avatars/e1/e1e4f4cc16fce9f1f597a4c711be142bd0763911.jpg",
                "avatarmedium": "http://media.steampowered.com/steamcommunity/public/images/avatars/e1/e1e4f4cc16fce9f1f597a4c711be142bd0763911_medium.jpg",
                "avatarfull": "http://media.steampowered.com/steamcommunity/public/images/avatars/e1/e1e4f4cc16fce9f1f597a4c711be142bd0763911_full.jpg",
                "personastate": 1,
                "realname": "RareAMV",
                "primaryclanid": "103582791432130426",
                "timecreated": 1315409275,
                "personastateflags": 0,
                "loccountrycode": "NL",
                "locstatecode": "15"
            }
        ]
        
    }
}

  • Miyamoto
  • Registratie: Februari 2009
  • Laatst online: 20-11 21:15
Dan ga je debuggen...
PHP:
1
2
3
var_dump($steam);
var_dump($steam->response);
var_dump($steam->response->players);

Kom je je fout vanzelf tegen ;-)

  • RareAMV
  • Registratie: November 2012
  • Laatst online: 22-11 10:51
bedankt allemaal _/-\o_ !, ik heb het probleem gevonden, en ik hoop dat ik het kan oplossen.
probleem was toch het json bestand, groote van het bestand: 0 XD 7(8)7 . duss... is effe kijken waarom hij de data niet in de json plaatst^^