PHP表单显示不可预测的错误

时间:2015-06-17 03:14:28

标签: php forms

下面的php代码通过使用变量$ cat&来回显图像。 $ var,但当我填写表格&按提交,它显示以下错误重定向到同一页面,而不是转到insert.php。错误是:

  

注意:未定义的索引:数字在   第161行的C:\ xampp \ htdocs \ k \ show_results_4.php

     

注意:未定义的索引:类别   第162行的C:\ xampp \ htdocs \ k \ show_results_4.php

     

注意:未定义的索引:在C:\ xampp \ htdocs \ k \ show_results_4.php上   第164行

**

    <?php  
                       $var=$_GET['number'];                 //line 161
                        $cat=$_GET['category'];              // line 162
                        $unipath= array('breads','fruits','milk','vegetables');
                        echo $unipath[$cat];                  //line 164
                      echo '<img alt="140x140" src="/k/images/'.$unipath[$cat].'/'.$var.'.jpg" class="img-rounded"/>';


        if(isset($_SESSION['stats']))
            $mode=$_SESSION['stats'];
            if($mode=='vendor')
            {
                echo "<form method='POST' action='insert.php'>
                    Enter price per item/kg:<input type='text' name='pr'>
                    <input type='hidden' name='vegid' value='".$var."'>
                    <input type='hidden' name='vegcat' value='".$cat."'><br/>
                <br/><button type='submit' class='btn btn-primary'> SUBMIT </button>
                </form>";
                        ?>

作为参考,insert.php是:

<?php
include 'conf.inc.php';
session_start();
if(!isset($_SESSION['usr']))
header('Location:login.php?t=1');
$id=$_SESSION['id'];
$vegid=$_POST['vegid'];
$vegcat=$_POST['vegcat'];
if(isset($_POST['pr']))
    {
        $price=$_POST['pr']; 
        if(!empty($price))
        {
            $dur=date('d m Y',time());
                        $query="insert into daily values('".$dur."','".$vegid."','".$vegcat."','".$id."','".$price."')";
                        if($query_run=mysql_query($query))
                        {
                                header('Location:Homepage_2.php?suc=1');
                        }
                        else
                        {
                                header('Location:Homepage_2.php?suc=2');
                        }
                }
            else
            {
        header('Location:Homepage_2.php?suc=3');
        }
        echo mysql_error();
}
?>

2 个答案:

答案 0 :(得分:0)

更改此

<?php
    if(isset($_POST['submit']))
    {
        $var=$_GET['number'];
        $cat=$_GET['category'];
        $unipath= array('breads','fruits','milk','vegetables');
        echo $unipath[$cat];
        echo '<img alt="140x140" src="/k/images/'.$unipath[$cat].'/'.$var.'.jpg" class="img-rounded"/>';

        if(isset($_SESSION['stats']))
            $mode=$_SESSION['stats'];
        if($mode=='vendor')
        {
            echo "<form method='POST' action='insert.php'>
            Enter price per item/kg:<input type='text' name='pr'>
            <input type='hidden' name='vegid' value='" . $var . "'>
            <input type='hidden' name='vegcat' value='" . $cat . "'><br/>
            <br/><button type='submit' class='btn btn-primary' name='submit'> SUBMIT </button>//add name field
            </form>";
        }
    }

?>

注意:您通过POST方法发送数据。因此,请使用$_POST分配变量。 (例如:$var=$_POST['number'];$cat=$_POST['category'];

答案 1 :(得分:0)

他们不是错误,他们是通知....

  

注意:未定义的索引:数字在   第161行的C:\ xampp \ htdocs \ k \ show_results_4.php

您正在尝试检索$_GET['number']的值,而不检查$_GET['number']是否存在

  

注意:未定义的索引:类别   第162行的C:\ xampp \ htdocs \ k \ show_results_4.php

您正在尝试检索$_GET['category']的值,而不检查$_GET['category']是否存在

  

注意:未定义的索引:在C:\ xampp \ htdocs \ k \ show_results_4.php上   第164行

因为你试图访问$ unipath [$ cat]并且没有设置$ cat,所以你试图获得$ unipath [](没有索引)的值

要使用任何索引值,请先检查它是否存在。

如何?

$variable = isset($array['index']) ? $array['index'] : 'default';