代码显示"内部服务器错误",并且没有将我重定向到正确的网站。
P粉819533564
2023-07-27 09:52:09
[PHP讨论组]
<p>嘿,大家好!我在这段特定的代码中遇到了一个错误,以下是错误信息。除了doEditAccount.php之外,我所有其他网站的代码都能正常工作。</p><p>内部服务器错误 服务器遇到了内部错误或配置错误,无法完成您的请求。</p><p>请联系服务器管理员 postmaster@localhost,告知他们发生错误的时间以及在此错误之前您执行的操作。</p><p>有关此错误的更多信息可能会在服务器错误日志中提供。</p><p>Apache/2.4.54 (Win64) OpenSSL/1.1.1p PHP/8.2.0 服务器位于localhost端口80。</p><p>以下是我的代码:Account.php:</p><p><br /></p>
<pre class="brush:php;toolbar:false;">//User can choose to edit or delete their account here
session_start();
include_once("linkConnection.php");
include_once("navbar.php");
include_once("session.php");
if(isset($_SESSION['userId'])){
$userId=$_SESSION['userId'];
$query="SELECT * FROM users WHERE userId = $userId";
$Result=mysqli_fetch_assoc(mysqli_query($link,$query));
echo " <br><b>Username</b> : ".$_SESSION['username'];
echo "<br><b>Password</b> : ".$Result['password'];
echo "<br><b>Name</b> : ".$Result['name'];
echo "<br><b>Date of Birth</b> : " .$Result['dob'];
echo "<br><b>Email</b> : " .$Result['email'];
?>
<form action="editAccount.php" method="post">
<input type="submit" value="Edit Account" name="edit1"/>
</form>
<br>
<form action="deleteAccount.php" method="post">
<input type="submit" value="Delete Account"/>
</form>
<br><br>
<?php
}
else{
echo "Please Login to View Account Information.";
}
?>
<html>
<head>
</head>
<body>
<h3>Account Customization</h3>
<?php
$Points_needed=100-$Result['points'];
?>
<p>Current Level : <?php echo $Result['level']?> (You need <?php echo $Points_needed?> more points to level up!)</p>
<div class="w3-light-grey">
<div id="myBar" class="w3-container w3-green w3-center" style="width:<?php echo $Result['points']?>%"><?php echo $Result['points']?></div>
</div>
<?php if (isset($_SESSION['userId'])){?>
<form action="doEditAccount.php" method="post">
<br/><br/>
<div class="level-container">
<label>Level 1 :</label>
<br>
<br>
<input type="radio" name="color" value="lightgrey" />Light Grey
<input type="radio" name="color" value="lightyellow"/>Light Yellow
<input type="radio" name="color" value="beige"/>Beige
<input type="radio" name="color" value="lightpink"/>Light Pink
<input type="radio" name="color" value="darkseagreen"/>Dark Sea Green
<input type="radio" name="color" value="lightblue"/>Light Blue
</div>
<?php
?>
<?php
if ($Result['level']>=5){ ?>
<div class="level-container">
<label>Level 5 :</label>
<br>
<br>
<input type="radio" name="lv5BG" value="background.jpg" />Mystical Background
<input type="radio" name="lv5BG" value="hellokitty.jpg" />Hello Kitty Background
<input type="radio" name="lv5BG" value="yellow.jpg" />Flowery Background
</div>
<?php
}else{
?>
<div class="level-container">
<label>Level 5 :</label>
<br>
<br>
<input type="radio" name="lv5BG" value="background.jpg" disabled/>Mystical Background
<input type="radio" name="lv5BG" value="hellokitty.jpg" disabled/>Hello Kitty Background
<input type="radio" name="lv5BG" value="yellow.jpg" disabled/>Flowery Background
</div>
<?php
}
if ($Result['level']>=10){?>
<div class="level-container">
<label>Level 10 :</label>
<br><br>
<input type="radio" name="lv10BG" value="lv10 - movable rainbow.gif" />Movable rainbow gif
<input type="radio" name="lv10BG" value="lv10 - lightbugs.gif" />Mystical Movable Firebugs
</div>
<?php
}else{?>
<div class="level-container">
<label>Level 10 :</label>
<br><br>
<input type="radio" name="lv10BG" value="lv10 - movable rainbow.gif" disabled/>Movable rainbow gif
<input type="radio" name="lv10BG" value="lv10 - lightbugs.gif" disabled/>Mystical Movable Firebugs
</div>
<?php
}
?>
<input type="submit" value="Confirm Change" name="edit2"/>
</form>
<?php
}
?>
</body>
</html></pre>
<p>Account.php表单输入将传递到doEditAccount.php,下面是代码。</p>
<pre class="brush:php;toolbar:false;">error_reporting(E_ALL);
ini_set('display_errors', '1');
include_once("linkConnection.php");
include_once("navbar.php");
include_once("session.php");
if(isset($_POST['edit1'])){
}else{
}
// $_SESSION['Cmsg'] = Customization Message
if (isset($_POST['edit2'])) {
if (isset($_POST['color'])) {
$plaincolor = $_POST['color'];
setcookie("lv5BG", "", time() - 3600); // Remove lv5BG cookie if it exists
setcookie("lv10BG", "", time() - 3600); // Remove lv10BG cookie if it exists
setcookie("plaincolor", $plaincolor, time() + 60 * 60 * 24 * 365 * 10);
$_SESSION['Cmsg'] = "You have successfully changed background to $plaincolor.";
} elseif (isset($_POST['lv5BG'])) {
$lv5BG = $_POST['lv5BG'];
setcookie("plaincolor", "", time() - 3600); // Remove plaincolor cookie if it exists
setcookie("lv10BG", "", time() - 3600); // Remove lv10BG cookie if it exists
setcookie("lv5BG", $lv5BG, time() + 60 * 60 * 24 * 365 * 10);
$_SESSION['Cmsg'] = "You have successfully changed background to $lv5BG.";
} elseif (isset($_POST['lv10BG'])) {
$lv10BG = $_POST['lv10BG'];
setcookie("plaincolor", "", time() - 3600); // Remove plaincolor cookie if it exists
setcookie("lv5BG", "", time() - 3600); // Remove lv5BG cookie if it exists
setcookie("lv10BG", $lv10BG, time() + 60 * 60 * 24 * 365 * 10);
$_SESSION['msg'] = "You have successfully changed background to $lv10BG.";
} else {
$_SESSION['Cmsg'] = "You have submitted nothing. No change to customizations.";
}
header('Location : Login.php');
}
?></pre>
<p>Login.php:</p>
<pre class="brush:php;toolbar:false;"><?php
session_start();
include_once("navbar.php");
include_once("session.php");
$backgroundStyle = "";
if (isset($_COOKIE['plaincolor'])) {
$backgroundStyle = "background-color: " . $_COOKIE['plaincolor'] . ";";
} elseif (isset($_COOKIE['lv5BG'])) {
$backgroundStyle = "background-image: url(images/".$_COOKIE['lv5BG'].")";
}elseif (isset($_COOKIE['lv10BG'])) {
$backgroundStyle = "background-image: url(images/".$_COOKIE['lv10BG'].")";
echo $_COOKIE['lv10BG'];
}
echo $backgroundStyle;
?>
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="<?php echo $backgroundStyle?>; background-size: cover; background-repeat: no-repeat;">
<!--
form
-->
<?php
if (isset($_SESSION['msg'])){
?>
<div class="alert alert-success">
<h5><?php echo $_SESSION['msg'];?></h5>
</div>
<?php
}
unset($_SESSION['msg']);
?>
<form name="Login" method="post" action="doLogin.php" class="ReviewEdit">
<h1>Login Page :</h1>
<?php if(isset($_COOKIE['username'])){?>
Your Username: <br>
<input style="border:2px solid black;" id="idName" type="text" name="Uname" placeholder="Enter your username" value="<?php echo $_COOKIE['username']?>"/>
<br><br>
<?php
}else{?>
Your Username: <br>
<input style="border:2px solid black;" id="idName" type="text" name="Uname" placeholder="Enter your username" />
<?php
}
?>
Your Password: <br>
<input style="border:2px solid black;" id="idEmail" type="password" name="pw" placeholder="Enter your password"/>
<br><br>
<input type="checkbox" value="Remember me" name="Remember">Remember Me
<a href="forget-password.php">Forget Password</a>
<input type="submit" value="Login">
<br><br>
</form>
<h5 class="notImportant forlogin"> Not a member yet? Register <a href="Register.php" style="color: darkslategray">here</a> </h5>
</body>
</html></pre>
<p>然后我重定向到Login.php,让用户看到他们更新的背景。问题是,当我点击“确认更改”按钮时,它给我显示之前在doEditAccount.php网站上提到的错误,除此之外,我的其他网站都能正常工作。有什么问题的想法吗?</p><p>我以为是重定向的问题,所以尝试删除header("Location:Login.php"),但问题仍然存在。这个网站以前是正常工作的,突然间当我再次运行它时,它就出现了这个错误,无法解决。</p><p><br /></p>
尝试将header('Location : Login.php');中的Location后面的空格移除,改为header('Location: Login.php');,并在header函数下面添加exit语句,以防止在发送重定向header后执行任何进一步的代码,这被认为是使用header()进行重定向时的良好实践。
像这样: