Commit 63d94844 by Juan Montilla

Ayax Register

parent ecc5d718
......@@ -20,9 +20,9 @@ CI_ENVIRONMENT = development
# APP
#--------------------------------------------------------------------
app.baseURL = 'https://tbw2223-12-mrtjcmh.oa.r.appspot.com'
# app.baseURL = 'https://tbw2223-12-mrtjcmh.oa.r.appspot.com'
# If you have trouble with `.`, you could also use `_`.
# app_baseURL = 'http://localhost'
app_baseURL = 'http://localhost'
# app.forceGlobalSecureRequests = false
# app.CSPEnabled = false
......@@ -31,19 +31,19 @@ CI_ENVIRONMENT = development
# DATABASE
#--------------------------------------------------------------------
# database.default.hostname = localhost
# database.default.database = webapp
# database.default.username = webapp_user
# database.default.password = FOE6f35AUtbL015D
# database.default.DBDriver = MySQLi
database.default.hostname = 34.65.71.245
database.default.hostname = localhost
database.default.database = webapp
database.default.username = mrtjcmh
database.default.password = d7c+}rB+Ezouc<ak
database.default.username = webapp_user
database.default.password = FOE6f35AUtbL015D
database.default.DBDriver = MySQLi
# database.default.hostname = 34.65.71.245
# database.default.database = webapp
# database.default.username = mrtjcmh
# database.default.password = d7c+}rB+Ezouc<ak
# database.default.DBDriver = MySQLi
# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
......
......@@ -34,7 +34,7 @@ use App\Controllers\User;
$routes->match(['get'], '/', [User::class, 'login']);
$routes->match(['get', 'post'], '/login', [User::class, 'login']);
$routes->match(['get', 'post'], '/loginAjax', [User::class, 'loginAjax']);
$routes->match(['get', 'post'], '/register', [User::class, 'register']);
$routes->match(['get', 'post'], '/registerAjax', [User::class, 'registerAjax']);
$routes->match(['get'], '/home', [User::class, 'user_ok']);
......
......@@ -26,6 +26,7 @@ class User extends BaseController
return view('pages/login', []);
}
public function loginAjax(){
$validation = \Config\Services::validation();
$rules = [
......@@ -40,7 +41,6 @@ class User extends BaseController
//"rules" => "required|min_length[8]|max_length[20]"
]
];
$data = [];
$session = session();
if ($this->request->getMethod() == "post") {
if ($this->validate($rules)) {
......@@ -92,9 +92,9 @@ class User extends BaseController
. view('templates/footer');
}
public function register()
{
$validation = \Config\Services::validation(); //Comprueba que los datos sean únicos en la base de datos, etc.
public function registerAjax()
{
$validation = \Config\Services::validation();
$rules = [
"username" => [
"label" => "Username",
......@@ -106,7 +106,7 @@ class User extends BaseController
],
"password" => [
"label" => "Password",
"rules" => "required"
"rules" => "required|min_length[8]|max_length[20]"
]
];
$data = [];
......@@ -114,6 +114,7 @@ class User extends BaseController
$userModel = model('UserModel');
if ($this->request->getMethod() == "post") {
if ($this->validate($rules)) {
// Código de registro y respuesta exitosa
$username = $this->request->getVar('username');
$email = $this->request->getVar('email');
$password = $this->request->getVar('password');
......@@ -125,14 +126,31 @@ class User extends BaseController
$userModel->saveUser($email, $username, $password);
$session->set('logged_in', TRUE);
$session->set('user', $user);
return redirect()->to(base_url('/logged'));
return $this->response->setStatusCode(200)->setJSON([
'text' => 'Usuario logeado'
]);
} else {
$data["errors"] = $validation->getErrors();
}
$error_message = '';
if ($validation->getError('email')) {
$error_message = 'Email ya en uso o inválido';
} elseif ($validation->getError('password')) {
$error_message = 'La contraseña debe tener entre 8 y 20 caracteres';
} else {
$error_message = 'Error desconocido';
}
return view('pages/login', $data);
return $this->response->setStatusCode(400)->setJSON([
'text' => $error_message
]);
}
}
return $this->response->setStatusCode(400)->setJSON([
'text' => 'Solo se aceptan post request'
]);
}
}
\ No newline at end of file
......@@ -105,8 +105,8 @@
<h1>Recetas</h1>
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">HOME</a></li>
<li class="breadcrumb-item active">RECETASS</li>
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item active">Recetas</li>
</ol>
</nav>
</div><!-- End Page Title -->
......
......@@ -29,6 +29,8 @@
<div class="col-md-8">
<div class="container" id="container">
<div class="form-container sign-up-container">
<!-- FORMULARIO REGISTER -->
<form action=<?= base_url('/register'); ?> method="post" style="flex-direction: column; padding: 0 30px;">
<h1>Crear cuenta</h1>
<div class="social-container">
......@@ -40,9 +42,9 @@
src="<?= base_url("iconos/apple.ico") ?>" width="52" height="52"></a>
</div>
<span>o usa tu correo</span>
<input style="background-color: #eee;" class="form-control" name="username" type="text" placeholder="Nombre" />
<input style="background-color: #eee;" class="form-control" name="email" type="email" placeholder="Email" />
<input style="background-color: #eee;" class="form-control" name="password" type="password" id="password" placeholder="Contraseña" />
<input style="background-color: #eee;" id="username-register-form" class="form-control" name="username" type="text" placeholder="Nombre" />
<input style="background-color: #eee;" id="email-register-form" class="form-control" name="email" type="email" placeholder="Email" />
<input style="background-color: #eee;" id="password-register-form" class="form-control" name="password" type="password" id="password" placeholder="Contraseña" />
<span class="error">
<?= \Config\Services::validation()->listErrors(); ?>
......@@ -56,10 +58,14 @@
<?php endif; ?>
</span>
<span class="register-error">Error</span>
<button id="signup-button" type="submit">Registrarse</button>
</form>
</div>
<div class="form-container sign-in-container">
<!-- FORMULARIO LOGIN -->
<form action=<?= base_url('/login'); ?> method="post" style="flex-direction: column; padding: 0 30px;">
<h1>Iniciar Sesión</h1>
<div class="social-container">
......@@ -76,11 +82,7 @@
placeholder="Contraseña" />
<a href="#">¿Olvidaste tu contraseña?</a>
<div class="login-error">
<div class="alert-danger">
<p>Login incorrecto</p>
</div>
</div>
<span class="login-error">Credenciales incorrectas</span>
<button id="signin-button" type="submit">Iniciar Sesión</button>
</form>
......
......@@ -89,16 +89,19 @@ input {
width: 100%;
}
.login-error{
.login-error {
display: none;
background-color: #ff9999;
color: #ff0000;
border: 1px solid #ff0000;
padding: 0.3em 0.3em 0.3em 0.3em;
margin-bottom: 0.3em;
color: #d8000c;
font-size: 15px;
}
.register-error {
display: none;
color: #d8000c;
font-size: 15px;
}
.container {
background-color: #fff;
border-radius: 10px;
......
......@@ -50,3 +50,40 @@ $("#signin-button").on("click", function(e){
});
})
$("#signup-button").on("click", function(e){
e.preventDefault();
// Get form data
var formData = {
email: $('#email-register-form').val(),
password: $('#password-register-form').val(),
username: $('#username-register-form').val()
};
$.ajax({
type: 'POST',
url: '/registerAjax',
data: formData,
dataType: 'json',
success: function(response) {
// Handle success response
console.log(response);
window.location.assign('/home');
},
error: function(xhr, status, error) {
// Handle error response
var errorMessage = JSON.parse(xhr.responseText).text;
console.log("Error: " + errorMessage);
$('.register-error').text(errorMessage).fadeIn(1000, function() {
// Fade out the error message after 2 seconds
setTimeout(function() {
$('.register-error').fadeOut();
}, 2000);
});
}
});
})
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment