2012-01-10 5 views
0

Ce script simple n'a pas besoin de base de données, les noms d'utilisateur et les mots de passe seront définis dans le script.
Comment puis-je créer le script pour définir une date pour chaque nom d'utilisateur et mot de passe afin qu'après expiration de la date, la possibilité de se connecter avec ces informations d'identification expire également?Créer une date limite pour la connexion en PHP Script

Comme ceci:

$LOGIN_INFORMATION = array( 
'you' => 'yourpassword' => '12-03-2012' 
'username2' => 'yourpassword2' => '12-05-2012' 
); 

Script Démo: http://demos.savasplace.com/password/

<?php 
################################################################## 
##   Sava's Place.com Password Protect     ## 
##  Visit http://savasplace.com for more scripts   ## 
################################################################## 
$LOGIN_INFORMATION = array(
    'sava' => 'sava', 
    'you' => 'yourpassword' 
); 

// Require username or not 
// If you want to use username and password login leave this true. 
// If you want only to request a password set it for false. 

define('USE_USERNAME', true); 

// To password protect your pages you need to include this file in them 
// To get the correct code for inclusion open password.php?code in your broswer 

if(isset($_GET['code'])) { 
    die('<center><font face="Verdana" size="2">Include following code into every page you would like to protect, at the very beginning (first line):<br><br><strong>&lt;?php include("' . __FILE__ . '"); ?&gt;</strong></center></font>'); 
} 
if(isset($_GET['logout'])) { 
    setcookie("verify", ''); // clear password; 
    die('<center><font face="Verdana" size="2">Logged out.</font></center>'); 
} 
if(!function_exists('showLoginPasswordProtect')) { 
function showLoginPasswordProtect($error_msg) { 
?> 
<!-- And this is the output --> 

<html> 
<head> 
<title>Login to access this page</title> 
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 
<style> 
* { 
font-family:Verdana; 
font-size:12px; 
} 
a { 
color: #000000; 
text-decoration: none; 
} 

a:hover { 
color: red; 
text-decoration: none; 
} 

input { 
border: 1px solid black; 
background-color: #FFFFFF; 
} 
.bodyform { 
border-color: #000000; 
border-style:solid; 
border-width: 3px; 
width:400px; 
} 
.title { 
color: #FFFFFF; 
background: #000000; 
padding: 5px; 

} 
</style> 
</head> 
<body> 
<center><br /><br /> 
<div class="bodyform" align="center"> 
<form method="post"> 
<div class="title"> 
<strong>Access restricted - Login Below:</strong> 
</div> 
<div style="padding-right:10px;padding-left:10px;"> 
<font color="red"><strong><?php echo $error_msg; ?><strong></font><br /><br /> 
<?php if (USE_USERNAME) echo '<table> 
<tr> 
<td align="left">Login:</td> 
<td align="right"><input type="input" name="access_login" /></td> 
</tr> 
<tr> 
<td>Password:</td>'; ?> 
<td><input type="password" name="access_password" /></td> 
</tr> 
</table> 
<p></p> 
<input type="submit" name="Submit" value="Submit" /> 
</form> 
</div> 
</div> 
<br /> 
Powered by <a href="http://savasplace.com" target="_blank">Sava's Place Password Protect Script</a> 
</center> 
</body> 
</html> 
<?php 
    die(); 
} 
} 
if (isset($_POST['access_password'])) { 
    $login = isset($_POST['access_login']) ? $_POST['access_login'] : ''; 
    $pass = $_POST['access_password']; 
    if (!USE_USERNAME && !in_array($pass, $LOGIN_INFORMATION) 
    || (USE_USERNAME && (!array_key_exists($login, $LOGIN_INFORMATION) || $LOGIN_INFORMATION[$login] != $pass)) 
) { 
    showLoginPasswordProtect("Incorrect password."); 
    } 
    else { 
    setcookie("verify", md5($pass)); 
    unset($_POST['access_login']); 
    unset($_POST['access_password']); 
    unset($_POST['Submit']); 
    } 

} 
else { 
    if (!isset($_COOKIE['verify'])) { 
    showLoginPasswordProtect(""); 
    } 
    $found = false; 
    foreach($LOGIN_INFORMATION as $kay=>$val) { 
    if ($_COOKIE['verify'] == md5($val)) { 
     $found = true; 
     break; 
    } 
    } 
    if (!$found) { 
    showLoginPasswordProtect(""); 
    } 
} 
?> 
+4

'' tags? Sérieusement? Ils sont obsolètes pour ** ans **! – ThiefMaster

Répondre

0

Vous pouvez utiliser strtotime pour convertir votre date à la valeur numérique du temps et comparer pour vous les données actuelles également converties en un valeur numérique et si elle est supérieure à celle que vous avez spécifiée, renvoyez false lors de la connexion.

$LOGIN_INFORMATION = array( 
    'you' => array('pass' => 'yourpassword', 'date' => '12-03-2012'), 
    'username2' => array('pass' => 'yourpassword2', 'date' => '12-05-2012') 
); 


if(strtotime($LOGIN_INFORMATION['you']['date']) > time()) 
{ 
    exit(); 
    // show error message or anything 
} 
else 
{ 
    // login or whatever you would like to happen here in case the date did not expired 
    // check password, etc 
} 

php function strtotime

php function time

+0

comment puis-je inclure ** strtotime if command ** dans le script? Quelle partie doit être mise cette commande? – Amirreza

+0

@Amirreza vous venez d'écrire l'exemple de code que je vous ai donné ci-dessus dans votre fichier .php au début ou où vous faites la connexion, si c'est quelque chose que vous connaissez. Probablement le mieux est de le mettre après '$ pass = $ _POST ['access_password']; ', mais qu'est-ce que je sais ?. Peut-être que vous essayez de gérer au moins cela, si quelque chose vous déroute. – khael

+0

Comment puis-je corriger ce code pour mettre dans le script principal? ** if (strtotime ($ LOGIN_INFORMATION ['vous'] ['date'])> time()) ** – Amirreza

0

Vous pouvez changer setcookie à:

setcookie("verify", md5($pass), time()+3600);

et le cookie expirerait après 1 heure et l'utilisateur ne serait plus connecté Si vous vouliez que le cookie/login dure plus longtemps, vous devez changer l'exp ire paramètre à un temps plus long.