Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не работает json
Форумы портала PHP.SU » » Вопросы новичков » Не работает json

Страниц (3): [1] 2 3 »
 

1. Нуб-2 - 21 Апреля, 2013 - 18:04:08 - перейти к сообщению
В чем проблема? Не работает кусок кода:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. # 1 -- не работает
  3. $json = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=A69AD278193AA4D698EB4FDE6CA75266&steamids=76561198076018358";
  4. echo $info->realname;
  5.  
  6. # А этот пример -- работает
  7. $json_string='{"id":1,"name":"ivan","country":"Russia","office":["yandex"," management"]} ';
  8. $obj=json_decode($json_string);
  9. echo $obj->name; //Отобразит имя ivan
  10. echo $obj->office[0]; //Отобразит компанию yandex
  11. ?>
2. DelphinPRO - 21 Апреля, 2013 - 18:42:03 - перейти к сообщению
Нуб-2 пишет:
$info = json_decode(file_get_contents($json));

не нужно пихать все в одну строку.
Сначала получите данные, убедитесь что вы их получили, а не произошла ошибка, а потом декодируйте.
3. Нуб-2 - 21 Апреля, 2013 - 18:43:05 - перейти к сообщению
DelphinPRO пишет:
Нуб-2 пишет:
$info = json_decode(file_get_contents($json));

не нужно пихать все в одну строку.
Сначала получите данные, убедитесь что вы их получили, а не произошла ошибка, а потом декодируйте.

Хм...А как проверить получение данных? Просто если перейти по ссылке, то данные отображаются...
4. DelphinPRO - 21 Апреля, 2013 - 18:46:58 - перейти к сообщению
В случае неудачи, file_get_contents() вернёт FALSE.
5. Нуб-2 - 21 Апреля, 2013 - 18:51:16 - перейти к сообщению
DelphinPRO пишет:
В случае неудачи, file_get_contents() вернёт FALSE.

Так?
PHP:
скопировать код в буфер обмена
  1. $json = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=A69AD278193AA4D698EB4FDE6CA75266&steamids=76561198076018358";
  2. $json_file = file_get_contents($json);
  3. if ($json_file == FALSE)
  4. {
  5. echo "Ooops.";
  6. } else
  7. {
  8.         $info = json_decode($json_file);
  9.         echo $info->realname;
  10. }

(Добавление)
Если я написал все верно -- то, не знаю, в чем проблема. Данные получаются...
6. DelphinPRO - 21 Апреля, 2013 - 19:18:46 - перейти к сообщению
Блин, вы структуру данных смотрели? так:



Нужно так получать данные:

PHP:
скопировать код в буфер обмена
  1. echo $info->response->players[0]->realname;

(Добавление)
а написали верно. так и следует делать. Ошибка всегда может возникнуть, и нужно предусмотреть поведение программы в таком случае.
7. Нуб-2 - 21 Апреля, 2013 - 19:34:42 - перейти к сообщению
DelphinPRO пишет:
Блин, вы структуру данных смотрели? так:



Нужно так получать данные:

PHP:
скопировать код в буфер обмена
  1. echo $info->response->players[0]->realname;

(Добавление)
а написали верно. так и следует делать. Ошибка всегда может возникнуть, и нужно предусмотреть поведение программы в таком случае.

