mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-10 09:19:01 +00:00
Added logout, refined login and took it back out of the lib. Added timers to forward after 5 seconds after logout & register. Looks good imo
--HG-- branch : quitta-gsoc-2013
This commit is contained in:
parent
c59e3d0b47
commit
9e6597e937
10 changed files with 183 additions and 164 deletions
|
@ -295,44 +295,6 @@ class Users{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function login($params){
|
|
||||||
$webhost = $params["webhost"];
|
|
||||||
$webport = $params["webport"];
|
|
||||||
$webdbname = $params["webdbname"];
|
|
||||||
$webusername = $params["webusername"];
|
|
||||||
$webpassword = $params["webpassword"];
|
|
||||||
|
|
||||||
try{
|
|
||||||
$dbw = new PDO("mysql:host=$webhost;port=$webport;dbname=$webdbname", $webusername, $webpassword);
|
|
||||||
$dbw->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
||||||
|
|
||||||
$statement = $dbw->prepare("SELECT * FROM ams_user WHERE Login=:user");
|
|
||||||
$statement->execute(array('user' => $params['name']));
|
|
||||||
$count = $statement->rowCount();
|
|
||||||
|
|
||||||
if ($count==1) {
|
|
||||||
$row = $statement->fetch();
|
|
||||||
$salt = substr($row['Password'],0,2);
|
|
||||||
$hashed_input_pass = crypt($params["pass"], $salt);
|
|
||||||
if($hashed_input_pass == $row['Password']){
|
|
||||||
//handle successful login
|
|
||||||
print("nice welcome!");
|
|
||||||
$_SESSION['user'] = $params['name'];
|
|
||||||
$_SESSION['permission'] = $row['Permission'];
|
|
||||||
print( $_SESSION['user']);
|
|
||||||
return "success";
|
|
||||||
}else{
|
|
||||||
//handle login failure
|
|
||||||
print("Login failed");
|
|
||||||
return "failure";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (PDOException $e) {
|
|
||||||
//go to error page or something, because can't access website db
|
|
||||||
print_r($e);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,22 @@
|
||||||
[home]
|
[home]
|
||||||
|
|
||||||
[login]
|
[login]
|
||||||
|
login_info = "Please login with your Username and Password."
|
||||||
|
login_error_message = "The filled in username/password were not correct!"
|
||||||
|
|
||||||
|
[logout]
|
||||||
|
logout_message = "You've been logged out successfully!"
|
||||||
|
login_title = "Login"
|
||||||
|
login_timer = "You will be redirected to the login page in "
|
||||||
|
login_text = "Or click here if you don't want to wait!"
|
||||||
|
|
||||||
[register_feedback]
|
[register_feedback]
|
||||||
status_ok = "You registered like a baws!"
|
status_ok = "You registered like a baws!"
|
||||||
status_shardoffline = "It seems the shard is offline, you can use the web-account, but you will need to wait for the shard."
|
status_shardoffline = "It seems the shard is offline, you can use the web-account, but you will need to wait for the shard."
|
||||||
status_liboffline = "You can't register an account at this time"
|
status_liboffline = "You can't register an account at this time"
|
||||||
login_title = "Next step: Login"
|
login_title = "Login"
|
||||||
login_text = "Click here if you want to log in!"
|
login_timer = "You will be redirected to the login page in "
|
||||||
|
login_text = "Or click here if you don't want to wait!"
|
||||||
|
|
||||||
[register]
|
[register]
|
||||||
title = "RYZOM CORE INGAME REGISTRATION"
|
title = "RYZOM CORE INGAME REGISTRATION"
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
session_unset();
|
||||||
|
session_destroy();
|
||||||
|
$pageElements['no_visible_elements'] = 'TRUE';
|
||||||
|
helpers :: loadtemplate( 'logout', $pageElements);
|
||||||
|
exit();
|
|
@ -1,71 +0,0 @@
|
||||||
<?php
|
|
||||||
require( '../config.php' );
|
|
||||||
// check if values exist
|
|
||||||
if ( isset( $_POST["Username"] ) and isset( $_POST["Password"] ) and isset( $_POST["Email"] ) )
|
|
||||||
{
|
|
||||||
// check values
|
|
||||||
$user = users :: checkUser( $_POST["Username"] );
|
|
||||||
$pass = users :: checkPassword( $_POST["Password"] );
|
|
||||||
$cpass = users :: confirmPassword();
|
|
||||||
$email = users :: checkEmail( $_POST["Email"] );
|
|
||||||
}else{
|
|
||||||
$user = "";
|
|
||||||
$pass = "";
|
|
||||||
$cpass = "";
|
|
||||||
$email = "";
|
|
||||||
}
|
|
||||||
// if all are good then create user
|
|
||||||
if ( ( $user == "success" ) and ( $pass == "success" ) and ( $cpass == "success" ) and ( $email == "success" ) and ( isset( $_POST["TaC"] ) ) ){
|
|
||||||
$edit = array(
|
|
||||||
'name' => $_POST["Username"],
|
|
||||||
'pass' => $_POST["Password"],
|
|
||||||
'mail' => $_POST["Email"],
|
|
||||||
'init' => $_POST["Email"],
|
|
||||||
'unhashpass' => $_POST["Password"],
|
|
||||||
'status' => 1,
|
|
||||||
'access' => REQUEST_TIME
|
|
||||||
);
|
|
||||||
user_save( NULL, $edit );
|
|
||||||
header( 'Location: email_sent.php' );
|
|
||||||
exit;
|
|
||||||
}else{
|
|
||||||
$pageElements = array(
|
|
||||||
'GAME_NAME' => $GAME_NAME,
|
|
||||||
'WELCOME_MESSAGE' => $WELCOME_MESSAGE,
|
|
||||||
'USERNAME' => $user,
|
|
||||||
'PASSWORD' => $pass,
|
|
||||||
'CPASSWORD' => $cpass,
|
|
||||||
'EMAIL' => $email
|
|
||||||
);
|
|
||||||
if ( $user != "success" ){
|
|
||||||
$pageElements['USERNAME_ERROR'] = 'TRUE';
|
|
||||||
}else{
|
|
||||||
$pageElements['USERNAME_ERROR'] = 'FALSE';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( $pass != "success" ){
|
|
||||||
$pageElements['PASSWORD_ERROR'] = 'TRUE';
|
|
||||||
}else{
|
|
||||||
$pageElements['PASSWORD_ERROR'] = 'FALSE';
|
|
||||||
}
|
|
||||||
if ( $cpass != "success" ){
|
|
||||||
$pageElements['CPASSWORD_ERROR'] = 'TRUE';
|
|
||||||
}else{
|
|
||||||
$pageElements['CPASSWORD_ERROR'] = 'FALSE';
|
|
||||||
}
|
|
||||||
if ( $email != "success" ){
|
|
||||||
$pageElements['EMAIL_ERROR'] = 'TRUE';
|
|
||||||
}else{
|
|
||||||
$pageElements['EMAIL_ERROR'] = 'FALSE';
|
|
||||||
}
|
|
||||||
if ( isset( $_POST["TaC"] ) ){
|
|
||||||
$pageElements['TAC_ERROR'] = 'FALSE';
|
|
||||||
}else{
|
|
||||||
$pageElements['TAC_ERROR'] = 'TRUE';
|
|
||||||
}
|
|
||||||
if ( helpers :: check_if_game_client() ){
|
|
||||||
helpers :: loadtemplate( 'register', $pageElements );
|
|
||||||
}else{
|
|
||||||
helpers :: loadtemplate( 'register', $pageElements );
|
|
||||||
}
|
|
||||||
}
|
|
43
code/ryzom/tools/server/ryzom_ams/www/html/inc/login.php
Normal file
43
code/ryzom/tools/server/ryzom_ams/www/html/inc/login.php
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
function login(){
|
||||||
|
|
||||||
|
global $WEBDBHOST;
|
||||||
|
global $WEBDBPORT;
|
||||||
|
global $WEBDBNAME;
|
||||||
|
global $WEBDBUSERNAME;
|
||||||
|
global $WEBDBPASSWORD;
|
||||||
|
|
||||||
|
try{
|
||||||
|
$dbw = new PDO("mysql:host=$WEBDBHOST;port=$WEBDBPORT;dbname=$WEBDBNAME", $WEBDBUSERNAME, $WEBDBPASSWORD);
|
||||||
|
$dbw->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
|
||||||
|
$statement = $dbw->prepare("SELECT * FROM ams_user WHERE Login=:user");
|
||||||
|
$statement->execute(array('user' => $_POST['Username']));
|
||||||
|
|
||||||
|
$row = $statement->fetch();
|
||||||
|
$salt = substr($row['Password'],0,2);
|
||||||
|
$hashed_input_pass = crypt($_POST["Password"], $salt);
|
||||||
|
if($hashed_input_pass == $row['Password']){
|
||||||
|
//handle successful login
|
||||||
|
$_SESSION['user'] = $_POST["Username"];
|
||||||
|
$_SESSION['permission'] = $row['Permission'];
|
||||||
|
//go back to the index page.
|
||||||
|
header( 'Location: index.php' );
|
||||||
|
exit;
|
||||||
|
}else{
|
||||||
|
//handle login failure
|
||||||
|
$result['login_error'] = 'TRUE';
|
||||||
|
$result['no_visible_elements'] = 'TRUE';
|
||||||
|
helpers :: loadtemplate( 'login', $result);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}catch (PDOException $e) {
|
||||||
|
//go to error page or something, because can't access website db
|
||||||
|
print_r($e);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -27,9 +27,14 @@ if ( isset( $_POST["function"] ) ){
|
||||||
|
|
||||||
|
|
||||||
function loadpage ( $page ){
|
function loadpage ( $page ){
|
||||||
require_once( 'autoload/' . $page . '.php' );
|
$filename = 'autoload/' . $page . '.php';
|
||||||
|
if(is_file($filename)){
|
||||||
|
require_once($filename);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loadpage($page);
|
||||||
|
|
||||||
//Set permission
|
//Set permission
|
||||||
if(isset($_SESSION['permission'])){
|
if(isset($_SESSION['permission'])){
|
||||||
$return['permission'] = $_SESSION['permission'];
|
$return['permission'] = $_SESSION['permission'];
|
||||||
|
@ -40,7 +45,7 @@ if(isset($_SESSION['permission'])){
|
||||||
|
|
||||||
|
|
||||||
//hide sidebar + topbar in case of login/register
|
//hide sidebar + topbar in case of login/register
|
||||||
if($page == 'login' || $page == 'register'){
|
if($page == 'login' || $page == 'register' || $page == 'logout'){
|
||||||
$return['no_visible_elements'] = 'TRUE';
|
$return['no_visible_elements'] = 'TRUE';
|
||||||
}else{
|
}else{
|
||||||
$return['no_visible_elements'] = 'FALSE';
|
$return['no_visible_elements'] = 'FALSE';
|
||||||
|
|
|
@ -4,5 +4,6 @@
|
||||||
<li style="margin-left: -2px;" class="active"><a class="ajax-link" href="?page=home"><i class="icon-home"></i><span class="hidden-tablet"> Dashboard</span></a></li>
|
<li style="margin-left: -2px;" class="active"><a class="ajax-link" href="?page=home"><i class="icon-home"></i><span class="hidden-tablet"> Dashboard</span></a></li>
|
||||||
<li class="nav-header hidden-tablet">Sample Section</li>
|
<li class="nav-header hidden-tablet">Sample Section</li>
|
||||||
<li style="margin-left: -2px;"><a href="?page=login"><i class="icon-lock"></i><span class="hidden-tablet"> Login Page</span></a></li>
|
<li style="margin-left: -2px;"><a href="?page=login"><i class="icon-lock"></i><span class="hidden-tablet"> Login Page</span></a></li>
|
||||||
|
<li style="margin-left: -2px;"><a href="?page=logout"><i class="icon-off"></i><span class="hidden-tablet"> Logout </span></a></li>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
|
|
@ -8,38 +8,45 @@
|
||||||
</div><!--/row-->
|
</div><!--/row-->
|
||||||
|
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="well span5 center login-box">
|
<div class="well span5 center login-box">
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
Please login with your Username and Password.
|
{$login_info}
|
||||||
</div>
|
</div>
|
||||||
<form method="post" action="index.php" class="form-horizontal">
|
<form method="post" action="index.php" class="form-horizontal">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<div data-rel="tooltip" class="input-prepend" data-original-title="Username">
|
<div data-rel="tooltip" class="input-prepend" data-original-title="Username">
|
||||||
<span class="add-on"><i class="icon-user"></i></span><input type="text" value="" id="Username" name="Username" class="input-large span10" autofocus="">
|
<span class="add-on"><i class="icon-user"></i></span><input type="text" value="" id="Username" name="Username" class="input-large span10" autofocus="">
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
<div data-rel="tooltip" class="input-prepend" data-original-title="Password">
|
<div data-rel="tooltip" class="input-prepend" data-original-title="Password">
|
||||||
<span class="add-on"><i class="icon-lock"></i></span><input type="password" value="" id="Password" name="Password" class="input-large span10">
|
<span class="add-on"><i class="icon-lock"></i></span><input type="password" value="" id="Password" name="Password" class="input-large span10">
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
<div class="input-prepend">
|
<div class="input-prepend">
|
||||||
<label for="remember" class="remember"><div class="checker" id="uniform-remember"><span><input type="checkbox" id="remember" style="opacity: 0;"></span></div>Remember me</label>
|
<label for="remember" class="remember"><div class="checker" id="uniform-remember"><span><input type="checkbox" id="remember" style="opacity: 0;"></span></div>Remember me</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
<p class="center span5">
|
<p class="center span5">
|
||||||
<input type="hidden" name="function" value="login">
|
<input type="hidden" name="function" value="login">
|
||||||
<button class="btn btn-primary" type="submit">Login</button>
|
<button class="btn btn-primary" type="submit">Login</button>
|
||||||
</p>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<div class="alert alert-info">
|
|
||||||
<strong>Register</strong>
|
{if isset($login_error) and $login_error eq "TRUE"}
|
||||||
If you dont have an account yet, create one <a href="?page=register">here</a>!
|
<div class="alert alert-error">
|
||||||
</div>
|
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||||
</div><!--/span-->
|
<strong>{$login_error_message}</strong>
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
<div class="alert alert-info">
|
||||||
|
<strong>Register</strong>
|
||||||
|
If you dont have an account yet, create one <a href="?page=register">here</a>!
|
||||||
|
</div>
|
||||||
|
</div><!--/span-->
|
||||||
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
{extends file="layout.tpl"}
|
||||||
|
{block name=content}
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12 center login-header">
|
||||||
|
<img src="img/mainlogo.png"/>
|
||||||
|
</div><!--/span-->
|
||||||
|
</div><!--/row-->
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="well span5 center login-box">
|
||||||
|
<div class="alert alert-success">
|
||||||
|
{$logout_message}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="alert alert-info">
|
||||||
|
<strong>{$login_title}</strong>
|
||||||
|
<p>{$login_timer}<span id="seconds">5</span></p>
|
||||||
|
<p><a href="index.php">{$login_text}</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var seconds = 5;
|
||||||
|
setInterval(
|
||||||
|
function(){
|
||||||
|
if (seconds <= 1) {
|
||||||
|
window.location = 'index.php';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.getElementById('seconds').innerHTML = --seconds;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
1000
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
</div><!--/span-->
|
||||||
|
</div>
|
||||||
|
{/block}
|
||||||
|
|
|
@ -8,26 +8,42 @@
|
||||||
</div><!--/row-->
|
</div><!--/row-->
|
||||||
|
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="well span5 center login-box">
|
<div class="well span5 center login-box">
|
||||||
{if isset($status) and $status eq "ok"}
|
{if isset($status) and $status eq "ok"}
|
||||||
<div class="alert alert-success">
|
<div class="alert alert-success">
|
||||||
{$status_ok}
|
{$status_ok}
|
||||||
</div>
|
|
||||||
{else if isset($status) and $status eq "shardoffline"}
|
|
||||||
<div class="alert alert-error">
|
|
||||||
{$status_shardoffline}
|
|
||||||
</div>
|
|
||||||
{else if isset($status) and $status eq "liboffline"}
|
|
||||||
<div class="alert alert-error">
|
|
||||||
{$status_liboffline}
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<div class="alert alert-info">
|
|
||||||
<strong>{$login_title}</strong>
|
|
||||||
<a href="index.php?page=register">{$login_text}</a>
|
|
||||||
</div>
|
|
||||||
</div><!--/span-->
|
|
||||||
</div>
|
</div>
|
||||||
|
{else if isset($status) and $status eq "shardoffline"}
|
||||||
|
<div class="alert alert-error">
|
||||||
|
{$status_shardoffline}
|
||||||
|
</div>
|
||||||
|
{else if isset($status) and $status eq "liboffline"}
|
||||||
|
<div class="alert alert-error">
|
||||||
|
{$status_liboffline}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<div class="alert alert-info">
|
||||||
|
<strong>{$login_title}</strong>
|
||||||
|
<p>{$login_timer}<span id="seconds">5</span></p>
|
||||||
|
<p><a href="index.php">{$login_text}</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var seconds = 5;
|
||||||
|
setInterval(
|
||||||
|
function(){
|
||||||
|
if (seconds <= 1) {
|
||||||
|
window.location = 'index.php';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
document.getElementById('seconds').innerHTML = --seconds;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
1000
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
</div><!--/span-->
|
||||||
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue