انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: rahmani در 12 خرداد 1393، 11:44 قظ
-
سلام
در يك سايت براي فروش نرم افزار form طراحي شده كه كاربر پس از پر كردن form و وارد كردن serial number يك شناسه كاربري براي فعال كردن نرم افزار دريافت مي كند هنگامي كه كاربر اولين بار form را پر مي كند بدون هيچ مشكلي فعال سازي انجام مي شود. اما هنگامي كه با استفاده از فشردن back به صفحه قبل باز مي گردد تا serial number ديگري وارد كند و شناسه و رمز ورود ديگري دريافت كند گويا فعالسازي دچار مشكل مي شود
چه بايد كرد
سپاسگزارم
-
متد فرم POST هست یا GET؟
من حدود یک ماهه که دارم بهطور جدی PHP کار میکنم؛ به نظر من مشکل از کد PHP نیست، در بعضی مرورگرها با فشردن کلید back محتوای کش شده نشون داده میشه و request جدیدی به سرور فرستاده نمیشه. اگر بتونی کاربر رو مجبور به ریفرش کنی، احتمالا مشکل حل میشه.
چیزایی که به ذهن من رسید:
- با یک کد جاوا اسکریپت صفحه رو ریلود کنید.
- در صورتی که معمول کاربران بیشتر از یک شماره سریال وارد میکنند، برنامه PHP رو طوری بنویسید که بعد از پردازش، دوباره فرم نمایش داده بشه.
- متد رو روی POST ست کنید تا وقتی کاربر back کرد، فرم expire شده باشه و مجبور بشه ریلود کنه.
-
میتونید از این روش استفاده کنید:
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
window.onload = function() {
if( $('#r').val() == '')
{
$('#r').val('1');
}
else
{
$('#r').val('');
location.reload(true);
}
};
window.onunload = function(){};
</script>
</head>
<body>
<h1>A</h1>
<form method="get" action="b.html">
<input type="text" value="" />
<input type="submit" value="send">
</form>
<input id="r" type="hidden" name="r" value="" />
</body>
</html>
-
- متد رو روی POST ست کنید تا وقتی کاربر back کرد، فرم expire شده باشه و مجبور بشه ریلود کنه.
سلام من از همان ابتدا از post استفاده كردم
-
مورد اول و دوم رو هم نگاه کردین؟!
-
مورد اول و دوم رو هم نگاه کردین؟!
سلام اره ممنون تلاش كردم با راهنمايي شما و جناب M!lad يك كارهايي با javascript كردم اما نتيجه نگرفتم
سپاس
-
اگه صفحه رو ریفرش کنی، فرم به درستی کار میکنه؟
-
میتونید از این روش استفاده کنید:
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
window.onload = function() {
if( $('#r').val() == '')
{
$('#r').val('1');
}
else
{
$('#r').val('');
location.reload(true);
}
};
window.onunload = function(){};
</script>
</head>
<body>
<h1>A</h1>
<form method="get" action="b.html">
<input type="text" value="" />
<input type="submit" value="send">
</form>
<input id="r" type="hidden" name="r" value="" />
</body>
</html>
سلام
من مي خواهم فقط در صورتي كه كاربر روي back كليك كند صفحه refresh شود اما اين طوري هميشه refresh مي شود دقيقا code شما را به كاربردم. بلافاصله پس از فعالسازي يك پيام نمايش داده مي شود و بعد هم كه ok را زدم صفحه refresh مي شود و اجازه نمي دهد كاربر متن پيام را ببيند
سپاسگزارم