2012-07-11 100 views
-2

我將從我的服務器上運行的文件傳輸到本地計算機。未定義的索引

而且它拋出很多關於我的變量未定義指數,

請告訴我可能是什麼問題,因爲它的工作原理以及在互聯網上,而不是在本地工作

下面

是錯誤和相關的代碼

「通知:未定義指數:添加在 /Users/mgltd/Sites/reacheasy/youraccount.php第27行的通知: 未定義指數:SNAME在/Users/mgltd/Sites/reacheasy/youraccount.php 在線30注意:未定義的索引: 中的Pname在線31上使用/Users/mgltd/Sites/reacheasy/youraccount.php注意: 未定義的索引:Pidno位於/Users/mgltd/Sites/reacheasy/youraccount.php 行32注意:未定義的索引:在第33行的 /Users/mgltd/Sites/reacheasy/youraccount.php的Psize注意: 未定義的索引:Pcolour在 /Users/mgltd/Sites/reacheasy/youraccount.php在線34注意: 未定義指數:Pquantity在 /Users/mgltd/Sites/reacheasy/youraccount.php線路35上注意: 未定義指數:網絡鏈接在 /Users/mgltd/Sites/reacheasy/youraccount.php在線路36上的通知: 未定義索引:價格在/Users/mgltd/Sites/reacheasy/youraccount.php在線37上的注意:未定義的索引:註釋 /Users/mgltd/Sites/reacheasy/youraccount.php在線38警告: date():依靠系統的時區設置是不安全的。你 是要求使用date.timezone設置或 date_default_timezone_set()函數。如果您使用這些 方法中的任何一種,並且您仍然收到此警告,則極有可能是 拼寫錯誤的時區標識符。我們選擇了 '歐洲/倫敦' 爲 'BST/1.0/DST',而不是在/Users/mgltd/Sites/reacheasy/youraccount.php 在線39"

代碼

<?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> 
+0

它也在服務器上失敗。你從來沒有聽說過它。 – 2012-07-11 13:44:58

+0

這是因爲您沒有將服務器PHP設置爲顯示警告。代碼的工作原理是一樣的,你之前沒有看到警告。 – JJJ 2012-07-11 13:46:44

+0

這是一些高質量的代碼和錯誤消息,我告訴你什麼。 – nickb 2012-07-11 13:49:06

回答

3

我想包頂部的PHP塊在if:

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

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

} 

這將確保你不要試圖在不是甚至遠程值有操作。 :)

+0

@ninetwozero,它幫助刪除未定義的錯誤,但爲什麼它不顯示在服務器上,任何想法 – 2012-07-11 13:55:28

+0

因爲你的按鈕名稱是「submit」,而不是「Add」。檢查上面的代碼更改。 :) – ninetwozero 2012-07-11 13:56:35

+0

謝謝你 – 2012-07-11 14:00:53

1

那麼它看起來像超全球不是$_POST填充(你有沒有檢查過嗎?),或者至少,它不包含你認爲它。

你的代碼似乎假定沒有檢查的POST值。

運行print_r($_POST) - 它是否包含正確的數據?