PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تعریف محدودیت زمانی برای کاربران عضو



amirreza22
January 8th, 2012, 05:36
این اسکریپت ساده نیازی به دیتابیس نداره و Username و Passwordها داخل خود اسکریپت تعریف می‌شه.
چطور می‌تونم در این اسکریپت برای هر کاربر علاوه بر Username و Password، یک تاریخ انقضاء هم مشخص کنم تا کاربر بعد از اون تاریخ نتونه وارد بشه؟


چیزی شبیه این:



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


آدرس دموی اسکریپت: http://demos.savasplace.com/password

یکی از کاربران سایت stackoverflow.com (http://stackoverflow.com/questions/8803925/create-limit-date-for-login-in-php-script) بهم گفت از طریق این کد می‌تونم به هدفم برسم، اما نمی‌دونم چطور در اسکریپت اصلی جایگزین کنم.
گفته :


شما با استفاده از strtotime می‌تونید تاریخ رو به زمان تبدیل کنی و مقایسه داده‌های فعلی تبدیل‌شده به یک مقدار عددی و کنترل این‌که اجازۀ Login داده بشه یا نه رو انجام بدی.

کدی که داده:


$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 (http://www.php.net/manual/en/function.strtotime.php)
php function time (http://www.php.net/manual/en/function.time.php)


و این هم سورس اصلی که فقط Username و Password رو کنترل می‌کنه:



<?php
################################################## ################
## Sava's Place.com Password Protect ##
## Visit http://savasplace.com for more scripts ##
################################################## ################
$LOGIN_INFORMATION = array(
'user1' => '123',
'user2' => '444',
'user3' => '222',
'user4' => '5555',
);


// 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("");
}
}
?>