为什么我无法查看我在html表单中填写的内容。我的PHP代码中的代码有问题吗?
<html>
<head>
<title>What's your name?</title>
</head>
<body>
<h1>What's your name?</h1>
<h3>Writing a form for user input</h3>
<form method = "post" action = "User.php">
Please type your name:
<input type = "text" name = "userName" value = " "><br>
<input type = "submit">
</form>
</body>
</html>
代码:
<html>
<head>
<title>Hi User</title>
</head>
<body>
<h1>Hi User</h1>
<h3>PHP program that receives a value from "whatsName"</h3>
<?
print("<h3>Hi there , $userName </h3>");
?>
</body>
</html>
答案 0 :(得分:3)
除非你已经注册了Globals(如果是这样你不应该把它关闭),表单变量不会自动展开,所以你需要从$_POST
数组中选择它们: / p>
if($_SERVER['REQUEST_METHOD'] == 'POST'){
print("<h3>Hi there , " . htmlspecialchars($_POST['userName']) . "</h3>");
}
答案 1 :(得分:1)
也许您已经习惯了配置错误的服务器,并且register_globals
已启用。
或许您已经转移到已移除register_globals
的PHP版本,即PHP5.4或更高版本。
您应该使用正确的
来处理来自HTML<form>
的所有数据
$_POST['variableName']
或
$_GET['variableName']
考虑到这一点,您的代码可能看起来像这样
print('<h3>Hi there , ' . $_POST['userName'] . '</h3>');
注意:您应该理智地检查此类数据中传递的值,并检查它是否确实存在。尽管即使register_globals
已开启,您仍应该这样做。