未定义索引

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;
}

希望对您有所帮助,祝您完成项目顺利。