未定义索引
Undefined index
为什么我会收到这个(未定义的索引:评级)错误?
如您所见,我已将 "rating" 写入表格中的名称。
$rating = $_POST['rating'];
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
if (isset($_POST['submit'])) {
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit">
</form>
<?php
};
Use
ini_set("display_errors","off");
in starting of php, notice will dismiss...
这只是您收到的通知。
在顶部写这个
ini_set('display_errors','0');
它会成功的..
现在,如果不提交,键 'rating' 不存在于 $_POST 数组中,因此通知。如果您想在提交后执行此操作,只需更改顺序即可:
if (isset($_POST['submit'])) {
$rating = mysql_real_escape_string($_POST['rating']);
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit" name = "submit">
</form>
<?php
};
您没有发布评级变量
检查和设置值的一个好习惯是
$rating=0;
if(isset( $_POST['rating']))
$rating = $_POST['rating'];
如果已设置,它将分配发布的值,否则它将具有值 0。
在您的情况下,它首先是空的,因为您将使用 GET 方法访问该页面,因此将其设置为
if (isset($_POST['rating'])) {
//query and rest of the details here..
}
注意:您必须检查变量 isset 和 !empty。
试试这个:
if(isset($_POST['rating']) && !empty($_POST['rating'])){
$rating = $_POST['rating'];
}else{
$rating = '0';
}
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
if(isset($_POST['submit'])){
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit">
</form>
<?php
};
问题是页面一加载就运行脚本。但是,脚本还没有来自输入字段的信息。解决方法非常简单,只需要两个简单的步骤:
1) 将 "name" 属性添加到 html 中的提交按钮。
<input type="submit" name="submit" value="Register">
2) 将此代码放在 php 脚本的顶部,并将其替换为提交按钮的名称。如果表单尚未提交,代码位于脚本顶部时会从 运行 停止脚本。
if(!isset($_POST['submit']))
{
exit;
}
希望对您有所帮助,祝您完成项目顺利。
为什么我会收到这个(未定义的索引:评级)错误?
如您所见,我已将 "rating" 写入表格中的名称。
$rating = $_POST['rating'];
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
if (isset($_POST['submit'])) {
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit">
</form>
<?php
};
Use
ini_set("display_errors","off");
in starting of php, notice will dismiss...
这只是您收到的通知。 在顶部写这个
ini_set('display_errors','0');
它会成功的..
现在,如果不提交,键 'rating' 不存在于 $_POST 数组中,因此通知。如果您想在提交后执行此操作,只需更改顺序即可:
if (isset($_POST['submit'])) {
$rating = mysql_real_escape_string($_POST['rating']);
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit" name = "submit">
</form>
<?php
};
您没有发布评级变量
检查和设置值的一个好习惯是
$rating=0;
if(isset( $_POST['rating']))
$rating = $_POST['rating'];
如果已设置,它将分配发布的值,否则它将具有值 0。
在您的情况下,它首先是空的,因为您将使用 GET 方法访问该页面,因此将其设置为
if (isset($_POST['rating'])) {
//query and rest of the details here..
}
注意:您必须检查变量 isset 和 !empty。
试试这个:
if(isset($_POST['rating']) && !empty($_POST['rating'])){
$rating = $_POST['rating'];
}else{
$rating = '0';
}
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
if(isset($_POST['submit'])){
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit">
</form>
<?php
};
问题是页面一加载就运行脚本。但是,脚本还没有来自输入字段的信息。解决方法非常简单,只需要两个简单的步骤:
1) 将 "name" 属性添加到 html 中的提交按钮。
<input type="submit" name="submit" value="Register">
2) 将此代码放在 php 脚本的顶部,并将其替换为提交按钮的名称。如果表单尚未提交,代码位于脚本顶部时会从 运行 停止脚本。
if(!isset($_POST['submit']))
{
exit;
}
希望对您有所帮助,祝您完成项目顺利。