我想製作一個系統,允許用戶查看他們的應用程序,並讓系統根據特定ID(這是變量,在這種情況下爲$ APPID)確定它的基礎,以及該應用程序是一個mod還是管理員應用程序($ MOA)。PHP輸出500錯誤
這裏是我的index.php
HTML
<html>
<body>
<form action="viewapp.php" method="GET">
<h1>Is this a mod or admin application?</h1>
<input type="radio" name="MOA" value="MOD">Mod</input><br>
<input type="radio" name="MOA" value="ADMIN">Admin</input>
<h1>Put Application ID Below</h1>
<input type="text" name="APPID" placeholder="XXXX-XXXX-XXXX-XXXX" /><br><br>
<input type="submit" value="View" />
</form>
</body>
</html>
這是我的PHP
PHP
error_reporting(E_ALL);
$APPID = $_GET['APPID'];
$MOA = $_GET['MOA'];
function determineStatus() {
$MATTEMPTA = 'mod-applications/accepted/' . $APPID . '.php';
$MATTEMPTD = 'mod-applications/denied/' . $APPID . '.php';
$AATTEMPTA = 'admin-applications/accepted/' . $APPID . '.php';
$AATTEMPTD = 'admin-applications/denied/' . $APPID . '.php';
if (FILE_EXISTS($MATTEMPTA)) {
echo 'Redirecting...';
header('Location: https://website.com/apply/mod-applications/accepted/' . $APPID . '.php';
} elseif (FILE_EXISTS($MATTEMPTD)) {
echo 'Redirecting...';
header('Location: https://website.com/apply/mod-applications/denied/' . $APPID . '.php';
} elseif (FILE_EXISTS($AATTEMPTA)) {
echo 'Redirecting...';
header('Location: https://website.com/apply/admin-applications/accepted/' . $APPID . '.php';
} elseif (FILE_EXISTS($AATTEMPTD)) {
echo 'Redirecting...';
header('Location: https://website.com/apply/admin-applications/denied/' . $APPID . '.php';
} else {
echo 'Your application was not found';
}
}
if ($MOA == "MOD") {
$PATH = 'mod-applications/' . $APPID . '.php';
} elseif ($MOA == "ADMIN") {
$PATH = 'admin-applications/' . $APPID . '.php';
} else {
die('Please select Mod or Admin');
}
if (FILE_EXISTS($PATH)) {
echo 'Redirecting...';
header('Location: https://website.com/apply/' . $PATH . '');
} elseif (!FILE_EXISTS($PATH)) {
determineStatus();
} else {
echo 'Your application was not found';
}
出於某種原因,這個代碼總是輸出500服務器錯誤。我不知道爲什麼。我搜索了很長時間,找不到任何答案。我的語法沒有看到任何錯誤。 這將意味着很多,如果有人可以幫助我!
編輯
我已經重做我determineStatus()函數,並放置所有的回聲的的頁眉()的
function determineStatus() {
$MATTEMPTA = 'mod-applications/accepted/' . $APPID . '.php';
$MATTEMPTD = 'mod-applications/denied/' . $APPID . '.php';
$AATTEMPTA = 'admin-applications/accepted/' . $APPID . '.php';
$AATTEMPTD = 'admin-applications/denied/' . $APPID . '.php';
if (FILE_EXISTS($MATTEMPTA)) {
header('Location: https://website.com/apply/mod-applications/accepted/' . $APPID . '.php';
echo 'Redirecting...';
} elseif (FILE_EXISTS($MATTEMPTD)) {
header('Location: https://website.com/apply/mod-applications/denied/' . $APPID . '.php';
echo 'Redirecting...';
} elseif (FILE_EXISTS($AATTEMPTA)) {
header('Location: https://website.com/apply/admin-applications/accepted/' . $APPID . '.php';
echo 'Redirecting...';
} elseif (FILE_EXISTS($AATTEMPTD)) {
header('Location: https://website.com/apply/admin-applications/denied/' . $APPID . '.php';
echo 'Redirecting...';
} else {
echo 'Your application was not found';
}
}
編輯後
我在這裏發佈我的.htaccess (反正沒有任何東西)。
不要刪除此行,否則mod_rewrite的規則將停止工作
RewriteBase/
編輯
我有固定去除全局變量的問題。出於某種原因,他們造成了500錯誤。
如果存在HTTP 500服務器錯誤,首先要查找的地方是您的服務器日誌。如果你有Apache運行,那將是一個名爲'error.log'和/或'access.log'的文件。 – icecub
現在我看到的第一個問題是,你'回聲'字符串,然後發送標題。這是不可能的。頭文件只能在任何輸出之前發送。 – icecub
@icecub仍然輸出錯誤:( – burger97979