PDA

View Full Version : سوال: در مورد محدود کردن آی پی



رضا قربانی
دوشنبه 13 دی 1389, 03:39 صبح
سلام خدمت دوستان و اساتید بزرگوار بخـــــــش بزرگ پی اچ پی

یه خسته نباشید دوباره به همگی

ببینید یه توضیح کلی در مورد سوالم می دم که زیاد فکرتون رو مشغول نکنم تا به بچه های دیگه هم برسین:لبخند:

من یه فرم دارم که کاربر میاد و اطلاعات رو وارد بانک اطلاعاتی می کنه. شاید این کاربر 100 بار اطلاعات رو وارد بانک کنه و از این سوی من روی به اساتید آوردم

وقتی طرف پیامش رو ارسال کرد من آی پی طرف رو می گیرم و می خوام بعد از اولین ارسال نتونه تا 10 دقیقه چیزی ارسال کنه و بعد 10 دقیقه آی پی طرف آزاد شه .
آیا چنین چیزی بدون نیاز به بانک امکان پذیر هست یا خیر ؟
اگر هم هست که لطفا ما رو توی کدهای زیر راهنمایی کنید و بگید که چه بلایی سر این کدمون باید بیاریم:متفکر:

این کد زمانیه که اطلاعات وارد سایت می شه و فکر می کنم همین انقدر کد کافی باشه




if(!empty($name) and !empty($email)and !empty($subject) and !empty($text))
{
$link = mysql_connect($dbhost,$dbuser,$dbpass) ;
mysql_select_db($dbname,$link);
$ip = $_SERVER['REMOTE_ADDR'];

$pdate = get_jalali2();

$sql="INSERT INTO `tbl_contacts`
(`cid` ,`name` ,`email` ,`subject` ,`text` ,`pdate` ,`ip` ,`read`)
VALUES
(NULL , '$name', '$email', '$subject', '$text', '$pdate', '$ip', '0');";
$result = mysql_query($sql,$link) or die(mysql_error());

echo'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script> alert(" پيام شما با موفقيت ارسال شد.");</script>
<meta http-equiv="refresh" content="1;url=Ertebat C.php" />';




}

بازم ممنون از سایت و دوستان خوب :چشمک:

mohsen24000
دوشنبه 13 دی 1389, 08:57 صبح
دو راه به ذهن بنده میرسه:
اول اینکه یه فیلد به بانکت اضافه کنی که اونهم زمان ثبت اطلاعاته و هر وقت اطلاعات جدید میخواد وارد بشه اون رو چک کنه با زمان جاری و اگه از ده دقیقه اختلاف بیشتر شد اجازه اضافه کردن اطلاعات رو بده
دوم اینکه بعد از هر بار اضافه کردن اطلاعات یه کوکی با طول عمر ده دقیقه ای تولید بشه و قبل از اضافه کردن اطلاعات جدید وجود کوکی چک بشه و اگه کوکی وجود نداشت (اعتبارش تمام شده بود) اطلاعات جدید رو اضافه کنه
مطمئنا با تلفیق این روشها و روشهای ابداعی دیگه مشکلتون حل خواهد شد ان شاء الله

zednet
دوشنبه 13 دی 1389, 09:28 صبح
کدی که بالا نوشتی خیلی درهمه، بیشتر رووش کار کن.
برای ثبت IP و بررسی اون اولین کاری که باید انجام بدی اینکه یک Table جدید مثلا با نام ip_users ایجاد کنی.
بعد فیلدهای مورد نیاز را اضافه کن.
مثلا:

CREATE TABLE `TEST`.`ip_users` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`ip` VARCHAR( 23 ) NOT NULL ,
`time` DATE NOT NULL ,
PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;
حالا بررسی کن IP کاربری که الان فرم را ارسال کرده در فیلد ip در جدول ip_users ثبت شده یا نه. اگر که نبود که هیچ در غیراینصورت زمان ثبت IP رو بررسی کن اگر از اون بازه زمانی مد نظر شما هنوز نگذشته بود اطلاعاتی ثبت نشه.

-= موفق باشی =-

mtchabok
دوشنبه 13 دی 1389, 10:10 صبح
برای اینکار شما چندین راه دارید :
1- استفاده از کوکی
2- استافاده از سشن
3- استفاده از بانک اطلاعات
4- استفاده از همه

1- برای کوکی فقط کافیه که در هنگام ثبت شدن پیام ، کوکی رو روی مرورگر کاربر به صورت تایم دار ثبت کنید .
2- برای سشن می تونید که زمان انقضا محدودیت یا زمان ثبت پیام رو وارد کنید و به نسبت اون عمل کنید .
3- این روش رو که دوستمون گفتن .
4- در این روش میتونید هم در کوکی ، سشن و بانک اطلاعاتی ثبت کنید البته به گونه ای که باعث از بین رفتن منابع سیستمی نشه.

رضا قربانی
دوشنبه 13 دی 1389, 11:05 صبح
دوستان ممنون از راهنماییهاتون ولی من هنوز چیزی گیرم نیومد.
تئوریم زیاد خوب نیست ولی اگه عملی بگید بهتر می شه

من کد وارد شدن به بانکم رو که خیلی عالی و بدون نقص و بدون هیچ درهمی براتون گذاشتم می تونید بعد از دریافت آی پی ( ip $ ) این فرمایشات خودتون رو روش پیاده کنید و بفرستید تا یه کمکی به ما بشه

بازم ممنون از شما و منتظر راهنمایی هاتون هستیم:قلب: