De ante mano les deseo muchas bendiciones en este nuevo año. quiero solicitar su ayuda quien halla realizado alguna solución con lo siguiente.
Estoy subiendo un pequeño proyecto realizado en PHP en estructura MCV. tengo los siguientes escenarios.
1. En modo local desde el servidor XAMP todo funciona de manera correcta con las siguiente estructura
a. Achivo LoginController.php esta ubicado en la dirección de la raíz de la carpeta principal con el nombre AppSistema lo que quiere decir que locamente accedo de esta manera http://localhost/AppSistema.
b. El archivo ControllerLogin.php esta en la ubicación Developer/Controller
c. El Archivo Login.php quien ejecuta los métodos esta ubicado en la ruta Developer/Model
d. Las funciones de Javascritp estan ubicadas en el archivo login.php que es donde se captura la información de entrada login y password.
e. En la raiz de la carpeta principal hay un archivo llamado .Httaccess para el control de las url amigables.
A continuación menciono los fragmento de código de cada archivo.
EL problema en cuestion es cuando lo subo a un servidor web en la nube, no encuentra la url que que esta asociada al parámetro ajax por lo tanto no hay conexión a la bdd
Código PHP:
<?php
session_start();
require($_SERVER['DOCUMENT_ROOT'].'/AppSistema /'. 'developer/Models/Login.php');
require_once ($_SERVER['DOCUMENT_ROOT'].'/AppSistema /'.'/developer/Config/PDOConn.php');
$l = new Login();
$db = new db();
if(isset($_GET['case'])){ $case=$_GET['case']; }
if(isset($_POST['LoginUsuario'])){ $usuario = trim($_POST['LoginUsuario']);}
if(isset($_POST['LoginPassword'])){ $password = strtolower(trim($_POST['LoginPassword']));}
switch ($case) {
$row1 = $l->Iniciarsesion($usuario);
if($row1 != ''){
if($row1['password']==sha1($password)){
if($row1['estado']=='on'){
if($row1['email_confirmado']==TRUE){
$_SESSION['SystemCenter'] =true;
$_SESSION['IN_codigo_usuCA'] =$row1['codigo_usu'];
$_SESSION['IN_usuario'] =$row1['usuario'];
$_SESSION['IN_email'] =$row1['email'];
$_SESSION['IN_codperfil'] =$row1['codigo_perfil'];
$_SESSION['IN_nombre_perfil'] =$row1['nombre_perfil'];
$_SESSION['IN_foto'] =$row1['img_usuario'];
$_SESSION['IN_nombre'] =$row1['email'];
$_SESSION['IN_codrol'] =$row1['codigo_rol'];
$_SESSION['IN_nombre_rol'] =$row1['nombre_rol'];
$_SESSION['server'] =$server;
$_SESSION['nombres'] =$row1['nombres_usuario'];
$json=json_encode(array("success"=>true,
'mensaje'=>"Bienvenido!"));
}else{
$json=json_encode(array("success"=>false,
'mensaje' => "Error: Debe confirmar su correo electrónico."));
}
}else{
$json=json_encode(array("success"=>false,
'mensaje' => "Error: Usuario deshabilitado"));
}
}else{
$json=json_encode(array("success"=>false,
'mensaje' => "Error: Contraseña no coinciden"));
}
}
}
}
Código PHP:
<?php
require($_SERVER['DOCUMENT_ROOT'].'/AppSistema /'. 'developer/Config/PDOConn.php');
class Login extends db
{
public function Iniciarsesion($usuario){
$select = "SELECT codigo_usu,
usuario,
password,
estado,
email,
estado,
codigo_perfil,
nombre_perfil,
nivel,
codigo_rol,
nombre_rol,
nombres_usuario,
img_usuario,
email_confirmado,
fecha_nacimiento_usuario FROM usuarios us
INNER JOIN perfiles pf ON pf.codigo_perfil = us.codperfil_fk
INNER JOIN roles ro ON ro.codigo_rol = pf.codrol_fk
WHERE us.email = :email";
$params = array(':email' => $usuario);
$res = $this->row($select,$params);
return $res;
return $res;
}
}
Código HTML:
<div class="auth-screen"> <div class="overlay"> <div class="login"> <div style="width:100%"> <!-- <img class="logo" src="assets/images/logosiigalogin.png"> --> </div> <form class="px-4 py-3" id="frmLogin"> <div class="form-group"> <label for="txtUsuario">Identificación</label> <input type="email" class="form-control" id="LoginUsuario" name="LoginUsuario" placeholder="correo electrónico"> </div> <div class="form-group"> <label for="txtPassword">Contraseña</label> <input type="password" class="form-control" id="LoginPassword" name="LoginPassword" placeholder="Contraseña"> </div> <div class="form-group"> <div class="form-check"> <input type="checkbox" class="form-check-input" id="dropdownCheck"> <label class="form-check-label" for="dropdownCheck"> Recuerdame </label> </div> </div> <button type="submit" class="btn btn-primary">Iniciar sesion</button> </form> <div class="dropdown-divider"> </div> <a href="#" onclick="fmodalCambiarPass();" class="forgot-password underline" >¿Olvidó su contraseña?</a> </div> </div> </div>
Código HTML:
<script> $("#frmLogin").submit(function(event) { event.preventDefault(); var LoginUsuario = $("#LoginUsuario").val(); var LoginPassword = $("#LoginPassword").val(); if ($.trim(LoginUsuario) == '') { toastr.error('Por favor, ingrese Usuario, correo electronico'); $("#LoginUsuario").focus(); } else if ($.trim(LoginPassword) == '') { toastr.error('Por favor, ingrese Contraseña.'); $("#LoginPassword").focus(); } else { $.ajax({ url: "Lopersa/Login/iniciarsesion", type: "POST", data: {'LoginUsuario': LoginUsuario,'LoginPassword': LoginPassword }, dataType: "JSON", success: function(json) { if (json.success == true) { toastr.success("Logueado exitosamente!"); window.location = './dashboard'; }else{ toastr.error(json.mensaje); } } }); } }); // fin login </script>
Código HTML:
RewriteRule ^Lopersa/Usuarios/(\w+)/?$ developer/Controller/usuariosController.php?case=$1 [nc,qsa] Options All -Indexes