問(wèn)題出在哪裡?這個(gè)簡(jiǎn)單的html/PHP表單在本地測(cè)試時(shí)正常運(yùn)行,但在實(shí)際伺服器上卻失敗了
P粉060528326
2023-09-05 17:03:39
<p>我想在現(xiàn)有的網(wǎng)站上新增一個(gè)「?jìng)魉陀嵪ⅰ贡韱?。我找到了這個(gè)教學(xué):</p>
<p>PHP聯(lián)絡(luò)表單</p>
<p>我審查了教程中的程式碼,學(xué)習(xí)了它的工作原理,然後進(jìn)行了程式設(shè)計(jì)。我將其運(yùn)行起來(lái),並在我的個(gè)人電腦上進(jìn)行了所有測(cè)試,它完美地工作。 </p>
<p>然後,我將其作為現(xiàn)有網(wǎng)站的一部分放到了伺服器上。但是失敗了。點(diǎn)擊提交按鈕會(huì)清空螢?zāi)唬韱蜗Р灰?jiàn)。沒(méi)有錯(cuò)誤訊息。什麼都沒(méi)有。 </p>
<p>XAMPP和實(shí)際伺服器都運(yùn)行PHP版本8.1.12。 </p>
<p>它在這行PHP程式碼上失敗了:header('Location: contact.php', true, 303);</p>
<p>我花了很多時(shí)間來(lái)調(diào)試這個(gè)問(wèn)題,學(xué)習(xí)了更多關(guān)於PHP的知識(shí),按照在Stack Overflow上找到的建議進(jìn)行操作,並閱讀了關(guān)於函數(shù)header()的PHP文件。我還參加了兩個(gè)LinkedIn Learning的PHP課程。但我無(wú)法弄清楚問(wèn)題出在哪裡。 </p>
<p>然後,我將問(wèn)題簡(jiǎn)化為這段簡(jiǎn)單的程式碼,使其盡可能簡(jiǎn)單,只有一個(gè)包含提交按鈕的表單。它和完整的表單有同樣的問(wèn)題。 </p>
<p>這是我的測(cè)試程式碼:</p>
<pre class="brush:php;toolbar:false;"><!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Contact</title>
</head>
<?php
session_start();
$request_method = strtoupper($_SERVER['REQUEST_METHOD']);
if ($request_method === 'GET'){
?><form action="for_stack_overflow.php" method="post">
<button type="submit">Send Message</button>
</form>
<?php
}
elseif ($request_method === 'POST'){
header('Location: for_stack_overflow.php', true, 303);
exit;
}
?></html></pre>
<p>這段簡(jiǎn)單的html/php程式碼和我的完整表單有相同的問(wèn)題:點(diǎn)擊提交按鈕後,螢?zāi)槐磺蹇?,只剩下一個(gè)表單按鈕。表單不起作用。 </p>
<p>我故意去除了所有縮進(jìn),因?yàn)槲伊私獾揭粋€(gè)常見(jiàn)問(wèn)題是看不見(jiàn)的空白字元會(huì)導(dǎo)致PHP函數(shù)header()失敗。 </p>
<p>這個(gè)程式(以及我的完整表單)每個(gè)都:</p>
<ol>
<li>在我的個(gè)人電腦上進(jìn)行本地測(cè)試時(shí)完美運(yùn)行;</li>
<li>在真實(shí)伺服器上,我的網(wǎng)站託管帳戶上運(yùn)行時(shí)失敗。 </li>
</ol>
<p>我已經(jīng)盡力解決這個(gè)問(wèn)題了。 </p>
<p>是什麼出了問(wèn)題?可能出了什麼問(wèn)題?有什麼我不理解的地方嗎? </p>
點(diǎn)贊 +0
P粉060528326