Спасибо вам огромное Улыбка
Про структуру данных не подумал -- первый раз работаю с обработкой запросов Недовольство, огорчение
(Добавление)
И снова не работает, не могу в базу занести значения:
код тот, же, только изменил небольшой кусок:
PHP:
скопировать код в буфер обмена
  1.                 if ($json_file == FALSE)
  2.                         {
  3.                                 echo "Ooops.Something went wrong.";
  4.                         } else
  5.                                 {
  6.                                         require "db.php";
  7.                                         $info = json_decode($json_file);
  8.                                        
  9.  
  10.                                         mysql_query("INSERT INTO `users`(`steam-steamid`,`steam-communityvisibilitystate`,`steam-profilestate`,`steam-personaname`,`steam-profileurl`,`steam-avatar`,`steam-avatarmedium`,`steam-avatarfull`)
  11.                                         VALUES ('$info->response->players[0]->steamid','$info->response->players[0]->communityvisibilitystate','$info->response->players[0]->profilestate','$info->response->players[0]->personaname','$info->response->players[0]->profileurl','$info->response->players[0]->avatar','$info->response->players[0]->avatarmedium','$info->response->players[0]->avatarfull')");
  12.  
  13.                                 }      

В чем проблема?
Вот код db.php:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require 'config.php';
  3. $query = mysql_connect('localhost',$DB_User,$DB_Pass);
  4. mysql_select_db($DB_Name);
  5.  
  6.  
  7.  
  8. ?>
8. esterio - 21 Апреля, 2013 - 21:47:48 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. echo "{$info->response->players[0]->steamid}";
9. DelphinPRO - 21 Апреля, 2013 - 22:15:43 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  INSERT INTO `users` (
  2.    `steam-steamid`,
  3.    `steam-communityvisibilitystate`,
  4.    `steam-profilestate`,
  5.    `steam-personaname`,
  6.    `steam-profileurl`,
  7.    `steam-avatar`,
  8.    `steam-avatarmedium`,
  9.    `steam-avatarfull`)
  10.  VALUES (
  11.    '".mysql_real_escape_string($info->response->players[0]->steamid)."',
  12.    '".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."',
  13.    '".mysql_real_escape_string($info->response->players[0]->profilestate)."',
  14.    '".mysql_real_escape_string($info->response->players[0]->personaname)."',
  15.    '".mysql_real_escape_string($info->response->players[0]->profileurl)."',
  16.    '".mysql_real_escape_string($info->response->players[0]->avatar)."',
  17.    '".mysql_real_escape_string($info->response->players[0]->avatarmedium)."',
  18.    '".mysql_real_escape_string($info->response->players[0]->avatarfull)."')");
10. Нуб-2 - 21 Апреля, 2013 - 22:23:23 - перейти к сообщению
esterio пишет:
PHP:
скопировать код в буфер обмена
  1. echo "{$info->response->players[0]->steamid}";

И?
Ответ выводит...
(Добавление)
DelphinPRO пишет:
PHP:
скопировать код в буфер обмена
  1.  INSERT INTO `users` (
  2.    `steam-steamid`,
  3.    `steam-communityvisibilitystate`,
  4.    `steam-profilestate`,
  5.    `steam-personaname`,
  6.    `steam-profileurl`,
  7.    `steam-avatar`,
  8.    `steam-avatarmedium`,
  9.    `steam-avatarfull`)
  10.  VALUES (
  11.    '".mysql_real_escape_string($info->response->players[0]->steamid)."',
  12.    '".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."',
  13.    '".mysql_real_escape_string($info->response->players[0]->profilestate)."',
  14.    '".mysql_real_escape_string($info->response->players[0]->personaname)."',
  15.    '".mysql_real_escape_string($info->response->players[0]->profileurl)."',
  16.    '".mysql_real_escape_string($info->response->players[0]->avatar)."',
  17.    '".mysql_real_escape_string($info->response->players[0]->avatarmedium)."',
  18.    '".mysql_real_escape_string($info->response->players[0]->avatarfull)."')");


И снова огромное спасибо Улыбка
Пойду разбираться с сессиями Огорчение
(Добавление)
Простите, а как проверить, если такой steam-steamid в базе уже есть?
Чтобы не записывать его снова в базу. Или здесь эта проверка не нужна?
(Добавление)
Нет, все таки нужна. Как проверить, если такой steam-steamid в базе?
11. DelphinPRO - 21 Апреля, 2013 - 23:56:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("
  2.    SELECT *
  3.    FROM `users`
  4.    WHERE
  5.       `steam-steamid` = '".$info->response->players[0]->steamid."'
  6.    ");
  7.  
  8. if (mysql_num_rows($result)) {
  9.     echo "id exists!";
  10. }
12. Нуб-2 - 22 Апреля, 2013 - 00:05:44 - перейти к сообщению
Понятно, скасибо. И последний(вряд ли) вопрос:
У меня получается так главная страница:


и вот страница логина(пока не добавил поиск по базе):
CODE (htmlphp):
скопировать код в буфер обмена
  1. del


Как мне передать сессию на главную страницу? Или как интергировать эти две страницы? Я пробовал, но постоянно появлялась ошибка, нечто о том, что "Возможно, сервер неверно сконфигурирован". Не могли бы вы помочь? Про сессии использовал материал, который дан тут -- http://androoha[dot]com/web-design-t[dot][dot][dot]risation-on-site
13. Нуб-2 - 22 Апреля, 2013 - 08:18:47 - перейти к сообщению
Пробовал через include просто присоединять страницы, но не сработало.
Как лучше?
Или, может, вообще, в бд занести весь текст? Хотя, нет, наверное, грузить сайт сильно будет.
Посоветуйте оптимальное решение, пожалуйста.
14. DelphinPRO - 22 Апреля, 2013 - 08:28:17 - перейти к сообщению
http://www.php.net/manual/ru/book.session.php
15. Нуб-2 - 22 Апреля, 2013 - 11:50:47 - перейти к сообщению

Да, я читал там инфу,но... не сложилось Улыбка
Про предыдущий вопрос соединения 2 страниц -- это я затупил, ведь можно сделать проще:
Если залогинен, добавлять в определенный шаблон определенную инфу. Нет -- нет.
Только один вопрос остался, как передать сессию с site.ru/login.php на index.php?
Будет ли достаточно только session_start()? Не нашел инфу об этом в мануале, на который вы дали ссылку.

 

Powered by ExBB FM 1.0 RC1