je viens de finir un script pour la secu que je trouve interessant alors autant qu'il sert a tout ceux qui on ont besoin .
il mixe cookies+sessions pour essayer d'avoir une bonne sécu ... il est possible de lui rajouter un module mysql pour encore renforcer la sécu ..
--- PAGE FORMULAIRE (demande log+pass -> verif) ---
<?
// -->> a copier dans : "form.php"
ob_start();
if( $submit=="Validation" ){
// mettre ici une requete ou autre pour recup les infos login
$veriflog="a"; $verifpass="b";
if( $log==$veriflog && $pass==$verifpass ){
// creation session, ou session mysql ou ..... (ici : cookie+session pour + de sécurité)
session_start();
session_register("ip" );$ip=$REMOTE_ADDR;
session_register("time" );$time=time();
$id=session_id();setcookie("id",$id);
//
header("location: p1.php" );
echo "<script language='JavaScript'>window.location='p1.php'</script>";
}else{
// renvoit sur le form
session_destroy();
setcookie("id" );
header("location: form.php" );
echo "<script language='JavaScript'>window.location='form.php'</script>";
}
}
?>
<form method=post action="form.php">
log<input type="text" name="log">
<br>
pass<input type="text" name="pass">
<br><br>
<input type="submit" value="Validation" name="submit">
</form>
<?ob_end_flush()?>
--- VERIFICATION (protege une page) ---
<?
// -->> a copier dans : "verif.php"
// verif a mettre dans TOUTES les pages a securiser ...
session_start();
if( $HTTP_COOKIE_VARS['id']==session_id() && $ip==$REMOTE_ADDR ){
// pour les infos c'est bon !
if( abs(time()-$time>5) ){
// renvoit sur le formulaire si le temps est depassé ..
session_destroy();
setcookie("ip" );
header("location: form.php" );
echo "<script language='JavaScript'>window.location='form.php'</script>";
}else{
// rajoute nouveau temps
session_register("time" );$time=time();
}
}else{
// renvoit sur le formulaire
session_destroy();
setcookie("ip" );
header("location: form.php" );
echo "<script language='JavaScript'>window.location=
'form.php'</script>";
}
?>
--- EXEMPLE (page a protéger) ---
<?
// a copier dans : "p1.php"
include("verif.php" );
?>
page 1
<br><br><br>cookie :<br>
<?
print_r($HTTP_COOKIE_VARS);
?>
<br><br><br>
<a href="p2.php">RDV a la page 2</a>
------------------
------------------
Le PHP doit avoir les sessions d'activées et l'option "enable−trans−sid" doit etre a 1 sinon va falloir que vous passiez manuellement l'ID de session de page en page ce qui arrive souvent sur les hebergeurs gratuit sans compter que si les cookies du client ne sont pas activés vous aurez le meme probleme .
la version doit etre superieur a php 4.03 (4.04??) pour pouvoir utiliser les ob_start et C° ..
[edtdd]--Message édité par potiron--[/edtdd]