Untitled Document
//Implementare un codigo ya hecho por mi para el manejo de sesiones pero pueden usar el que le placas
//el codigo importande estara marcado entre [inicio] y [fin]
if(isset($data[user]) || isset($data[pass]))
{
if(empty($data[user]) || empty($data[pass]))
{
$smarty->assign("ERROR", $lang['login'][5]);
}
else
{
$query_ = sql('select * from user where user="'.$data[user].'" and password="'.$data[pass].'"');
if(isset($query_[0][user]) && isset($query_[0][password]))
{
$result_user = $query_[0][user];
$result_password = $query_[0][password];
}
if(($result_password === $data[pass]) && (strtoupper($result_user) === strtoupper($data[user])))
{
$_SESSION['session_id'] = $query_[0][id];
$_SESSION['session_type'] = $query_[0][type];
$_SESSION['session_user_name'] = $query_[0][user];
$_SESSION['session_empre'] = $query_[0][idempre];
$fecha = date("Y-m-d H:i:s");
$query_1 = sql('update user set date1 = date2 where id='.$query_[0][id].'');
$query_2 = sql('update user set date2 = "'.$fecha.'" where id='.$query_[0][id].'');
if($query_[0][type] == 2)
{
//[inicio]
//aqui haremos una seleccion a la base de datos, yo uso mysql la cual me proporciona una funcion
//esta funcion es la que uso para saber que diferencia de dias hay
//me explico mejor, tengo un sistema que a los usuarios se le asigna acceso al sistema por dias
//estos dias estaran almacenados en la base de datos
//usaremos la funcion DATE_ADD que es de mysql, esta funciona de la siguiente manera
//primero se le indica la fecha o el campo que tenga la fecha
//luego se le indica la cantidad de dias que quieren que haiga de intervalo
//ejemplo: SELECT DATE_ADD('2007-01-03', INTERVAL 1 DAY)
//ahora bien esto me va a imprimir la fecha actual mas 1 dia, se le puede indicar cualquier cantidad de dias
//hasta meses o años, y tambien incluye el tiempo
//esto para que?, bueno cuando se registra el usuario se almacena la fecha de registro y los dias que se le asignan
//asi uno ya con esta funcion sabe a que fecha vence el acceso del usuario
$query_3 = sql('SELECT DATE_ADD(`date_start`, INTERVAL `days` DAY) as "time", days, date_start from time where iduser='.$query_[0][id].'');
//ya sabemos como conseguir la fecha de caducacion del acceso
//ahora veamos cuanto dias le quedan de acceso
//usaremos la funcion DATEDIFF de mysql
//es algo simple igual que DATE_ADD
//esta funcion es para saber que diferencia de dias hay entre dos fechas
//osea que me dira cuantos dias hay entre una fecha y otra, algo simple y claro
//ahora como funciona?, primero indicamos la fecha mas vieja o se dira la mas alta
//por que la mas vieja o la mas alta, esto se debe a que si se indica la menor primero el valor sera negativo
//ejemplo: DATEDIFF('2007-01-05', '2007-01-03');
//el resultado de esta sera 2, por que hay una diferencia de 2 dias entre las fechas
//ejemplo: DATEDIFF('2007-01-03', '2007-01-05');
//bueno el resultado sera el mismo pero negativo osea -2
//debido a que la primera fecha es mas antigua que la segunda
//por esto recomiendo que usen la mas antigua en la segunda opcion
//aqui ya habiamos sacado la fecha de vencimiento, esta hira en la primera parte de la funcion
//por que es la mas alta y asi el resultado no sera negativo
//en la segunda parte la fecha actual
//asi sabremos los dias que le quedan al usuario
$query_4 = sql("SELECT DATEDIFF('".$query_3[0][time]."', '".date('Y-m-d')."') as 'days'");
//ahora vamos a ver si los dias son mayor que 0
//llegara un momemento en que la fecha actual sobre pasara la fecha actual
//no habra problema con eso ya que el numero que devolvera la funcion sera negativo
//y cualquier numero que sea negativo es menor que 0
if($query_4[0][days] > 0)
{ $_SESSION['session_time'] = $query_4[0][days]; }
else
{ $_SESSION['session_time'] = 'FULL'; }
//ya despudes de comprobar sera de tu antojo el manejo del usuario
//hasta aqui xirtam
//se despide..
//[fin]
}
header('Location: index.php');
}
else
{
$smarty->assign("ERROR", $lang['login'][6]);
}
}
}