segunda-feira, 23 de dezembro de 2019

Login Bootstrap com validação via POST



Esta aplicação utiliza a função sc_url_library do Scriptcase para incluir bibliotecas CSS do Bootstrap, e a função PHP file_get_contents para acessar um webservice criado em outra aplicação que realiza a validação do usuário e senha digitados.
Detalhes da aplicação
1. Estamos utilizando uma aplicação Blank para exibir a tela de login e incluir a biblioteca do Bootstrap:


2. Na aplicação teremos o seguinte código:
Blank
$str_error_msg = "";
// Verifica se o login e senha foram digitados.
if(isset($_POST['login']) && !empty($_POST['login']) && isset($_POST['password']) && !empty($_POST['password']))
{
// Parâmetros a serem passados ao webservice.
$parms = 'option=validate_login';
$parms .= '&str_login=' . $_POST['login'];
$parms .= '&str_password=' . $_POST['password'];
$webservice_url = dirname(dirname("http://" . $_SERVER["HTTP_HOST"] . $_SERVER["PHP_SELF"])) . "/user/";

// Acessa o webservice.
$str_output = sc_webservice('file_get_contents', $webservice_url, $_SERVER["SERVER_PORT"], "POST", $parms, array(), 30);

// Verifica retorno do webservice.
if($str_output != 'ok')
{
$str_error_msg = $str_output;
}
else
{
sc_redir('menu');
}
}
// Início de layout da página de Login.
?>
<html>
<head>
<title>Bootstrap Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- Inclui as bibliotecas do Bootstrap -->
<link rel="stylesheet" type="text/css" href="<?php echo sc_url_library('prj', 'bootstrap-3.3.2-dist', 'css/bootstrap.min.css'); ?>" />
<link rel="stylesheet" type="text/css" href="<?php echo sc_url_library('prj', 'bootstrap-3.3.2-dist', 'css/style1.css'); ?>" />
</head>
<body>


<div class="container">
<div class="row">
<div class="col-sm-6 col-md-4 col-md-offset-4">
<h1 class="text-center login-title">Sign in to continue to Login</h1>
<div class="account-wall">
<img class="profile-img" src="https://lh3.googleusercontent.com/-OJ26yjLQ8mo/AAAAAAAAAAI/AAAAAAAAAHg/9aw8LXIfn5I/s120-c/photo.jpg?sz=120" alt="">
<form class="form-signin" method="post">
<input type="text" name="login" class="form-control" id="form-login" placeholder="Email" required autofocus>
<input type="password" name="password" class="form-control" id="form-password" placeholder="Password" required>
<span role="alert" class="error-msg" id="errormsg_0_Passwd"><?php echo $str_error_msg; ?></span>
<input type="submit" value="Sign in" class="btn btn-lg btn-primary btn-block" />
<label class="checkbox pull-left">
<input type="checkbox" value="remember-me">
Remember me
</label>
<a href="#" class="pull-right need-help">Need help? </a><span class="clearfix"></span>
</form>
</div>
<a href="#" class="text-center new-account">Create an account </a>
</div>
</div>
</div>
</body>
</html>
<?php // Fim de layout da página de Login.
Aplicação de serviço de validação de usuário
3. O código acima realiza o acesso à aplicação "/user/", responsável pela validação do login e senha digitados. Esta aplicação será uma Blank contendo o seguinte código:
Blank "user"
if(isset($_POST['option']) && !empty($_POST['option']))
{
// Entra na condição se os parâmetros tiverem sido recebidos corretamente da aplicação anterior.
$str_return = "";

// Verifica a opção clicada pelo usuário.
switch($_POST['option'])
{
case 'validate_login':
// Opção de validação de usário e senha.
sc_lookup(rs, "SELECT COUNT(*) FROM sec_users WHERE login = " . sc_sql_injection($_POST['str_login']) . " AND pswd = " . sc_sql_injection($_POST['str_password']));

if(isset({rs[0][0]}) && {rs[0][0]} > 0)
{
$str_return = "ok";
}
else
{
$str_return = {lang_msg_sec01};
}
break;

case 'add_user':
// Opção de inclusão de usuário.

break;

case 'delete_user':
// Opção de exclusão de usuário.

break;
}

echo $str_return;
exit;
}


Nenhum comentário:

Postar um comentário