1

我的代码:

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

示范

4

3 回答 3

3

该语法是正确的(尽管容易受到XSS的攻击)。

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

PHP,在 WWW 上,只在页面被访问时工作:

  • 通过网络服务器
  • 安装了PHP
  • 这知道您正在加载的文件包含 PHP,并且应该由 PHP 引擎处理(这通常通过给它一个.php文件扩展名来完成)。

更新:您已编辑您的问题以包含屏幕抓取。这证实了这个答案。您正在尝试将 PHP 从文件系统直接加载到浏览器中(使用file:///URI)。您需要通过 Web 服务器(使用http://URI)访问它。


正如@CORRUPT 在评论中指出的那样。您没有提供$username默认值,因此如果未设置 POST 数据,您将收到错误消息。我建议将其设置为行前的空字符串if (isset($_POST['Submit1'])) {

于 2013-05-07T11:14:24.707 回答
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>

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

于 2013-06-24T23:04:27.963 回答
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>
于 2013-05-07T11:33:29.383 回答