Хорошо, у меня есть следующий код PHP:
<php>
$servername = "host";
$username = "username";
$password = "password";
$dbname = "db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT steamid, bananas FROM es_player";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "PLAYER'S STEAM ID: " . $row["steamid"]. " - PLAYER'S BANANAS: ".$row["bananas"]. " <br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
Он просто выбирает конкретные поля из моей базы данных. Когда пользователь входит в систему, он использует OpenID, а не через реальную базу данных под моим контролем. Именно через Steam пользователи входят в свою учетную запись Steam через OpenID. Я могу получить SteamID пользователя с этим при входе в систему, и для этого даже есть переменная. Мне нужно использовать эту переменную SteamID, когда они вошли в систему, чтобы указать, какая строка находится в базе данных, и напечатать ТОЛЬКО зарегистрированные поля профиля пользователя, а не просто печатать все строки в базе данных. Это будет сделано с использованием SteamID пользователя, который входит в систему, и который будет сравниваться с полем SteamID в моей базе данных, чтобы он знал, кем вы являетесь, когда вы входите в систему.
Я не знаю, как это сделать, поэтому я публикую здесь. Мне просто нужен код PHP или какая-то помощь в его написании. Спасибо вам большое! Вся помощь очень ценится!
У вас есть несколько связанных проблем, которые требуют дополнительного исследования. Поскольку я проголосовал за то, чтобы закрыть вопрос как слишком широкий, я отмечу этот ответ как Вики сообщества. Я действительно хочу помочь, но, как и ценности сообщества, я бы посоветовал вам принять следующие моменты и использовать их в качестве возможности для дальнейших исследований в поисковых системах. Ваш пост «просто [нужен] код PHP» «- это запрос на бесплатную работу, который мы пытаемся отговорить здесь.
я считать Я понимаю проблему, но у меня нет опыта работы со Steam API, поэтому вам может понадобиться прочитать их документы и адаптировать следующее. Если вы ранее не пользовались API или сессиями, найм фрилансера в вашем районе может быть самым быстрым и легким путем для продвижения вашего проекта в пути. Вам может потребоваться всего несколько часов их времени, поэтому оно не должно быть дорогим.
Когда пользователь входит в систему, вам необходимо создать сеанс. Обычно это так же просто, как использовать session_start()
и затем сохранение первичного ключа записи пользователя в качестве переменной, таким образом:
$_SESSION['user_id'] = $userId;
Идентификатор пользователя будет получен на экране входа в систему, где вы получите обратный вызов OpenID, чтобы доказать, что текущий пользователь действительно обладает идентификатором профиля Steam, который он вам предоставил. Настройка сеанса означает, что на любой последующей странице, просматриваемой пользователем, будет доступен их идентификатор пользователя, пока он не выйдет из системы. Это означает, что вам не нужно делать вызов OpenID на каждой странице.
SELECT
работа с базой данных с использованием идентификатора сеанса, который вы можете прочитать $_SESSION['user_id]
,Вот пример таблицы в OAuth приложение, которое я написал (это с открытым исходным кодом, так что вы можете разобрать его, если хотите). Когда пользователь входит в систему, эта запись либо создается (если она не существует), либо обновляется (если она существует):
mysql> SELECT * FROM user_auth;
+----+---------+---------------------------+----------+---------------------+
| id | user_id | username | provider | last_login_at |
+----+---------+---------------------------+----------+---------------------+
| 1 | 1 | https://github.com/halfer | github | 2015-01-13 18:05:49 |
+----+---------+---------------------------+----------+---------------------+
1 row in set (0.00 sec)
username
является идентификатором OpenID, provider
полезно, если вы позволяете пользователю выбирать из нескольких систем авторизации (Steam — другая), и, конечно, last_login_at
говорит само за себя.
Я также советовал в комментариях, что вам, возможно, придется написать этот код. Повторное использование библиотеки — это похвальная привычка, но, к сожалению, библиотеки не для всех случаев — иногда программисту просто нужно что-то написать самому. Мы часто видим запросы по переполнению стека для «библиотеки / учебника / пошагового руководства для [проекта X]» здесь, и если читатели смогут убедить авторов, что программирование на самом деле не так, они будут передаваться очень полезный урок.
Итак, попробуйте выше в порядке? Не стесняйтесь обращаться за дополнительной помощью, если я неправильно понял некоторую основную часть структуры, но в противном случае, пожалуйста, используйте ключевые слова, которые я упомянул, и вставьте их в поисковую систему. Это единственный способ учиться. Удачи!
Это было на самом деле довольно просто. Сначала я взял переменную SteamID 64 $ steamid и провел ее через это преобразование, которое выведет SteamID 32.
$id = $steamid;
function parseInt($string) {
if(preg_match('/(\d+)/', $string, $array)) {
return $array[1];
} else {
return 0;
}}
$steamY = parseInt($id);
$steamY = $steamY - 76561197960265728;
$steamX = 0;
if ($steamY%2 == 1){
$steamX = 1;
} else {
$steamX = 0;
}
$steamY = (($steamY - $steamX) / 2);
А затем, чтобы закончить, я просто создал переменную, которая объединила его в полную комбинацию STEAM_0: 000000000.
$steamID = "STEAM_0:" . (string)$steamX . ":" . (string)$steamY;
Теперь я могу использовать $ steamID в качестве переменной на любой странице, на которой я включаю этот код. Я ответил на это сам, так что если у кого-то еще будут проблемы с этим, как я изначально, ответ будет здесь для них 🙂