PDA

View Full Version : درخواست کدنویسی PHP



amirreza22
جمعه 23 دی 1390, 20:15 عصر
من از یه اسکریپت استفاده می‌کنم برای قسمت ورود کاربران که داخل خود اسکریپت Username و Passwordها وارد می‌شه.
می‌خوام علاوه بر چک کردن Username و Password، به کاربرها محدودیت ورود + تاریخ انقضاء هم بدم.
فرضاً کاربر ali فقط تا تاریخ 25-03-2012 بتونه در سایت لاگین کنه و بعد از اون نتونه.
و این‌که هر کاربر در روز فقط با 3 تا IP مختلف حق لاگین کردن داشته باشه.

سؤالم رو چند بار تو چند تا سایت پرسیدم ، اما به جواب کاملی نرسیدم.

http://goo.gl/L0i1y

http://stackoverflow.com/questions/8803925/create-limit-date-for-login-in-php-script

اگر کسی می‌تونه این 2تا ویژگی رو به اسکریپت موردنظر اضافه کنه همین‌جا راهنمایی کنه یا اگه هزینه‌ای می‌گیره انجام بده ، پیغام بده.

رضا قربانی
جمعه 23 دی 1390, 22:33 عصر
چیز ساده ایه.

نام اسکریپتت چیه ؟ یا اسکریپتی که واستون نوشتن ؟

تا قیمت رو بچه ها اعلام کنن :لبخند:

amirreza22
جمعه 23 دی 1390, 23:44 عصر
چیز ساده ایه.

نام اسکریپتت چیه ؟ یا اسکریپتی که واستون نوشتن ؟

تا قیمت رو بچه ها اعلام کنن :لبخند:

