PHP.SU

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

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

> Найдено сообщений: 67
Нуб-2 Отправлено: 22 Апреля, 2013 - 20:29:13 • Тема: запрос GROUP BY • Форум: Вопросы новичков

Ответов: 4
Просмотров: 133
Derekovich пишет:
Ребята, просьба объяснить запрос GROUP BY в мускуле, читаю материалы, но не пойму до конца... Заранее благодарен!

Попробуй вот это почитать, там есть примеры, которые помогут разобраться http://www[dot]sql[dot]az/index.php?opti[dot][dot][dot]d=70&lang=ru
Нуб-2 Отправлено: 22 Апреля, 2013 - 19:30:03 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
DelphinPRO пишет:
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. ";


Т.е., как-то так получается вся строчка? Смущает большое кол-во кавычек.
PHP:
скопировать код в буфер обмена
  1. mysql_query(" UPDATE `users` SET `s-cvs`='".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."',`s-personaname`='".mysql_real_escape_string($info->response->players[0]->personaname)."',`s-profileurl`='".mysql_real_escape_string($info->response->players[0]->profileurl)."',`s-avatar`='".mysql_real_escape_string($info->response->players[0]->avatar)."',`s-avatarm`='".mysql_real_escape_string($info->response->players[0]->avatarmedium)."',`s-avatarf`='".mysql_real_escape_string($info->response->players[0]->avatarfull)."'   WHERE `s-steamid` = ".mysql_real_escape_string($info->response->players[0]->steamid)."";

(Добавление)
И еще возник маленький вопрос:
Почему после входа сразу выходит?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require 'openid.php';
  3. require 'config.php';
  4. try {
  5.     $openid = new LightOpenID('l8eve.ru');
  6.     if(!$openid->mode) {
  7.         if(isset($_GET['login'])) {
  8.             $openid->identity = 'http://steamcommunity.com/openid';
  9.             header('Location: ' . $openid->authUrl());
  10.         }
  11. ?>
  12. <form action="?login" method="post">
  13.     <button>Login with Steam</button>
  14. </form>
  15. <?PHP
  16.     } elseif($openid->mode == 'cancel') {
  17.         echo 'User has canceled authentication!';
  18.     } else {
  19.         echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
  20.                
  21.                 $temp_Steam_User_ID = str_replace("http://steamcommunity.com/openid/id/", "", "$openid->identity");
  22.                 $json = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={$Steam_Api_Key}&steamids={$temp_Steam_User_ID}";
  23.                 $json_file = file_get_contents($json);
  24.                 if ($json_file == FALSE)
  25.                         {
  26.                                 echo "Ooops.Something went wrong.";
  27.                         } else
  28.                                 {
  29.                                         require "db.php";
  30.                                         $info = json_decode($json_file);
  31.                                         $result = mysql_query("   SELECT *   FROM `users`   WHERE `s-steamid` = '".mysql_real_escape_string($info->response->players[0]->steamid)."'");
  32.                                                 if (mysql_num_rows($result)) {
  33.                                                         #mysql_query(" UPDATE `users` SET `s-cvs`='".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."',`s-personaname`='".mysql_real_escape_string($info->response->players[0]->personaname)."',`s-profileurl`='".mysql_real_escape_string($info->response->players[0]->profileurl)."',`s-avatar`='".mysql_real_escape_string($info->response->players[0]->avatar)."',`s-avatarm`='".mysql_real_escape_string($info->response->players[0]->avatarmedium)."',`s-avatarf`='".mysql_real_escape_string($info->response->players[0]->avatarfull)."'   WHERE `s-steamid` = ".mysql_real_escape_string($info->response->players[0]->steamid)."";
  34.  
  35.                                                 } else {
  36.                                                
  37.                                                 mysql_query(" INSERT INTO `users` (`s-steamid`,   `s-cvs`,   `s-profilestate`,   `s-personaname`,   `s-profileurl`,   `s-avatar`,   `s-avatarm`,   `s-avatarf`) VALUES (
  38.   '".mysql_real_escape_string($info->response->players[0]->steamid)."',
  39.   '".mysql_real_escape_string($info->response->players[0]->communityvisibilitystate)."',
  40.   '".mysql_real_escape_string($info->response->players[0]->profilestate)."',
  41.   '".mysql_real_escape_string($info->response->players[0]->personaname)."',
  42.   '".mysql_real_escape_string($info->response->players[0]->profileurl)."',
  43.   '".mysql_real_escape_string($info->response->players[0]->avatar)."',
  44.   '".mysql_real_escape_string($info->response->players[0]->avatarmedium)."',
  45.   '".mysql_real_escape_string($info->response->players[0]->avatarfull)."')");
  46.    }
  47.                        
  48.                         # Логиним для сессии
  49.                         $_SESSION['logined'] = true;
  50.                         # Имя залогиневшегося -- его Steam ID
  51.                         $_SESSION['login'] = mysql_real_escape_string($info->response->players[0]->steamid);
  52.                        
  53.                        
  54.                         }              
  55.                
  56.  
  57.     }
  58. } catch(ErrorException $e) {
  59.     echo $e->getMessage();
  60. }
  61.  
  62. if ($_GET['logout'] = 1) {
  63.         unset($_SESSION['logined'], $_SESSION['login']);
  64.         echo "Logged out.";
  65.         }
  66. ?>
Нуб-2 Отправлено: 22 Апреля, 2013 - 17:21:13 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
DelphinPRO пишет:
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. ";

Спасибо Улыбка
Нуб-2 Отправлено: 22 Апреля, 2013 - 16:28:32 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
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.    }

