tien voila un script que g fait
bon y a d truc en finnois vu que c le pays ou je bosse mais tu dois pouvoir comprendre
< ?php
- ###############################################
- ###########################
- login.php version 2
- 03.04.2004
- ###############################################
- ###########################
session_start();
require " functions.php";
$db_conn = avaayhteys();
/ /jos käyttäjä on yrittänyt logata sisään
if ( $username && $password)
{
/ /muodostetaan ja suoritetaan SQL-kysely
$query = " select * from users where username=´$username´ and password=password(´$password´)";
$result = mysql_query($query, $db_conn);
/ /tarkistetaan SQL-kyselyn tulos
if ( mysql_num_rows($result) > 0 )
{
$tiedosto = @mysql_fetch_array($result);
if ( !$tiedosto)
{
$error=1;//if tiedosto not set, some error occured while fetching the result!
session_register(´error´);
$self=$PHP_SELF."/../?locator=members";
header("Location: " .$self);
exit;
}
/ /haetaan tiedot viime käynnistä
/ /tietokannassa tieto on ´unix´-formaatissa
$lastlogin=$tiedosto[´started´];
$lastlogin=$lastlogin-$server_clock_dif_from_CET; / /to the CET central europeen time
/ /talletetaan käyttäjä nimi istuntomuuttujaan
$last_login=$tiedosto[´started´];
session_register("last_login");
/ /kirjautuiko ulos edellisesllä kerralla?
$did_log_out=$tiedosto[´stopped´];
if ( $did_log_out==´logged in?´)
{
$logout = 1;
$error = 16;
session_register("error");
}
/ /talletetaan käyttäjä nimi istuntomuuttujaan
$henk_nimi=$tiedosto[´firstName´]." " .$tiedosto[´lastName´];
session_register("henk_nimi");
/ /talletetaan käyttäjätunnus istuntomuuttujaan
$user_name=$username;
session_register("user_name");
/ /talletetaan istuntoon käyttäjäntaso
$rank = $tiedosto[´rank´];
session_register("rank");
/ /muodostetaan md5-koodattu istunto-muuttuja
$valid_user = $tiedosto[0] . $tiedosto[1] . $REMOTE_ADDR . $HTTP_USER_AGENT;
$valid_user = md5($valid_user);
session_register("valid_user");
/ /sisäänkirjautumisaika tietokantaan=login time
$start_time = time();
$update_user = " update users set session = ´$valid_user´, started = ´$start_time´,
stopped=´logged in?´ where username=´$username´";
mysql_query($update_user, $db_conn);
if ( session_is_registered("password"))
{
session_unregister("password");
$lastlogin="new";
}
/ /at this phase all the necessary queries has been made succesfully(hope so)
/ /and user can be redirected by headers to the members area.
/ /or if $error is set back to login page with some error message
$self=$PHP_SELF."/../?locator=members&=".$last
login."&=".$logout;
header("Location: " .$self);
exit;
}
else / /Missed username or password!
{
if ( $HTTP_GET_VARS[´HTTP_X_FORWARDED_FOR´])
{
header("Location: $SITE_ADDRESS");
exit;
}
if($HTTP_X_FORWARDED_FOR) $IP=$HTTP_X_FORWARDED_FOR;
else $IP=$REMOTE_ADDR;
$when=time();
$query="insert into access_denied ( wrong_username, IP, time_when)
values ( ´$username´, ´$IP´, ´$when´)";
mysql_query($query, $db_conn);
/ /check if user have tried to log in with company username & pwd combination
global $REGISTRATION;
$oh_no=0;
/ /check the usrname and pwd
foreach($REGISTRATION as $key=>$tmp)
{
if($key==$username && $tmp==$password)
{
$oh_no=1;
}
if ( $oh_no) break;
}
if ( $oh_no)
{
$self=$PHP_SELF."/../?locator=members&=1
";
}
else
{
$error=2;
session_register(´error´);
$self=$PHP_SELF."/../?locator=members";
}
header("Location: " .$self);
exit;
}
}
else / /Password or username not set!
{
$error=3;
session_register(´error´);
$self=$PHP_SELF."/../?locator=members";
header("Location: " .$self);
exit;
}
? >