保留文本框值

时间:2013-05-07 11:12:45

标签: php

我的代码:

<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代码显示在文本框中而不是实际值

Demonstration

3 个答案:

答案 0 :(得分:3)

该语法是正确的(虽然容易受到XSS)。

如果它不起作用,那么您没有使用支持PHP的服务器来处理正在加载的文件。

在WWW上的PHP仅在访问页面时有效:

  • 通过网络服务器
  • 已安装PHP
  • 知道你加载的文件包含PHP,应该由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>

您只需将文本框的名称传递给函数预填充,以便在表单提交后保留它。