Как можно выбрать ту самую строчку, которую надо обновить? Закатив глазки
Нуб-2 Отправлено: 22 Апреля, 2013 - 16:19:05 • Тема: Не работает json • Форум: Вопросы новичков

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

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

в базу добавляются одинаковые значения -- http://pbrd[dot]co/Zh1tDX (скриншот)
Нуб-2 Отправлено: 22 Апреля, 2013 - 16:07:03 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
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.    }
Нуб-2 Отправлено: 22 Апреля, 2013 - 12:28:16 • Тема: Не работает json • Форум: Вопросы новичков

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

Хорошо, спасибо еще раз. Пойду внимательней ознакомлюсь со справкой Улыбка
Нуб-2 Отправлено: 22 Апреля, 2013 - 12:19:46 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
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. }

Это будет работать, даже если использовать проверку на другой странице?
Нуб-2 Отправлено: 22 Апреля, 2013 - 12:14:08 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
esterio пишет:
Пример:
1.php


2.php


Тоесть при старте мы имеем в массиве $_SESSION. При присвоение значения массиву $_SESSION данные будут доступни везде где была стартанута сессия.
Ага.. Т.е., везде, где мне нужно получить идентификаторы, то просто использовать var_dump..., да?
Нуб-2 Отправлено: 22 Апреля, 2013 - 12:06:59 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
esterio пишет:
Нуб-2 пишет:
И?
Ответ выводит...

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

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

Как ими манипулировать-то? Мне нужно передать с login.php на index.php сессию или их параметры, т.е. чтобы человек, который залогинился на login.php мог использовать index.php как пользователь, а не гость. Подскажете? Огорчение
Нуб-2 Отправлено: 22 Апреля, 2013 - 11:50:47 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633

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

Ответов: 37
Просмотров: 1633
Пробовал через include просто присоединять страницы, но не сработало.
Как лучше?
Или, может, вообще, в бд занести весь текст? Хотя, нет, наверное, грузить сайт сильно будет.
Посоветуйте оптимальное решение, пожалуйста.
Нуб-2 Отправлено: 22 Апреля, 2013 - 00:05:44 • Тема: Не работает json • Форум: Вопросы новичков

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


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


Как мне передать сессию на главную страницу? Или как интергировать эти две страницы? Я пробовал, но постоянно появлялась ошибка, нечто о том, что "Возможно, сервер неверно сконфигурирован". Не могли бы вы помочь? Про сессии использовал материал, который дан тут -- http://androoha[dot]com/web-design-t[dot][dot][dot]risation-on-site
Нуб-2 Отправлено: 21 Апреля, 2013 - 22:23:23 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
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 в базе?
Нуб-2 Отправлено: 21 Апреля, 2013 - 19:34:42 • Тема: Не работает json • Форум: Вопросы новичков

Ответов: 37
Просмотров: 1633
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. ?>

Страниц (5): « 1 2 3 [4] 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB