Witam,
Mam problem ze skryptem logowania za pomocą steama. Jestem totalnie w tym zielony, jeśli chodzi o php i hostowanie stron www.
Gdy wykonuję skrypt u siebie na localhost:
Odsyła mnie do steama -> loguje się na steam -> wrzuca mnie na stronę zalogowanego
Gdy wykonuję skrypt na serwerze:
Odsyła mnie do steam -> loguję się na steam -> wrzuca mnie na serwer wraz z errorem 500. Oczywiście nie zalogowanego.
Gdy otwieram logi apache2 pojawia się co jakiś czas rewrite engine.
Jest on włączony, restartowałem apache.
Zmieniałem też prawa do plików. Nie pomogło.
W internecie jest też napisane coś o pliku htaccess.
Mój wygląda tak:
RewriteEngine on
RewriteRule ^(\w+)$ index.php?page=$1 [L,NC,QSA]
RewriteRule ^(\w+)+\/$ index.php?page=$1 [L,NC,QSA]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
order allow,deny
allow from all
Do tego pliki php ( które działają na localhoscie a na www coś jest nie tak)
case 'login':
include 'openid.php';
try
{
$openid = new LightOpenID('http://'.$_SERVER['SERVER_NAME'].'/');
if (!$openid->mode) {
$openid->identity = 'https://steamcommunity.com/openid/?l=english';
header('Location: ' . $openid->authUrl());
} elseif ($openid->mode == 'cancel') {
echo '';
} else {
if ($openid->validate()) {
$id = $openid->identity;
$ptn = "/^https:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
preg_match($ptn, $id, $matches);
$url = "https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$steamapi&steamids=$matches[1]";
$json_object = curl($url);
$json_decoded = json_decode($json_object);
foreach ($json_decoded->response->players as $player) {
$steamid = $player->steamid;
$name = $player->personaname;
if((preg_match('/(<SCR|<scr|<ScR|<sCr|<sCR|<Scr|<scR|<SCr)/', $name)) ) {
Header("Location: https://puu.sh/k0Hki.jpg");
}
$avatar = $player->avatarfull;
}
$hash = md5($steamid . time() . rand(1, 50));
$sql = $db->query("SELECT * FROM `users` WHERE `steamid` = '" . $steamid . "'");
$row = $sql->fetchAll(PDO::FETCH_ASSOC);
if (count($row) == 0) {
$db->exec("INSERT INTO `users` (`hash`, `steamid`, `name`, `avatar`) VALUES ('" . $hash . "', '" . $steamid . "', " . $db->quote($name) . ", '" . $avatar . "')");
} else {
$db->exec("UPDATE `users` SET `hash` = '" . $hash . "', `name` = " . $db->quote($name) . ", `avatar` = '" . $avatar . "' WHERE `steamid` = '" . $steamid . "'");
}
setcookie('hash', $hash, time() + 3600 * 24 * 7, '/');
header('Location: https://www.strona.pl/sets.php?id=' . $hash);
}
}
} catch (ErrorException $e) {
exit($e->getMessage());
}
break;
Oczywiście jeśli będzie to wina pliku openid.php to także go dodam.
Dziękuje z góry za każde nakierowanie mnie na naprawę ::)
Pozdrawiam.