Para acceder con usuario y contrase?a necesito que busque en un rango de direcciones IP que tengo asignadas a los grupos, recorro el array que es:
Array ( [0] => 192.168.1.208 [1] => 192.168.0.100 [2] => 192.168.0.200 [3] => 192.168.0.300 [4] => 127.0.0.1 ) Ip actual–>192.168.0.100 / IP -->192.168.1.208.
El problema es que aunque est? esa IP siempre me d? la primera IP, y lo que quiero es que si esta de acceso y si no que avise.
Os paso el ejemplo que tengo.
Muchas gracias por vuestra ayuda.
$slogin = sc_sql_injection({login});
$spswd = sc_sql_injection(md5({pswd}));
$sql = "SELECT
priv_admin,
active,
name,
email
FROM sec_users
WHERE login = $slogin
AND pswd = ".$spswd."";
sc_lookup(rs, $sql);
if(count({rs}) == 0)
{
sc_log_add('login Fail', {lang_login_fail} . {login});
;
sc_error_message({lang_error_login});
}
else if({rs[0][1]} == 'Y') //En caso de que sean correctos los datos de login
{
/*
* Comprobaremos que se conecten los usuarios de los diferentes grupos
* unicamente desde su espacio de trabajo, utilizando las Ips.
*/
//Primeramente obtenemos las ips asignadas a la seccion de usuario.
$sqlIps = "SELECT
sec_groups.ips
FROM
sec_groups INNER JOIN sec_users_groups ON sec_groups.group_id = sec_users_groups.group_id
WHERE sec_users_groups.login= ".$slogin."";
sc_lookup(ips, $sqlIps);
if(count({ips}) > 0){ //En caso de que tenga Ips asignadas...
print_r(explode(' / ',{ips[0][0]}));
$porciones = explode(" / ", {ips[0][0]});
$Ips_dif= count($porciones);
for($i=0; $i<$Ips_dif; $i++){
$IP = $porciones[$i];
$ip_actual = $_SERVER['REMOTE_ADDR'];
echo "Ip actual-->".$ip_actual." / IP -->".$IP;
if($ip_actual == $IP){
$usr_login = {login};
$usr_priv_admin = ({rs[0][0]} == 'Y') ? TRUE : FALSE;
$usr_name = {rs[0][2]};
$usr_email = {rs[0][3]};
sc_set_global($usr_login);
sc_set_global($usr_priv_admin);
sc_set_global($usr_name);
sc_set_global($usr_email);
}else{
sc_error_message("Acceo restringido desde esta IP.");
sc_error_exit();
}
}
}
else{
$usr_login = {login};
$usr_priv_admin = ({rs[0][0]} == 'Y') ? TRUE : FALSE;
$usr_name = {rs[0][2]};
$usr_email = {rs[0][3]};
sc_set_global($usr_login);
sc_set_global($usr_priv_admin);
sc_set_global($usr_name);
sc_set_global($usr_email);
}
}
else
{
sc_error_message({lang_error_not_active});
sc_error_exit();
}