2012-03-26 4 views
0

У меня возникла проблема с загрузкой изображения на сервер. Эти ошибки я получаю:Php загрузка изображений на сервер

Примечание: Undefined индекс: $ this-> файл в /opt/lampp/htdocs/xampp/php/theislan_testdatabase/addItem.php на линии 70

Примечание. Неопределенный индекс: $ this-> file в файле /opt/lampp/htdocs/xampp/php/theislan_testdatabase/addItem.php в строке 71

Примечание: Неопределенный индекс: $ this-> file in/opt/lampp/htdocs/xampp/php/theislan_testdatabase/addItem.php в строке 72

У меня проблема в конструкторе этого класса.

public function __construct() { 

     $this->submit = isset($_GET['submit'])? 1 : 0; 
     $this->errors = array(); 
     //$this->product_id = $this->filter($_GET['product_id']); 
     $this->name = $this->filter($_GET['name']); 
     $this->description = $this->filter($_GET['description']); 
     $this->cost = $this->filter($_GET['cost']); 
     $this->numinstock = $this->filter($_GET['numinstock']); 
     //$this->picture = $this->filter($_GET['picture']); 
     $this->type = $this->filter($_GET['type']); 
     $this->file = $_GET['file']; 
     $this->token = $_GET['token']; 
    } 

Эта строка, если быть точным: $ this-> file = $ _GET ['file'];

Это часть того класса, который дает мне ошибку

 public function addNew() { 



    $databaseinst = database:: getinstance(); 
    $conn = $databaseinst->connect(); 




    $query = "INSERT INTO Product (name , description, cost, numinstock, type, image) VALUES ('$this->name', '$this->description', 
    '$this->cost','$this->numinstock', '$this->type', 'images/$this->name')"; 
     //description = '$this->description' cost = '$this->cost' numinstock = '$this->numinstock' picture = '$this->picture' type = '$this->type' 
    $result = $databaseinst->querydb($query); 

    $id = mysql_insert_id(); 

    //upload file 
    if ((($_FILES['$this->file']["type"] == "image/gif") 
    ||($_FILES['$this->file']["type"] == "image/jpeg") 
    ||($_FILES['$this->file']["type"] == "image/pjpeg")) 
    &&($_FILES['$this->file']["type"] < 40000000)) 
    move_uploaded_file($_FILES["$this->file"]["tmp_name"],"images/" . $id.".jpq"); 



     if (false===$result) { 

      $errorno =mysqli_errno($conn); 

      if ($errorno === 1062) 
      { 
    $this->errors[]= "this user already exists on the database. please try signing!"; 
      } 
      else 
      { 
      $this->errors[]= "error creating new user 
      name = '$this->name' description = '$this->description' cost = '$this->cost' numinstock = '$this->numinstock' 
    type = '$this->type' 
      "; 
      } 
    } 


     if($conn == null) 
     { 
     $this->errors[] = "difficulty is being experienced connecting to the server. Please try again in a moment!"; 
     } 

    } 

Это где я получаю вход пользователей:

    <li><b><cart><form method = "get" action=""> 
             <?php 
             printf("<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"4000000\" />"); 
     printf("<p>Name: <input type='text' name=\"name\" id=\"styled\";\"></p>"); 
     printf("<p>Type: <input type='text' name=\"type\" id=\"styled\";\"></p>"); 
     printf("<p>Picture: <input type=\"file\" name=\"file\" id=\"file\" \></p>"); 
     printf("<p>Cost: <input type='text' onkeypress='validate(event)' name=\"cost\" id=\"styled\";\"></input></p>"); 
     printf("<p>Number Instock: <input type='text' onkeypress='validate(event)' name=\"numinstock\" id=\"styled\";\"></p>"); 
        printf("<p>Description: <textarea rows=\"6\" cols=\"200\" name=\"description\" id=\"styled\";\"></textarea></p>"); 
             ?> 
            <p><input type="submit" value="Add Item" name="submitAdd" /> 
             <input type="hidden" name ="token" value="<?= $_SESSION['token']; ?>" 
               /></p></form></cart></b></li> 

Спасибо.

+0

какие линии 70,71 и 72? – Robert

+0

К сожалению, они: if ((($ _FILES ['$ this-> file'] ["type"] == "image/gif") || ($ _ FILES ['$ this-> file'] [ type "] ==" image/jpeg ") || ($ _ FILES ['$ this-> file'] [" type "] ==" image/pjpeg ")) && ($ _ FILES ['$ this- > file '] ["type"] <40000000)) – Paddy

+0

попробуйте изменить двойные кавычки с одним? => $ _FILES ['$ this-> file'] ['type'] – Robert

ответ

0

Не указывайте кавычки около $this->file, когда он используется в качестве индекса.

Смежные вопросы