This commit is contained in:
JoseluCross
2018-10-01 16:47:43 +02:00
parent e796883167
commit 40e0291517
4 changed files with 26 additions and 19 deletions

View File

@@ -8,10 +8,14 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
{% if page.state == 1 %} {% if page.state == 'BAD_CREDENTIAL' %}
<p class="text-danger">Bad credentials</p> <p class="text-danger">Bad credentials</p>
{% elseif page.state == 2 %} {% elseif page.state == 'POST_ERROR' %}
<p class="text-danger">Error during sign-up, check your data</p> <p class="text-danger">Error during sign-up, check your data</p>
{% elseif page.state == 'MAIL_IN_USE' %}
<p class="text-danger">The e-mail is currently in use</p>
{% elseif page.state == 'NICK_IN_USE' %}
<p class="text-danger">The nickname is currently in use</p>
{% endif %} {% endif %}
</div> </div>
</div> </div>

View File

@@ -382,9 +382,9 @@ class DB
* @param $email user's email * @param $email user's email
* @return int user's identifier * @return int user's identifier
*/ */
public function loadIDU($email) public function loadIDU($field,$mode='email')
{ {
$query = "SELECT IDU FROM Users WHERE email='" . $email . "'"; $query = "SELECT IDU FROM Users WHERE $mode='" . $field . "'";
return $this->getQuery($query)["IDU"]; return $this->getQuery($query)["IDU"];
} }
@@ -434,7 +434,9 @@ class DB
public function register($email, $pass, $nick) public function register($email, $pass, $nick)
{ {
if ($this->loadIDU($email)) if ($this->loadIDU($email))
return false; return 'MAIL_IN_USE';
else if ($this->loadIDU($nick,'nick'))
return 'NICK_IN_USE';
else { else {
$password = hash('sha256', $pass); $password = hash('sha256', $pass);
dbw_query($this->conn, "INSERT INTO Users (`email`,`pass`,`nick`) VALUES ('$email','$password','$nick')"); dbw_query($this->conn, "INSERT INTO Users (`email`,`pass`,`nick`) VALUES ('$email','$password','$nick')");

View File

@@ -162,7 +162,7 @@ $app->get('/signup', function(Request $request) use ($app){
})->bind('register')->method('GET|POST'); })->bind('register')->method('GET|POST');
function loginRegister($default,$state=0){ function loginRegister($default,$state=''){
global $app; global $app;
$page = array( $page = array(
@@ -179,20 +179,21 @@ function loginOrRegister($state,$request){
switch ($state){ switch ($state){
case 3: case 3:
return loginRegister('login',1); return loginRegister('login','BAD_CREDENTIAL');
case 1: case 1:
if(checklogin($request->get('email'),$request->get('pwd'))){ if(checklogin($request->get('email'),$request->get('pwd'))==''){
return $app->redirect($app["url_generator"]->generate('home')); return $app->redirect($app["url_generator"]->generate('home'));
}else{ }else{
return loginRegister("login",1); return loginRegister("login",'BAD_CREDENTIAL');
} }
case 2: case 2:
if(register($request->get('emailre'),$request->get('emailre-re'), $state = register($request->get('emailre'),$request->get('emailre-re'),
$request->get('pwdre'), $request->get('pwdre-re'),$request->get('nick'))){ $request->get('pwdre'), $request->get('pwdre-re'),$request->get('nick'));
if ($state == '')
return $app->redirect($app["url_generator"]->generate('home')); return $app->redirect($app["url_generator"]->generate('home'));
}else{ else
return loginRegister("sing-up",2); return loginRegister("sing-up",$state);
}
} }
} }

View File

@@ -34,7 +34,7 @@ function checklogin($email,$pass){
$_SESSION['token'] = $token; $_SESSION['token'] = $token;
$_SESSION['sessionID'] =$idu; $_SESSION['sessionID'] =$idu;
$db->close(); $db->close();
return true; return '';
} }
$db->close(); $db->close();
return false; return false;
@@ -51,14 +51,14 @@ function checklogin($email,$pass){
function register($email,$emailre,$pass,$passre,$nick){ function register($email,$emailre,$pass,$passre,$nick){
$db = new DB(); $db = new DB();
if($emailre != $email || $pass != $passre) if($emailre != $email || $pass != $passre)
return false; return 'POST_ERROR';
$bool = $db->register($email,$pass,$nick); $state = $db->register($email,$pass,$nick);
if($bool) { if($state) {
$db->close(); $db->close();
return checklogin($email, $pass); return checklogin($email, $pass);
}else { }else {
$db->close(); $db->close();
return false; return $state;
} }
} }