31-01-1401، 10:34 ب.ظ
سلام وقت بخیر دوستان. من یک فرم ثبت نام در سایتم دارم که بعد از ثبت اطلاعات وقتی که صفحه ریلود (F5) میشود دوباره همان اطلاعات میخواد به مرورگر فرستاده شود. چه کاری باید انجام شود که با ریلود کردن صفحه این عمل صورت نگیرد؟؟
<?php session_start(); $token = sha1(rand(1, 1000)); $_SESSION['token'] = $token; if (isset($_POST['token']) && $_POST['token'] == $token) { // process form here } ?> <form ...> <input name="token" type="hidden" value="<?= $token ?>" /> ... <input type="submit" value="Send" /> </form>
<div class="signup"> <form action="<?= baseUrl()?>/user/register/" id="form" method="post"> <input type="hidden" name="csrfToken1" value="<?= generateToken()?>"> <label for="chk" class="sig">ثبت نام</label> <div class="user-box"> <input type="text" name="usernamereg" title="Enter Username" placeholder="نام کاربری" required> <!--<label>نام کاربری</label>--> </div> <div class="user-box"> <input type="text" name="email" title="Enter email" placeholder="ایمیل" required> <!--<label>Email</label>--> </div> <!-- <div class="user-box"> <input type="password" name="passreg" title="Enter password" autocomplete="off" placeholder="رمز عبور" required> <label>Password</label> </div>--> <div class="user-box"> <input type="text" name="mobile" title="Enter mobile" placeholder="شماره همراه" required> <!--<label>موبایل</label>--> </div> <button type="submit">ثبت نام</button> </form> </div> <!--login--> <div class="login"> <form action="<?= baseUrl()?>/user/login/" method="post"> <input type="hidden" name="csrfToken2" value="<?= generateToken()?>"> <label for="chk" class="log" >ورود</label> <div class="user-box"> <input type="text" name="usernamelog" placeholder="نام کاربری" required> <!--<label>Username</label>--> </div> <div class="user-box"> <input type="text" name="mobile" autocomplete="off" placeholder="موبایل" required> <!--<label>Password</label>--> </div> <div class="user-box"> <input type="checkbox" title="مرا به خاطر بسپار" placeholder="مرا به خاطر بسپار"> <span>مرا به خاطر بسپار</span> <!--<label>مرا به خاطر بسپار</label>--> </div> <button type="submit">ورود</button> </form>
public function login(){ if(isset($_POST['usernamelog'])){ $this->loginCheck(); } else { $this->loginForm(); } } private function loginForm(){ View::render('/user/login-register.php'); } private function loginCheck(){ checkCsrfToken(); $usernamelog = htmlentities($_POST['usernamelog']); $mobile = htmlentities($_POST['mobile']); echo $usernamelog; br(); echo $mobile; $record = UserModel::fetch_by_username_mobile_login($usernamelog,$mobile); if($record == null){ message('fail',_username_not_registered); } else { $_SESSION['id'] = $record['id']; $_SESSION['username'] = $record['username']; $_SESSION['mobile'] = $record['mobile']; $_SESSION['email'] = $record['email']; View::render('/page/home.php'); } }
function generateToken(){ $csrfToken= generateHash(64); $_SESSION['csrfToken'] = $csrfToken; return $csrfToken; } function checkCsrfToken(){ if(!isset($_SESSION['csrfToken'])){ echo "csrf Token Error"; exit(); } if(str_contains($_POST['csrfToken'], '1')){ if($_SESSION['csrfToken'] == $_POST['csrfToken']){ unset($_SESSION['csrfToken']); return ; } else{ echo "csrf Token ERROR"; exit(); } } if(str_contains($_POST['csrfToken'], '2')){ if($_SESSION['csrfToken'] == $_POST['csrfToken']){ unset($_SESSION['csrfToken']); return ; } else{ echo "csrf Token ERROR"; exit(); } } }
public function login(){ if(isset($_POST['usernamelog'])){ $this->loginCheck(); } else { $this->loginForm(); } } private function loginForm(){ View::render('/user/login-register.php'); } private function loginCheck(){ checkCsrfToken(); $usernamelog = htmlentities($_POST['usernamelog']); $mobile = htmlentities($_POST['mobile']); echo $usernamelog; br(); echo $mobile; $record = UserModel::fetch_by_username_mobile_login($usernamelog,$mobile); if($record == null){ message('fail',_username_not_registered); } else { $_SESSION['id'] = $record['id']; $_SESSION['username'] = $record['username']; $_SESSION['mobile'] = $record['mobile']; $_SESSION['email'] = $record['email']; View::render('/page/home.php'); } }......................................................................................
function generateToken(){ $csrfToken= generateHash(64); $_SESSION['csrfToken'] = $csrfToken; return $csrfToken; } function checkCsrfToken(){ if(!isset($_SESSION['csrfToken'])){ echo "csrf Token Error"; exit(); } if(str_contains($_POST['csrfToken'], '1')){ if($_SESSION['csrfToken'] == $_POST['csrfToken']){ unset($_SESSION['csrfToken']); return ; } else{ echo "csrf Token ERROR"; exit(); } } if(str_contains($_POST['csrfToken'], '2')){ if($_SESSION['csrfToken'] == $_POST['csrfToken']){ unset($_SESSION['csrfToken']); return ; } else{ echo "csrf Token ERROR"; exit(); } } }