-2

我将一个在 Internet 上运行良好的服务器上的文件传输到我的本地计算机。

它为我的变量抛出了很多未定义的索引,

请告诉我可能是什么问题,因为它在互联网上运行良好而在本地无法运行

以下是错误和相关代码

未定义索引:/Users/mgltd/Sites/reacheasy/youraccount.php 第 38 行的注释 警告:date():依赖系统的时区设置是不安全的。你是需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第 39 行的 /Users/mgltd/Sites/reacheasy/youraccount.php 中为 'BST/1.0/DST' 选择了 'Europe/London'

编码

<?php
    $submit = $_POST['Add'];
    //form data
    $Sname = mysql_real_escape_string(htmlentities(strip_tags($_POST['Sname'])));
    $Pname = mysql_real_escape_string(htmlentities(strip_tags($_POST['Pname'])));
    $Pidno = mysql_real_escape_string(htmlentities(strip_tags($_POST['Pidno'])));
    $Psize = mysql_real_escape_string(htmlentities(strip_tags($_POST['Psize'])));
    $Pcolour = mysql_real_escape_string(htmlentities(strip_tags($_POST['Pcolour'])));
    $Pquantity = $_POST['Pquantity'];
    $Weblink = mysql_real_escape_string(htmlentities(strip_tags($_POST['Weblink'])));
    $Price = mysql_real_escape_string(htmlentities(strip_tags($_POST['Price'])));
    $comment = mysql_real_escape_string(htmlentities(strip_tags($_POST['comment'])));
    $date = date("Y-m-d");
    //echo " ('','$Sname','$Pname','$Pidno','$Psize','$Pcolour','$Pquantity','$Weblink','$Price','$Uname')";
    if('POST' === $_SERVER['REQUEST_METHOD'])
    {
    if ($Sname&&$Pname&&$Pidno&&$Weblink&&$Price)
    {
    if (is_numeric($Price))
    {
        $repeatheck = mysql_query("SELECT * FROM repplac WHERE Uname = '{$_SESSION['username']}' AND Pidno ='$Pidno' AND Sname='$Sname' AND Pname='$Pname'");
        $count = mysql_num_rows($repeatheck);
    if($count!=0)
    {
        die ('PRODUCT ALREADY IN BASKET YOU CAN INCREASE OR DECREASE QUANTITY, <a href="youraccount.php">CLICK TO GO BACK TO YOUR LIST</a>');
    }
    else
    //echo'$Price';
    $tprice = $Price * $Pquantity;
    //echo"$tprice";
    $queryreg = mysql_query("
    INSERT INTO repplac VALUES ('','$Sname','$Pname','$Pidno','$Psize','$Pcolour','$Pquantity','$Weblink','$Price','$comment','$tprice','$date','{$_SESSION['username']}','')
    ")or die(mysql_error());
    }
    else
    echo 'price field requires numbers';
    }
    else
    echo 'please fill in all required * fields ';
    }
    ?>
    <form action='youraccount.php' method='Post' class='ilistbar'>
        <!--<div>
        <label for='shoppinglist' class='fixedwidth'></label>
        <textarea type='text' name='shoppinglist' id='username' cols='100' rows='15'></textarea>
        </div> -->
        <div>
        <label for='Sname' class='fixedwidth'> * Shop name</label>
        <input type='text' name='Sname' id='Sname'/>
        </div>
        <div>
        <label for='Pname' class='fixedwidth'> * Product name</label>
        <input type='text' name='Pname' id='Pname'/>
        </div>
        <div>
        <label for='Pidno' class='fixedwidth'> * Product id no /ad reference</label>
        <input type='text' name='Pidno' id='Pidno'/>
        (This should be unique for each product)
        </div>
        <div>
        <label for='Psize' class='fixedwidth'>Product size</label>
        <input type='text' name='Psize' id='Psize'/>
        </div>
        <div>
        <label for='Pcolour' class='fixedwidth'>Product colour</label>
        <input type='text' name='Pcolour' id='Pcolour'/>
        </div>
        <div>
        <label for='Pquantity' class='fixedwidth'>Product quantity</label>
        <select name="Pquantity" id="Pquantity">
         <option value="1">1</option>
         <option value="2">2</option>
         <option value="3">3</option>
         <option value="4">4</option>
         <option value="5">5</option>
         <option value="6">6</option>
         <option value="7">7</option>
         <option value="8">8</option>
         <option value="9">9</option>
         <option value="10">10</option>
    </select>
    (You can update quantity in excess of 10 on the shopping list below)
        </div>
        <div>
        <label for='Weblink' class='fixedwidth'> * Web link</label>
        <input type='text' name='Weblink' id='Weblink'/>
        </div>
        <div>
        <label for='Price' class='fixedwidth'> * Price GBP</label>
        <input type='text' name='Price' id='Price'/>
        Please valid format is (.) for decimal
        </div>
        <div>
        <label for='comment' class='fixedwidth'> Extra info</label>
        <input type='text' name='comment' id='comment'/>
        Please give different colours , sizes of the same products,discount codes, and other information that you would like us to use
        </div>
        <div>

        <div class='buttonarea'>
                <p>
                <input type='submit' name='submit' value='Add'>
                </p>
                </div>
                </p>
        </form>
4

2 回答 2

3

我会将 php-block 包装在 if 的顶部:

if( isset($_POST['submit']) ){ 

    // Rest of the code that populates the variables and so on

}

这将确保您不会尝试对甚至不存在的值进行操作。:)

于 2012-07-11T13:45:48.343 回答
1

好吧,看起来$_POST超全球没有填充(你检查过这个吗?)或者,至少,它不包含你认为它所做的。

您的代码似乎在没有检查的情况下假设 POST 值。

运行print_r($_POST)- 它是否包含正确的数据?

于 2012-07-11T13:45:18.610 回答