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 [2]

 PHP.SU

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


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

> Без описания
esterio
Отправлено: 22 Апреля, 2013 - 11:59:15
Post Id



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


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


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




Нуб-2 пишет:
И?
Ответ выводит...

сидел с телефона долго рсписивать. в общем проблема заключалась в кавичках.
Нуб-2 пишет:
Будет ли достаточно только session_start()? Не нашел инфу об этом в мануале, на который вы дали ссылку.

на любой странице стартуете сессию и манипулируете значениями
 
 Top
Нуб-2
Отправлено: 22 Апреля, 2013 - 12:06:59
Post Id


Гость


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


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

[+]


esterio пишет:
Нуб-2 пишет:
И?
Ответ выводит...

сидел с телефона долго рсписивать. в общем проблема заключалась в кавичках.
Нуб-2 пишет:
Будет ли достаточно только session_start()? Не нашел инфу об этом в мануале, на который вы дали ссылку.

на любой странице стартуете сессию и манипулируете значениями

Как ими манипулировать-то? Мне нужно передать с login.php на index.php сессию или их параметры, т.е. чтобы человек, который залогинился на login.php мог использовать index.php как пользователь, а не гость. Подскажете? Огорчение
 
 Top
esterio
Отправлено: 22 Апреля, 2013 - 12:12:18
Post Id



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


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


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




Пример:
1.php


2.php


Тоесть при старте мы имеем в массиве $_SESSION. При присвоение значения массиву $_SESSION данные будут доступни везде где была стартанута сессия.
 
 Top
Нуб-2
Отправлено: 22 Апреля, 2013 - 12:14:08
Post Id


Гость


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


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

[+]


esterio пишет:
Пример:
1.php


2.php


Тоесть при старте мы имеем в массиве $_SESSION. При присвоение значения массиву $_SESSION данные будут доступни везде где была стартанута сессия.

Ага.. Т.е., везде, где мне нужно получить идентификаторы, то просто использовать var_dump..., да?
 
 Top
DelphinPRO
Отправлено: 22 Апреля, 2013 - 12:18:04
Post Id



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


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


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




Нуб-2 пишет:
Т.е., везде, где мне нужно получить идентификаторы, то просто использовать var_dump..., да?


при логине нужно занести в сессию некоторый идентификатор

PHP:
скопировать код в буфер обмена
  1. session_start(); // эта функция вызывается 1 раз вначале скрипта
  2.  
  3. $_SESSION['logined'] = true;


а там где нужно проверять "залогиненность" так

PHP:
скопировать код в буфер обмена
  1. session_start(); // эта функция вызывается 1 раз вначале скрипта
  2.  
  3. if (isset($_SESSION['logined']) && $_SESSION['logined']) {
  4.   // Юзер залогинен
  5. }


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


Гость


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


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

[+]


DelphinPRO пишет:
Нуб-2 пишет:
Т.е., везде, где мне нужно получить идентификаторы, то просто использовать var_dump..., да?


при логине нужно занести в сессию некоторый идентификатор

PHP:
скопировать код в буфер обмена
  1. session_start(); // эта функция вызывается 1 раз вначале скрипта
  2.  
  3. $_SESSION['logined'] = true;


а там где нужно проверять "залогиненность" так

PHP:
скопировать код в буфер обмена
  1. session_start(); // эта функция вызывается 1 раз вначале скрипта
  2.  
  3. if (isset($_SESSION['logined']) && $_SESSION['logined']) {
  4.   // Юзер залогинен
  5. }

Это будет работать, даже если использовать проверку на другой странице?
 
 Top
DelphinPRO
Отправлено: 22 Апреля, 2013 - 12:23:22
Post Id



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


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


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




вы же читали ссылку, которую я вам дал. по-моему там все исчерпывающе описано. Вы весь раздел по сессиям прочитали?


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


Гость


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


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

[+]


DelphinPRO пишет:
вы же читали ссылку, которую я вам дал. по-моему там все исчерпывающе описано. Вы весь раздел по сессиям прочитали?

Хорошо, спасибо еще раз. Пойду внимательней ознакомлюсь со справкой Улыбка
 
 Top
Нуб-2
Отправлено: 22 Апреля, 2013 - 16:07:03
Post Id


Гость


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


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

[+]


DelphinPRO пишет:
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. }

