接收变量时遇到问题,我收到的错误消息是
注意:未定义的索引:第7行的C:\ Users \ PC \ Documents \ XAMPP \ htdocs \ php \ addpost.php中的标题 注意:未定义的索引:第8行的C:\ Users \ PC \ Documents \ XAMPP \ htdocs \ php \ addpost.php中的文本
// HTML文档
<div id="postdialog" title="Add Post" action="php/addpost.php">
<p>Please Fill in out member information.</p>
<form name="insertmember" action="php/addpost.php" >
<label>Title<input type="text" name="title" id="title"/></label>
<label>Text<textarea name="text"></textarea></label>
<input name="submit" type="submit" value="Submit" id="submit" />
</form>
</div>
// PHP文件
if ($_POST['submit'] = "submit") {
$title = $_POST['title'];
$text = $_POST['text'];
$errors = array();
if (empty($_POST['title'])) {
$errors[] = "Title is Missing";
}
else
{
$title = $_POST['title']
if (strlen($fname) > 15 ) {
$errors[] = "Title is too long";
}
}
if (empty($_POST["text"])) {
$errors[] = "Text is Missing";
}
else
{
$text = $_POST['text']
if (strlen($lname) > 30 ) {
$errors[] = "Text is too long";
}
}
if (!empty($errors)) {
print_r ($errors);
}
else
{
//DO SOMETHING ELSE
}
答案 0 :(得分:6)
您的表单中未指定method
,因此默认为GET
。
您需要在表单标记中添加method="post"
或在$_GET
中搜索您的数据。
答案 1 :(得分:0)
单独注释...如果您使用$title = $_POST['title'];
两次而第二个没有;
$text = $_POST['text'];
相同的事情
答案 2 :(得分:0)
$_REQUEST
来获取变量。它将获得所有内容并获得。
如果您想使用帖子,那么您的表单行应该是这样的:
<form name="insertmember" method="post" action="php/addpost.php" >
另外请注意,在将请求参数分配给变量之前,最好先进行检查。看看这个:)
if(isset($_POST['submit']) and $_POST['submit'] == "submit") {
$errors = array();
if(isset($_POST['title'])) {
if (empty($_POST['title'])) {
$errors[] = "Title is Missing";
} else {
$title = $_POST['title'];
if(strlen($fname) > 15 ) {
$errors[] = "Title is too long";
}
}
}
if(isset($_POST['text'])) {
if (empty($_POST["text"])) {
$errors[] = "Text is Missing";
} else {
$text = $_POST['text'];
if(strlen($lname) > 30 ) {
$errors[] = "Text is too long";
}
}
}
if(!empty($errors)) {
print_r ($errors);
} else {
//DO SOMETHING ELSE
}
}
答案 3 :(得分:0)
给出的其他答案(here和here)已经包含了缺少的内容和应该添加的内容,包括语法错误,所以我不会在答案中重复。
将所有这些放在一起,已经开始分割这个工作副本,包括一些补充。
随附的已修改的HTML表单,如下所示。
<?php
if(isset($_POST['submit']) && $_POST['submit'] = "submit") {
// can also use this instead of above
// if(isset($_POST['submit'])) {
$errors = array();
if(isset($_POST['title'])) {
if (empty($_POST['title'])) {
$errors[] = "Title is Missing";
} else {
$title = $_POST['title'];
if(strlen($title) > 15 ) {
$errors[] = "Title is too long";
}
}
}
if(isset($_POST['text'])) {
if (empty($_POST["text"])) {
$errors[] = "Text is Missing";
} else {
$text = $_POST['text'];
if(strlen($lname) > 30 ) {
$errors[] = "Text is too long";
}
}
}
if(!empty($errors)) {
print_r ($errors);
} else {
echo "Success!"; // Added for testing purposes
//DO SOMETHING ELSE
}
}
else
{
// This message will appear if the code was accessed
// without the submit button being SET
echo "SORRY, you can't do that from here.";
}
这:(旁注)
<div id="postdialog" title="Add Post" action="php/addpost.php">
不应仅在action="php/addpost.php"
代码中包含<form>
。
<div id="postdialog" title="Add Post">
<p>Please Fill in out member information.</p>
<form name="insertmember" action="php/addpost.php" method="post">
<label>Title<input type="text" name="title" id="title"/></label>
<label>Text<textarea name="text"></textarea></label>
<input name="submit" type="submit" value="Submit" id="submit" />
</form>
</div>
答案 4 :(得分:-1)
我首先看到的是:
if($_POST['submit']= "submit") {
并且您应该==
而不是=
,因为您正在比较事物,而不是分配它们。