我創建了一個名為 coodos.co 的網站,我是 php 的新手,每當有人提交聯系我們時,php 頁面打開且永不關閉,我想做的是 php 代碼在后端執行而不是加載頁面在用戶面前調用 contact.php,這是我的 PHP 代碼<?php $name = $_POST['name']; $email = $_POST['email']; $msg = $_POST['msg']; $to='[email protected]'; // Receiver Email ID, Replace with your email ID $subject='Form Submission'; $message="Name :".$name."\n"."email:".$email."\n"."Wrote the following :"."\n\n".$msg; $headers="From: ".$email; if(mail($to, $subject, $message, $headers)){ exit(); }?>
2 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
這與 php 的工作方式無關,而是與 HTML 中的表單工作方式有關。
我假設在你頁面的某處你有這條線
<form action="/contact.php">
或類似的東西。用戶提交表單后,操作鏈接將告訴瀏覽器去哪里。要抑制這種情況,您可以按照此處所述使用 JavaScript或使其僅鏈接回首頁。
或者,您也可以通過發送這樣的重定向標題從您的聯系頁面重定向到您的首頁:
header('Location: '.$newURL);

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
如果我理解正確的話,你想執行一些外部 php 文件,而不是在提交表單時離開你所在的頁面。
希望這是正確的。
選項 1 - header()
實現非常相似的行為的一種常用方法是header
方法。這會將您重定向到特定文件。
header('location: index.php');
這也可用于將 URL 中的附加數據作為$_GET
值傳遞。
小例子:
header('location: index.php?login=success');
注意:您仍然希望保留exit()
以防止執行重定向后的代碼。
選項 2 - PHP_SELF
有點棘手,但您也可以使用重定向到您已經在的頁面。為此,您可以使用$_SERVER['PHP_SELF']
.
處理這個女巫護理!
用戶有辦法操縱 url,這意味著您必須應對潛在的跨站點腳本 (XSS) 攻擊。這很容易用 完成htmlspecialchars
,但非常重要!
以下是如何在表單中使用它:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
因為您在頁面上重定向,您很可能希望有另一段 PHP 代碼來檢查可能發送的數據$_GET
。$_POST
- 2 回答
- 0 關注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消