我正在尝试用$Firstname填充html文本框值,但我不断收到HTTP 500内部服务器错误。插入 php 部分工作得很好。
这是我的PHP代码。我试图设置的框在底部。
<?php
$Firstname = $_POST['Fname'];
$Surname = $_POST['Lname'];
$UserName = $_POST['UName'];
$Password = $_POST['Password'];
$Valid = mysql_connect('localhost' , 'root' , 'pword');
if(!$Valid)
{
echo 'Could not connect' . mysql_error();
}
else
{
mysql_select_db('accounts', $Valid) or die('could not select database');
$query = "INSERT INTO `users` (`UserName`, `Password`, `FirstName`, `Surname`) VALUES ('".$UserName."' , '".$Password."' , '".$Firstname."' , '".$Surname."')";
mysql_query($query, $Valid) or die('Error Adding the users details.');
echo "The following user " . $Firstname . " has been added to the database";
}
<html>
<body>
<input type="text" name="UName" size="30" value=<?php echo htmlentities($Firstname); ?>/><br/>
</body>
</html>
?>
从末尾取下?>
并将其放在<html>
之前
除了前面的答案之外,我建议您确保在开发环境中将error_reporting设置为 E_ALL,display_errors设置为 ON。 这将帮助您获得比简单的 HTTP 500 更详细的错误消息。
欢呼:)
我认为
您的代码没有任何问题。但是你试试这个
<input type="text" name="UName" size="30" value="<?php echo $Firstname; ?>" />
您的代码中可能存在错误。我似乎在您的示例代码中找不到它。
顺便说一下,在这种情况下回显单个值的一个好做法是:
<input type="text" name="UName" size="30" value="<?=$Firstname?>" />
我注意到的第一件事是这个,
你忘了把你的php注入包含在"
<input type="text" name="UName" size="30" value="<?php echo htmlentities($Firstname); ?>"/><br/>
而不是:
...
echo "The following user " . $Firstname . " has been added to the database";
}
<html>
<body>
....
?>
尝试:
...
echo "The following user " . $Firstname . " has been added to the database";
}
?> <!-- add ?> -->
<html>
<body>
....
(delete ?>)
错误500来自Apache服务器,它与PHP无关。我认为您需要更改您的 htaccess,如果您有的话!
尝试重新启动服务器,并查看结果,或者更好的是检查 apache 错误日志/var/log/
一个
对我来说非常宝贵的网站是:http://phpcodechecker.com/
您可以粘贴一行或整个文件,然后单击"分析"按钮。 它会告诉你PHP解析器不喜欢什么,包括一些警告。 非常方便查找丢失的")"和不会弹出的类似错误。