Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
Ninjonik

PHP API - JSON problém

Dotaz

Ahoj, pokúšam sa na jednej stránke encódovať určité údaje z MySQL a potom ich na inej stránke znovu decodnúť a vypísať.
Zatiaľ to teda mám v jednom priečinku, aby som zistil, že či to vôbec funguje.

No ale nefunguje.

Encode krásne funguje, a vypíše to pekne array v takomto štýle:
 

[{"memberID":27,"username":"velaral552","email":"velaral552@upcmaill.com"}]

Avšak akonáhle chcem toto získať na druhej stránke, tak mi to vypíše proste "nič", prázdna stránka.

Kód v encodu (cfg.php):
 

<?php
  require_once("../content/config/config.php");
  class API {
    function Select() {

		global $db;

      $stmt = $db->prepare('SELECT memberID, username, email FROM members ORDER BY memberID');
      $stmt->execute(array());
      $row = $stmt->fetchAll(PDO::FETCH_ASSOC);

      if (!$stmt->execute()) {
    		print_r($stmt->errorInfo());
    	}

      return json_encode($row);
  }
}
$API = new API;
header('Content-Type: application/json');
echo $API->Select();
?>

a decode:
 

<?php
	$json = file_get_contents('http://igportals.eu/api/cfg.php');
	$users = json_decode($json);
	echo $users["email"];
?>

Chyby to nehádže žiadne, skúsil som aj googliť, skúšať iné decode scripty, ale ani jeden nefungoval, tak som sa obrátil na toto fórum.

Sdílet tento příspěvek


Link to post
Share on other sites

6 odpovědí na tuto otázku

Recommended Posts

  • 0
Author of the topic Odesláno před
před 2 minutami, Fakerko_ said:

Jen jestli to chápu správně, každá stránka je na jiné doméně? 

aktuálne to mám v tom istom priečinku, ale áno, chcem z jednej domény decodnúť api na druhej doméne

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0
před 5 minutami, Ninjonik said:

aktuálne to mám v tom istom priečinku, ale áno, chcem z jednej domény decodnúť api na druhej doméne

Tak zkus curl();

Je možné, že nemáš v php.ini povolený file_get_contents();

 

<?php

const URL = "http://igportals.eu/api/cfg.php";

$request = curl_init();

curl_setopt($request, CURLOPT_URL, URL);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($request);

echo($result);

curl_close($request);

?>

 

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0
Author of the topic Odesláno před
před 3 minutami, Fakerko_ said:

Tak zkus curl();

Je možné, že nemáš v php.ini povolený file_get_contents();

 


<?php

const URL = "http://igportals.eu/api/cfg.php";

$request = curl_init();

curl_setopt($request, CURLOPT_URL, URL);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($request);

echo($result);

curl_close($request);

?>

 

práveže k tomuto sa viem dostať aj pomocou file_get_contents, lenže ja nepotrebujem vypísať celé to API, ale potrebujem napísať napr. iba email čiste.
Pretože ja vlastne chcem vybrať na webu 1 z db nejaký údaj, ten encodnúť a na webu 2 to decodnúť a ten údaj z db tam vypísať.

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0
před 15 minutami, Ninjonik said:

práveže k tomuto sa viem dostať aj pomocou file_get_contents, lenže ja nepotrebujem vypísať celé to API, ale potrebujem napísať napr. iba email čiste.
Pretože ja vlastne chcem vybrať na webu 1 z db nejaký údaj, ten encodnúť a na webu 2 to decodnúť a ten údaj z db tam vypísať.

Ok, už to chápu.

Ten výstup na té URL není ve formátu JSON, je to jen string.
Když jsem si to zkusil dát do Insomnia, tak mi to tam vypisuje divný string před array "" takže zkontroluj si kódování, že máš v configu nastavený správné kódování atd.

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0

Ještě doplním kolegu nahoře, jde to poznat i jednoduchým debugem, var_export($users) což vrací NULL

https://www.php.net/manual/en/function.json-decode.php

Citace

Returns the value encoded in json in appropriate PHP type. Values true, false and null are returned as TRUE, FALSE and NULL respectively. NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.

Edited by mxco

Sdílet tento příspěvek


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Odpovědět na dotaz...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Obnovili jsme váš původní obsah (obsah napsaný před zavřením).   Smazat obnovený obsah

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...