والا تا حالا به هرکی گفتم نتونسته حتی قسمت اول‌شو ردیف کنه.
این اسکریپت ساده (http://savasplace.com/wp-content/plugins/downloads-manager/upload/password.tgz) نیازی به دیتابیس نداره و Username و Passwordها داخل خود اسکریپت تعریف می‌شه.

چیزی شبیه این می‌خوام:


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

آدرس دموی اسکریپت: http://demos.savasplace.com/password (http://demos.savasplace.com/password/)
یکی از کاربران سایت stackoverflow.com (http://stackoverflow.com/) بهم گفت از طریق این کد می‌تونم به هدفم برسم، اما نمی‌دونم چطور در اسکریپت اصلی جایگزین کنم.

کدی که داده:



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

رضا قربانی
شنبه 24 دی 1390, 00:00 صبح
با کوکی می تونید ولی نمی دونم تاریخ تا کی دووم داره و ...
خب اگر زمان رو بخواهید برای کاربر ست کنید بهترین روش اینه که با بانک در ارتباط باشید :
یعنی وقتی کاربر ثبت نام می کنه تاریخ رو بگیره و یک تاریخ برای انقضا ثبت کنه . موقعی که به اون تاریخ رسید و ....

حالا حتما می خوایید از این اسکریپت استفاده کنید ؟

بچه های خوبی توی این قسمت از انجمن هستند که پس از دیدن تاپیک بهتون جواب می دن و نیاز به پیام زدن نیست و فقط یه کم تامل.

موفق باشید دوست من

amirreza22
شنبه 24 دی 1390, 00:18 صبح
با کوکی می تونید ولی نمی دونم تاریخ تا کی دووم داره و ...
خب اگر زمان رو بخواهید برای کاربر ست کنید بهترین روش اینه که با بانک در ارتباط باشید :
یعنی وقتی کاربر ثبت نام می کنه تاریخ رو بگیره و یک تاریخ برای انقضا ثبت کنه . موقعی که به اون تاریخ رسید و ....
مسأله اینه که قرار نیست کاربر ثبت‌نام کنه، من فقط می‌خوام یه Username و Password به کاربر بدم که تا یه مدت خاص بتونه برای مشاهده صفحۀ خاصی از سایت لاگین کنه.



حالا حتما می خوایید از این اسکریپت استفاده کنید ؟
خیلی دنبال اسکریپت User Management گشتم که باهاش بشه برای کاربر تاریخ انقضاء عضویت تعیین کرد اما نتیجه‌ای نداشت.



بچه های خوبی توی این قسمت از انجمن هستند که پس از دیدن تاپیک بهتون جواب می دن و نیاز به پیام زدن نیست و فقط یه کم تامل.

بله، من تاپیک زدم (http://barnamenevis.org/showthread.php?322142-%D8%AA%D8%B9%D8%B1%DB%8C%D9%81-%D9%85%D8%AD%D8%AF%D9%88%D8%AF%DB%8C%D8%AA-%D8%B2%D9%85%D8%A7%D9%86%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%A7%D9%86-%D8%B9%D8%B6%D9%88&p=1413266#post1413266) قبل از این ولی کسی جواب نداد، در سایتم خیلی گشتم قسمتی رو پیدا کنم حداقل با پرداخت هزینه کارم راه بیفته اما پیدا نکردم.


شما پیشنهادتون چیه؟

djsaeedkhan
شنبه 24 دی 1390, 00:45 صبح
با سلام
دوست عزیز همچین چیزی رو طراحی کردن نیاز به اسکریپت نداره
شما به غیر از تمام فیلد هایی که در دیتابیس داری یه فیلد تاریخ رو هم در نطر میگیری
مثلا سه تا متغیر میگیری یکی روز ماه سال (خواستی هم کمتر)
بعد با تابع time اونا رومقدار دهی می کنی و هر چی خواستی بهش اضافه می کنی و در دیتابیس ذخیره می کنی
بعد وقتی لوگین کرد با همین کار ها تاریخ ها رو با هم مقایسه کن اگر کمتر یا بیشتر بود کد هاتو بر حسب اون ها قرار بده

ایشالا که متوجه شدی
اگر نگرفتی بگو یه کد مثال بزنم (البته دقیق بگو می خوای چه کنی)

amirreza22
شنبه 24 دی 1390, 01:34 صبح
با سلام
دوست عزیز همچین چیزی رو طراحی کردن نیاز به اسکریپت نداره
شما به غیر از تمام فیلد هایی که در دیتابیس داری یه فیلد تاریخ رو هم در نطر میگیری
مثلا سه تا متغیر میگیری یکی روز ماه سال (خواستی هم کمتر)
بعد با تابع time اونا رومقدار دهی می کنی و هر چی خواستی بهش اضافه می کنی و در دیتابیس ذخیره می کنی
بعد وقتی لوگین کرد با همین کار ها تاریخ ها رو با هم مقایسه کن اگر کمتر یا بیشتر بود کد هاتو بر حسب اون ها قرار بده

بله البته این اسکریپت از دیتابیس استفاده نمی‌کنه، Username و Passwordها داخل خودش قرار می‌گیره.
منم می‌خوام یک متغییر دیگه بهش اضافه کنم که با توجه به تاریخ روز،اون تاریخی که دادیم رو چک کنه و اگر گذشته بود پیغام Expired بده.
ممنون می‌شم اگر بگید چطور تابع time رو در اسکریپت بکار ببرم، تا علاوه بر کنترل username و password ، به تاریخ هم جهت ورود کاربر دقت بشه.

djsaeedkhan
شنبه 24 دی 1390, 09:22 صبح
بله البته این اسکریپت از دیتابیس استفاده نمی‌کنه، Username و Passwordها داخل خودش قرار می‌گیره.
منم می‌خوام یک متغییر دیگه بهش اضافه کنم که با توجه به تاریخ روز،اون تاریخی که دادیم رو چک کنه و اگر گذشته بود پیغام Expired بده.
ممنون می‌شم اگر بگید چطور تابع time رو در اسکریپت بکار ببرم، تا علاوه بر کنترل username و password ، به تاریخ هم جهت ورود کاربر دقت بشه.

سلام
نمیشه که از دیتابیس استفاده نکنه. اگر نخوای از دیتابیس استفاده کنی که یوزرنیم پسورد رو از کجا بخونه
اسکریپتی که من دیدم یه روش دلخواه برای این کار هست
به قولی راه رسیدن به خدا به اندازه تعداد انسان های روی زمینه

amirreza22
شنبه 24 دی 1390, 13:54 عصر
سلام
نمیشه که از دیتابیس استفاده نکنه. اگر نخوای از دیتابیس استفاده کنی که یوزرنیم پسورد رو از کجا بخونه


چطور در دیتابیس Username ، Password ، تاریخ انقضاء ، محدودیت تعداد ورود بر حسب IP تعیین کنیم تا بشه در این اسکریپت به‌کار برد؟

H:Shojaei
سه شنبه 27 دی 1390, 02:16 صبح
چطور در دیتابیس Username ، Password ، تاریخ انقضاء ، محدودیت تعداد ورود بر حسب IP تعیین کنیم تا بشه در این اسکریپت به‌کار برد؟
سلام دوست عزیز شما اگه اینها رو از db فراخوانی کنی دیگه کاری نداری باید بگی تا زمانی که به زمان یا تعداد مجاز دسترسی نرسیده کوکی که قبلا براش ست کردی رو نگه داره در غیر این صورت
کوکی رو حذف کنه
اول سایتت هم میگی اگه کوکی ست بود سایت رو نمایش بده در غیر این صورت پیغام بده