Увы, не работает Недовольство, огорчение
Вот, что получилось у меня:
PHP:
скопировать код в буфер обмена
  1.                 $temp_Steam_User_ID = str_replace("http://steamcommunity.com/openid/id/", "", "$openid->identity");
  2.                 $json = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={$Steam_Api_Key}&steamids={$temp_Steam_User_ID}";
  3.                 $json_file = file_get_contents($json);
  4.                 if ($json_file == FALSE)
  5.                         {
  6.                                 echo "Ooops.Something went wrong.";
  7.                         } else
  8.                                 {
  9.                                         require "db.php";
  10.                                         $info = json_decode($json_file);
  11.                                         $result = mysql_query("   SELECT *   FROM `users`   WHERE `steam-steamid` = '".$info->response->players[0]->steamid."'");
  12.                                                 if (mysql_num_rows($result)) {
  13.                                                         echo "id exists!";
  14.                                                 } else {
  15.                                                
  16.                                                 mysql_query(" INSERT INTO `users` (`s-steamid`,   `s-cvs`,   `s-profilestate`,   `s-personaname`,   `s-profileurl`,   `s-avatar`,   `s-avatarm`,   `s-avatarf`) VALUES (
  17.   '".mysql_real_escape_string($info->response->players[0]->steamid)."',
  18.   '".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."',
  19.   '".mysql_real_escape_string($info->response->players[0]->profilestate)."',
  20.   '".mysql_real_escape_string($info->response->players[0]->personaname)."',
  21.   '".mysql_real_escape_string($info->response->players[0]->profileurl)."',
  22.   '".mysql_real_escape_string($info->response->players[0]->avatar)."',
  23.   '".mysql_real_escape_string($info->response->players[0]->avatarmedium)."',
  24.   '".mysql_real_escape_string($info->response->players[0]->avatarfull)."')");
  25.    }
 
 Top
DelphinPRO
Отправлено: 22 Апреля, 2013 - 16:15:55
Post Id



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


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


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




ну с виду все правильно. разве что, экранировать нужно все внешние данные, передаваемые в запрос. функцией mysql_real_escape_string

а что именно не работает


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


Гость


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


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

[+]


DelphinPRO пишет:
ну с виду все правильно. разве что, экранировать нужно все внешние данные, передаваемые в запрос. функцией mysql_real_escape_string

а что именно не работает

в базу добавляются одинаковые значения -- http://pbrd[dot]co/Zh1tDX (скриншот)

(Отредактировано автором: 22 Апреля, 2013 - 16:19:58)

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



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


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


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




Цитата:
$info->response->players[0]->steamid

тоесть только первый игрок.
нужно проходится в цикле.
 
 Top
DelphinPRO
Отправлено: 22 Апреля, 2013 - 16:24:33
Post Id



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


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


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




Нуб-2 пишет:
WHERE `steam-steamid`

Нуб-2 пишет:
INSERT INTO `users` (`s-steamid`


разные названия полей. Будьте внимательны, на форуме не всегда точный код дают Улыбка


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


Гость


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


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

[+]


esterio пишет:
Цитата:
$info->response->players[0]->steamid

тоесть только первый игрок.
нужно проходится в цикле.

Зачем это? Каждый игрок -- уникальная авторизация.
(Добавление)
DelphinPRO пишет:
Нуб-2 пишет:
WHERE `steam-steamid`

Нуб-2 пишет:
INSERT INTO `users` (`s-steamid`


разные названия полей. Будьте внимательны, на форуме не всегда точный код дают Улыбка

Да, спасибо, моя оплошность Улыбка
(Добавление)
И снова вопрос Улыбка
Я, так сказать, хочу немного усложнить авторизацию))
Вместо:
PHP:
скопировать код в буфер обмена
  1. if (mysql_num_rows($result)) {
  2.                                                         echo "id exists!";
  3.                                                 } else {
  4.                                                
  5.                                                 mysql_query(" INSERT INTO `users` (`s-steamid`,   `s-cvs`,   `s-profilestate`,   `s-personaname`,   `s-profileurl`,   `s-avatar`,   `s-avatarm`,   `s-avatarf`) VALUES (
  6.   '".mysql_real_escape_string($info->response->players[0]->steamid)."',
  7.   '".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."',
  8.   '".mysql_real_escape_string($info->response->players[0]->profilestate)."',
  9.   '".mysql_real_escape_string($info->response->players[0]->personaname)."',
  10.   '".mysql_real_escape_string($info->response->players[0]->profileurl)."',
  11.   '".mysql_real_escape_string($info->response->players[0]->avatar)."',
  12.   '".mysql_real_escape_string($info->response->players[0]->avatarmedium)."',
  13.   '".mysql_real_escape_string($info->response->players[0]->avatarfull)."')");
  14.    }

Нечто типа:
PHP:
скопировать код в буфер обмена
  1. if (mysql_num_rows($result)) {
  2.                                                         mysql_query("UPDATE `users` SET `s-cvs`='".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."'";
  3.  
  4.                                                 } else {
  5.                                                
  6.                                                 mysql_query(" INSERT INTO `users` (`s-steamid`,   `s-cvs`,   `s-profilestate`,   `s-personaname`,   `s-profileurl`,   `s-avatar`,   `s-avatarm`,   `s-avatarf`) VALUES (
  7.   '".mysql_real_escape_string($info->response->players[0]->steamid)."',
  8.   '".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."',
  9.   '".mysql_real_escape_string($info->response->players[0]->profilestate)."',
  10.   '".mysql_real_escape_string($info->response->players[0]->personaname)."',
  11.   '".mysql_real_escape_string($info->response->players[0]->profileurl)."',
  12.   '".mysql_real_escape_string($info->response->players[0]->avatar)."',
  13.   '".mysql_real_escape_string($info->response->players[0]->avatarmedium)."',
  14.   '".mysql_real_escape_string($info->response->players[0]->avatarfull)."')");
  15.    }

Как можно выбрать ту самую строчку, которую надо обновить? Закатив глазки
 
 Top
DelphinPRO
Отправлено: 22 Апреля, 2013 - 16:52:18
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2.    UPDATE `users`
  3.    SET
  4.      `s-cvs`='".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."'
  5.    WHERE `s-steamid` = ".mysql_real_escape_string($info->response->players[0]->steamid)."
  6. ";

(Отредактировано автором: 22 Апреля, 2013 - 16:53:05)



-----
Чем больше узнаю, тем больше я не знаю.
 
 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