• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • 🚀 WE ZOEKEN TESTERS! 🚀

    Servertjee 3 oktober 2026 om 10:56
  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Syntax 1 oktober 2026 om 11:11
  • Luchtvaartsoftware: Hoe technologie de moderne luchtvaart verandert

    saggy2829 30 september 2026 om 19:31
  • Hoe gebruiken jullie WhatsApp voor marketing en klantopvolging?

    aiqanobzfsej5 29 september 2026 om 12:55
  • [PROJECT] Gamekeuring.nl - Hét onafhankelijke keuringsplatform voor maffiagames & RPG's!

    frio 22 september 2026 om 16:40
  • Ictscripters / Koen

    Aaron 22 september 2026 om 15:07
  • Kweekrijk - van stekje tot Imperium

    Lijno 14 september 2026 om 23:00
  • Crimora.nl

    Jeffrey.Hoekman 8 september 2026 om 18:49

Marktplaats

  • Verschillende domeinen te koop (sommige hebben website / content)

    frio 2 oktober 2026 om 14:45
  • 295 Nieuwe Domeinnamen September 2026

    shiga 1 oktober 2026 om 19:09
  • Straatbaas.eu – complete Nederlandstalige en Engelstalige online maffia-RPG

    Jeroen.G 1 oktober 2026 om 17:48

PHP kan json niet decoden

  • wimmpie
  • 25 april 2013 om 22:02
  • wimmpie
    âllo âllo
    Berichten
    1.170
    • 25 april 2013 om 22:02
    • #1

    Hallo,

    ik ben momenteel bezig met een map, de data is in json. Omdat de json geinclude wordt door javascript en deze niet in de cache mag opgeslagen worden heb ik deze php-code voor de json gezet:

    PHP
    <?php
    				header("Cache-Control: no-cache, must-revalidate");   // HTTP/1.1
    				header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");   // Date in the past
    			?>


    en daarna heb ik het bestand opgeslagen als een php file

    Nu wordt dit bestand ook geopend met fopen in php maar als ik de json dan wil decoden krijg ik een "JSON_ERROR_SYNTAX"...
    Hoe los ik dit op? (Indien ik de php code wegdoe, werk het wel...)

    Hoe kan ik ervoor zorgen dat de json toch gedecoded wordt?

    Alvast bedankt,
    Willem

  • Gast, wil je besparen op je domeinnamen? (ad)
  • Tim
    Expert
    Berichten
    3.685
    • 25 april 2013 om 22:55
    • #2

    Hallo,

    Dan lijkt het erop dat de syntax van JSON niet klopt...
    Valideer eens of de string wel JSON is via een validator.

    Mvg,
    Tim

    Master student IT-recht en Master student Ondernemingsrecht & software ingenieur
    My Personal profile
    My professional profile (LinkedIn/CV)

  • wimmpie
    âllo âllo
    Berichten
    1.170
    • 26 april 2013 om 18:53
    • #3

    Gedaan en de json klopt...

  • ZiraX
    IT Expert
    Berichten
    510
    • 26 april 2013 om 19:07
    • #4

    Wat is je JSON query dan ?!

    1) Eigenaar & CEO // iSenses
    2) Eigenaar & CEO // HoodGangster
    3) Co-Owner & Captian @WMCity V3.

  • M.Martens
    Professional
    Berichten
    987
    • 26 april 2013 om 19:33
    • #5

    Sorry dat ik het zeg maar.
    Ik zie twee optie's
    1. Kun je het niet in een anderen taal oplossen? Zolas PHP. of Java??
    2. Je gaat de bovenstaande code opnieuw scripten

    optie 1 lijkt mij de makkelijkste.

    Met Vriendelijke Groet.


    Maikel

  • Stefan.J
    Meester
    Berichten
    2.358
    • 26 april 2013 om 19:38
    • #6

    M.Martens: JSON is geen taal en hij programmeert in PHP..

    Waar heb je het PHP fragment wat je post neergezet? Want ik denk te begrijpen dat je een file x hebt met daarin het bovenstaande PHP fragment en daaronder JSON, en een ander PHP bestand dat met fopen file x opent en deze over het netwerk schrijft.

    Dat kan ik verkeerd hebben. Maar het bovenstaande PHP fragment moet in het bestand komen te staan dat de JSON serveert.

    Kun je anders alle code van toepassing eens posten?

  • wimmpie
    âllo âllo
    Berichten
    1.170
    • 26 april 2013 om 20:26
    • #7

    Dit is de json file:

    PHP
    <?php
    
    
    				header("Cache-Control: no-cache, must-revalidate");   // HTTP/1.1
    				header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");   // Date in the past
    				header('Content-type: application/json');
    			?>{"map":[[{"ground":1},{"ground":1},{"ground":1},{"ground":1},{"ground":1},{"ground":1}],[{"ground":1},{"ground":1},{"ground":1},{"ground":1},{"ground":1,"village":1},{"ground":1}],[{"ground":1},{"ground":1,"village":1},{"ground":1},{"ground":1},{"ground":1},{"ground":1}],[{"ground":1},{"ground":1,"oase":1},{"ground":1,"village":1},{"ground":1},{"ground":1},{"ground":1}],[{"ground":1},{"ground":1,"village":1},{"ground":1},{"ground":1},{"ground":1},{"ground":1}],[{"ground":1},{"ground":1},{"ground":1},{"ground":1},{"ground":1},{"ground":1}]]}

    En dit is het andere script:

    PHP
    $fileurl = $_SERVER['DOCUMENT_ROOT'].'/json/' . $server->id . '.json.php';
    		$fileid = fopen($fileurl, 'r+');
    		$filesize = filesize($fileurl);
    		$file = fread($fileid, $filesize);
    		
    		$json = json_decode($file, true);
    		
    				switch (json_last_error()) {
    			case JSON_ERROR_NONE:
    				echo ' - No errors';
    			break;
    			case JSON_ERROR_DEPTH:
    				echo ' - Maximum stack depth exceeded';
    			break;
    			case JSON_ERROR_STATE_MISMATCH:
    				echo ' - Underflow or the modes mismatch';
    			break;
    			case JSON_ERROR_CTRL_CHAR:
    				echo ' - Unexpected control character found';
    			break;
    			case JSON_ERROR_SYNTAX:
    				echo ' - Syntax error, malformed JSON';
    			break;
    			case JSON_ERROR_UTF8:
    				echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
    			break;
    			default:
    				echo ' - Unknown error';
    			break;
    		}
    Meer tonen


    Ziet iemand iets?

  • Stefan.J
    Meester
    Berichten
    2.358
    • 26 april 2013 om 20:27
    • #8

    Ja. De PHP code hoort niet in het bestand met de JSON, dat werkt zo niet. Je zult het in het onderstaande bestand moeten zetten.

    Ps. Hoezo is de JSON niet altijd hetzelfde?

  • wimmpie
    âllo âllo
    Berichten
    1.170
    • 26 april 2013 om 20:38
    • #9

    Ik heb helemaal niet gezegd dat de json niet altijd hetzelfde is?

    maar het probleem is dat de json ook wordt geladen met ajax, maar dan wordt deze opgeslagen in de cache en dat mag niet...
    Daarom staat de header er dus boven :s

    Edit:
    ik ben overgestapt naar ajax in jQuery omdat je hier de cache kan uitschakelen...
    De php header in het json bestand is verwijdert, maar nu geeft de ajax code "[Object, object]" terug ipv de echte jsoncode die mijn oude ajax returnde...
    Dit was mijn oude code:

    Code
    if(window.XMLHttpRequest)
        var xmlhttp = new XMLHttpRequest();
      else
        var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    
    
      if(xmlhttp.overrideMimeType)
        xmlhttp.overrideMimeType('application/json');
         
      xmlhttp.open("get", file, false);
      xmlhttp.addEventListener('readystatechange', function()
       {
          if(this.readyState == 4 && this.status != 404)
          {  
            engine.data.parse(this.responseText, whendone);
          }
       }, false);
       
      xmlhttp.send(null);
    Meer tonen


    En dit is mijn nieuwe code

    Code
    $.ajaxSetup({dataType: "json", url: file, cache: false, type: "GET", success:function(result){engine.data.parse(result, whendone)}});
    	$.ajax();

    Wat ik moet aanpassen zodat hij het juiste teruggeeft?

    Oplossing:
    dataType moest aangepast worden naar "text", best vreemd maar het werkt wel :)
    Weet iemand ofdat de jQuery ajax "cache: false" niet werkt in bepaalde browsers?

    Bewerkt 2 keer, laatst door wimmpie: oplossing gevonden (26 april 2013 om 22:16).

Registratie

Nog geen account? Registreer je nu en word deel van onze community!

Nu registreren Aanmelden

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 3 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacyverklaring
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design