Задать вопрос
@Mazafacer

Почему не работает запись в базу данных?

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

Всё делаю на локальном хосте укажите на ошибку найти что я делаю не так?

steam.php

<?php
if(!isset($Functions)){
    die("Error! 404");
}

require $_SERVER['DOCUMENT_ROOT'].'/engine/openid.php';

if($Functions->isLogged()){
    if(isset($_GET['logout'])){
        session_destroy();
    }
    $Functions->redirect();
}else{
    try{
        $openid = new LightOpenID('http://'.$Functions->config['site_name']);
        if(!$openid->mode) {
            if(isset($_GET['login'])){
                $openid->identity = 'http://steamcommunity.com/openid';
                $Functions->redirect($openid->authUrl());
            }else{
                $Functions->redirect();
            }
        }elseif($openid->mode == 'cancel'){
            $Functions->redirect();
        }else{
            if($openid->validate()) {
                $id = $openid->identity;
                $ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
                preg_match($ptn, $id, $matches);
                $json_object = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=A448D5BD47BF529C9EEC5EA922431CFE&steamids=".$matches[1]);
				
				if($json_object == false){
					die($Functions->getIndex("steam_fail"));
				}else{
					$json_decoded = json_decode($json_object);
					$player = $json_decoded->response->players[0];
					if(!empty($player)){
						$getPlayer = $Functions->db->query("SELECT * FROM `users` WHERE steamid = '".$player->steamid."'");
						if($getPlayer->num_rows == 0){
							$Functions->db->query("INSERT INTO `users`(`steamid`, `name`, `avatar`, `money`, `created`, `status`) VALUES ('".$player->steamid."', '".$player->personaname."', '".$player->avatarfull."', '0', '".time()."', '1')");
						}else{
                            $Functions->db->query("UPDATE `users` SET name = '".$Functions->getString($player->personaname)."', avatar = '".$player->avatarfull."' WHERE steamid = '".$player->steamid."'");
							$_SESSION['name'] = $player->personaname;
							$_SESSION['steamid'] = $player->steamid;
							$_SESSION['avatarfull'] = $player->avatarfull;
						}
						$Functions->redirect();
					}else{
						die($Functions->getIndex("top"));
					}
				}
            }else{
                $Functions->redirect();
            }
        }
    }catch(ErrorException $e){
        echo $e->getMessage();
    }
}

?>
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой 8 комментариев
Ответ пользователя Mazafacer К ответам на вопрос (2)
@Mazafacer Автор вопроса
Дело в том что записей в таблице ведь и нет, она пустая, у нас получается что после авторизации перенаправляет на страницу top
Ответ написан