我的代码:
<html>
<head>
<title>A BASIC HTML FORM</title>
<?PHP
if (isset($_POST['Submit1'])) {
$username = $_POST['username'];
}
?>
</head>
<body>
<Form name ="form1" Method ="POST" Action ="basicForm.php">
<Input Type = "text" Value ="<?PHP print $username ;?>" Name ="username">
<Input Type = "Submit" Name = "Submit1" Value = "Login">
</FORM>
</body>
</html>
问题:PHP代码显示在文本框中而不是实际值
答案 0 :(得分:3)
该语法是正确的(虽然容易受到XSS)。
如果它不起作用,那么您没有使用支持PHP的服务器来处理正在加载的文件。
在WWW上的PHP仅在访问页面时有效:
.php
文件扩展名来完成的。) 更新:您已编辑了问题以包含屏幕抓取功能。这证实了这个答案。您正在尝试将PHP从文件系统直接加载到浏览器中(使用file:///
URI)。您需要通过Web服务器(使用http://
URI)访问它。
正如@CORRUPT在评论中指出的那样。您没有给$username
一个默认值,因此如果未设置POST数据,您将收到错误。我建议在if (isset($_POST['Submit1'])) {
行之前将其设置为空字符串。
答案 1 :(得分:0)
尝试以下代码:
<html>
<head>
<title>A BASIC HTML FORM</title>
<?PHP
if (isset($_POST['Submit1'])) {
$username = $_POST['username'];
}else{
$username='';
}
?>
</head>
<body>
<Form name ="form1" Method ="POST" Action ="basicForm.php">
<Input Type = "text" Value ="<?PHP print $username ;?>" Name ="username">
<Input Type = "Submit" Name = "Submit1" Value = "Login">
</FORM>
</body>
</html>
答案 2 :(得分:0)
在php块中写下这个函数:
function prepopulate($name) {
if(isset($_POST[$name])) {
return $_POST[$name];
}
else {
return "";
}
}
然后在HTML部分
<FORM NAME ="form1" METHOD ="POST" ACTION = "">
<input name="fname" type="text" value="<?php echo prepopulate('fname');?>">
<input name="lname" type="text" value="<?php echo prepopulate('lname');?>">
</FORM>
您只需将文本框的名称传递给函数预填充,以便在表单提交后保留它。