PDA

View Full Version : جلوگیری از ذخیره مجدد اطلاعات



bps20590
چهارشنبه 18 اردیبهشت 1392, 12:16 عصر
من اطلاعات رو توی دیتابیسم ذخیره می کنم ولی هرگاه صفحه دوباره رفرش می کنم همون اطلاعات دوباره ذخیره میشه چطور میشه فهمید اگه صفحه در حالت درج هست دیگه کاری انجام نشه

lordofphp
چهارشنبه 18 اردیبهشت 1392, 14:11 عصر
به نام خدا
سلام خب میتونی عملیات تو یه بخش خاص انجام بدی مثلا


<?php $action=$_REQUEST['action']; if($action=="insert"){ --- } ?>
جای تیره ها عملیات بنویسید ! برای اجراهم لینک کنید به اونجا !
اگه بد بود ببخشید سریع گفتم

امیـرحسین
چهارشنبه 18 اردیبهشت 1392, 16:16 عصر
موقع نمایش فرم یه رشته‌ی تصادفی به عنوان کلید فرم تولید کنید هم توی فرم (input type=hidden) بذارید هم توی یه session مثلا. بعد کلید فرم‌های submit شده رو یه جایی (مث session دوباره) ذخیره کنید...
یعنی مثلا هر وقت فرمی submit میشه، اون کلیدش رو چک کنید که قبلا submit شده یا نه. اگه شده بود که هیچی. اگه نشده بود برنامه رو ادامه بدید و اون کلید رو به عنوان submit شده کنید.

موقع ساختن فرم:

$formKey = md5(time());
$_SESSION[ $formKey ] = false;
echo '<form method="POST">
....
<input type="submit" name="submit" value="Submit" />
<input type="hidden" name="form_key" value="' .$formKey. '" />
</form>
....';

موقع submit:

if (isset($_POST['submit'])) {
$formKey = $_POST['form_key'];
if (!isset($_SESSION[ $formKey ]) || $_SESSION[ $formKey ] === false) {
// INSERT ...
$_SESSION[ $formKey ] = true;
}
}