亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

阻止用戶在未先完成表單的情況下訪問提交頁面

阻止用戶在未先完成表單的情況下訪問提交頁面

PHP
喵喵時光機 2023-05-26 17:23:18
假設我有一個關于example.com/contact該流程的表格example.com/submitted。理論上,目前任何人都可以example.com/submitted直接訪問,但由于顯示的消息,這并不理想。從理論上講,只要發布了表單頁面的內容就無關緊要。我不想在提交頁面的內容完成時回顯它。我只需要一些簡單的東西,比如如果 referrer 不是example.com/form或POST方法。我只需要在example.com/submitted用戶實際提交內容時才允許訪問。我已經嘗試過 PHP 和 htaccess 方法(首選 PHP),但我發現沒有任何效果。在同一頁面上處理會消除此問題,但提交的頁面包含完全不同的內容。任何建議將不勝感激,因為我在任何地方都找不到有效的答案。
查看完整描述

4 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

將action您的表單指向example.com/contact,example.org/submitted以便將表單內容發布到您的submitted頁面。


然后,在你的submitted頁面上,檢查方法,并重定向到contacton GET(或者更好的是,所有不是的POST):


if ($_SERVER['REQUEST_METHOD'] !== 'POST')

    header("Location: http://example.com/contact");

else if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST)) {

    // validate input

    // save to your CSV

    // display `submitted` page

}


查看完整回答
反對 回復 2023-05-26
?
森林海

TA貢獻2011條經驗 獲得超2個贊

試試這個: contact.php


session_start();

...

$_SESSION['form-submitted'] = 0;

if(isset($_POST['submit'])){//use your button value

   //do your stuff

   $_SESSION['form-submitted'] = 1;

   //redirect to submitted file

}

提交.php


if(isset($_SESSION['form-submitted']) && $_SESSION['form-submitted'] == 1){

   //show content

} else {

   //redirect to contact page

}

這將允許您捕獲獲取請求并檢查表單是否未提交。


查看完整回答
反對 回復 2023-05-26
?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

你試過這個了嗎?


if (!isset($_POST)) {

    header("Location: http://example.com/contact");

}


查看完整回答
反對 回復 2023-05-26
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

您可以通過這樣做來完成對 refferer 和請求方法的檢查:


if ($_SERVER['REQUEST_METHOD'] === 'POST' && $_SERVER['HTTP_REFERER'] == "http://example.com/form") {

    // Your code

}


查看完整回答
反對 回復 2023-05-26
  • 4 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號