我的html代码收到字符串:
<!DOCTYPE html>
<head>
<title>title</title>
</head>
<body>
<font face="Segoe UI" siz ="3">
<form action="process.php" action="post">
Suggestion: <input type="text" name="sgst" autocomplete="off">
<input type="submit">
</form>
</font>
</body>
</html>
我的PHP处理它:(process.php)
<?php
if ($_POST["sgst"]=="john") {
echo "john";
} else {
echo "someone";
}
?>
我收到错误
注意:未定义的索引:第2行的C:\ xampp \ htdocs \ test \ process.php中的sgst
有谁能告诉我导致错误的原因是什么?
答案 0 :(得分:1)
您正在重复使用action
元素的form
属性:
<form action="process.php" action="post">
我很惊讶这张表格甚至都是张贴的。尽管有这些症状,但似乎至少足以混淆POST。我认为您打算使用method
属性:
<form action="process.php" method="post">
其他一些说明:
isset()
。代码不应该假设所有值都将被发布,因为服务器无法控制客户端发送它的内容。最好在使用之前明确验证进来的数据。font
元素非常过时,如果它们没有被正式弃用,它们应该是:) CSS样式将成为客户端UI样式的方式。答案 1 :(得分:1)
使用isset
if(isset($_POST["sgst"]=="john")){
}
答案 2 :(得分:0)
它显示未定义,因为最初该值未初始化
使用isset()
来检查声明的值是否然后它不会显示错误...
试试我已更改
<?PHP
if (isset($_POST["sgst"])
{
if ($_POST["sgst"]=="john") {
echo "john";
} else {
echo "someone";
}
}
?>
答案 3 :(得分:0)
尝试以下
在表单标记中使用方法属性,例如method="post"
,而不是action="post"
答案 4 :(得分:0)
<!DOCTYPE html>
<head>
<title>title</title>
</head>
<body>
<font face="Segoe UI" siz ="3">
<form action="process.php" method="post">
Suggestion: <input type="text" name="sgst" autocomplete="off">
<input type="submit">
</form>
</font>
</body>
</html>
if (isset($_POST["sgst"]) && $_POST["sgst"]=="john") {
echo "john";
} else {
echo "someone";
}
答案 5 :(得分:0)
您缺少方法属性。
使用两种形式 - 删除第一种形式。
试试这个,
<form action="process.php" method="post">
<?php
if(!empty($_POST)){
if ($_POST["sgst"]=="john") {
echo "john";
} else {
echo "someone";
}
}
?>