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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не работает json

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Нуб-2
Отправлено: 21 Апреля, 2013 - 18:04:08
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)

[+]


В чем проблема? Не работает кусок кода:
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. ?>
 
 Top
DelphinPRO
Отправлено: 21 Апреля, 2013 - 18:42:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Нуб-2 пишет:
$info = json_decode(file_get_contents($json));

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


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Нуб-2
Отправлено: 21 Апреля, 2013 - 18:43:05
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)

[+]


DelphinPRO пишет:
Нуб-2 пишет:
$info = json_decode(file_get_contents($json));

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

Хм...А как проверить получение данных? Просто если перейти по ссылке, то данные отображаются...
 
 Top
DelphinPRO
Отправлено: 21 Апреля, 2013 - 18:46:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




В случае неудачи, file_get_contents() вернёт FALSE.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Нуб-2
Отправлено: 21 Апреля, 2013 - 18:51:16
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)

[+]


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. }

(Добавление)
Если я написал все верно -- то, не знаю, в чем проблема. Данные получаются...
 
 Top
DelphinPRO
Отправлено: 21 Апреля, 2013 - 19:18:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Блин, вы структуру данных смотрели? так:



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

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

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


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Нуб-2
Отправлено: 21 Апреля, 2013 - 19:34:42
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)

[+]


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. ?>

(Отредактировано автором: 21 Апреля, 2013 - 21:45:26)

 
 Top
esterio
Отправлено: 21 Апреля, 2013 - 21:47:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. echo "{$info->response->players[0]->steamid}";
 
 Top
DelphinPRO
Отправлено: 21 Апреля, 2013 - 22:15:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




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)."')");


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Нуб-2
Отправлено: 21 Апреля, 2013 - 22:23:23
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)

[+]


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 в базе?
 
 Top
DelphinPRO
Отправлено: 21 Апреля, 2013 - 23:56:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




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. }

(Отредактировано автором: 21 Апреля, 2013 - 23:56:29)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Нуб-2
Отправлено: 22 Апреля, 2013 - 00:05:44
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)

[+]


Понятно, скасибо. И последний(вряд ли) вопрос:
У меня получается так главная страница:


и вот страница логина(пока не добавил поиск по базе):


Как мне передать сессию на главную страницу? Или как интергировать эти две страницы? Я пробовал, но постоянно появлялась ошибка, нечто о том, что "Возможно, сервер неверно сконфигурирован". Не могли бы вы помочь? Про сессии использовал материал, который дан тут -- http://androoha.com/web-design-tuts/75-php-authorisation-on-site

(Отредактировано автором: 22 Апреля, 2013 - 11:51:32)

 
 Top
Нуб-2
Отправлено: 22 Апреля, 2013 - 08:18:47
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)

[+]


Пробовал через include просто присоединять страницы, но не сработало.
Как лучше?
Или, может, вообще, в бд занести весь текст? Хотя, нет, наверное, грузить сайт сильно будет.
Посоветуйте оптимальное решение, пожалуйста.
 
 Top
DelphinPRO
Отправлено: 22 Апреля, 2013 - 08:28:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)






-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Нуб-2
Отправлено: 22 Апреля, 2013 - 11:50:47
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)

[+]



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


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB