2016-06-24 2 views
0

Я не вижу ошибок в этой программе, кто-нибудь может это объяснить!Неустранимая ошибка: вызов неопределенной функции

<?php 

      if(isset($_POST['submit'])){ 
       if(isset($_FILES['image_up']['tmp_name']))$image = $_FILES['image_up']['tmp_name']; 
       if(isset($_FILES['image_up']['name']))$imageName = $_FILES['image_up']['name']; 

       $image = addslashes($image); 
       $imageName = addslashes($imageName); 
       $image = file_get_contents($image); 
       $image = base64_encode($image); 
       $upload=uploadimage($image, $imageName); 



        function uploadimage($image,$imageName){ 
         //Connect to DB 
         $link = mysqli_connect('localhost','root',''); 
         $selectdb = mysqli_select_db($connect2db, 'test_one'); 
         if(!$selectdb)echo "Something Went wrong_DB try again later"; 

         $query = "insert into upload_image(name,Image)values('$imageName','$image')"; 
         $result = mysqli_query($link, $query); 

         if(!$result) echo"Error Uploading"; 
         else echo"Uploaded Successfully"; 


        } 
        displayImage(); 

      } 
      else echo"Select a File to Upload"; 

        function displayImage(){ 
         $link = mysqli_connect('localhost','root',''); 
         $selectdb = mysqli_select_db($connect2db, 'test_one'); 
         if(!$selectdb)echo "Something Went wrong_DB try again later"; 

         $query = "selct * from upload_image"; 
         $result = mysqli_query($link, $query); 
         $row = mysqli_fetch_array($result); 

         echo '<img width="300" height="300" src=data:Image;base64,'.$row[3].'>'; 
        } 

     ?> 

Я получаю фатальную ошибку, как: -

Undefined function uploadimage()

может кто-нибудь объяснить это ???

И это макет таблицы, который я создал в моей базе данных

Изображения Id Имени

+2

Перемещения 'функция uploadimage' из ряда if-block – tkausl

+1

Определить все ваши функции перед логическим кодом ... –

ответ

0

Переместить функцию вне от if(isset($_POST['submit'])){ заявления.

<?php 

    if(isset($_POST['submit'])){ 
     if(isset($_FILES['image_up']['tmp_name']))$image = $_FILES['image_up']['tmp_name']; 
     if(isset($_FILES['image_up']['name']))$imageName = $_FILES['image_up']['name']; 

     $image = addslashes($image); 
     $imageName = addslashes($imageName); 
     $image = file_get_contents($image); 
     $image = base64_encode($image); 
     $upload=uploadimage($image, $imageName); 




      displayImage(); 

    } 
    echo "Select a File to Upload"; 

    function displayImage(){ 
     $link = mysqli_connect('localhost','root',''); 
     $selectdb = mysqli_select_db($connect2db, 'test_one'); 
     if(!$selectdb)echo "Something Went wrong_DB try again later"; 

     $query = "selct * from upload_image"; 
     $result = mysqli_query($link, $query); 
     $row = mysqli_fetch_array($result); 

     echo '<img width="300" height="300" src=data:Image;base64,'.$row[3].'>'; 
    } 


    function uploadimage($image,$imageName){ 
     //Connect to DB 
     $link = mysqli_connect('localhost','root',''); 
     $selectdb = mysqli_select_db($connect2db, 'test_one'); 
     if(!$selectdb)echo "Something Went wrong_DB try again later"; 

     $query = "insert into upload_image(name,Image)values('$imageName','$image')"; 
     $result = mysqli_query($link, $query); 

     if(!$result)  
       echo"Error Uploading"; 
     else 
       echo "Uploaded Successfully"; 


    } 


?> 
+0

Я получил некоторые переменные, также изменил форму $ connect2DB на $ link, но im получил другую ошибку ** mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result, boolean ** PS: ошибка в строке 59 –

0

Вам необходимо определить все ваши функции внизу страницы вне любых условий, если они оставлены. Вот измененный код:

<?php 

if (isset($_POST['submit'])) { 
    if (isset($_FILES['image_up']['tmp_name'])) 
     $image = $_FILES['image_up']['tmp_name']; 
    if (isset($_FILES['image_up']['name'])) 
     $imageName = $_FILES['image_up']['name']; 

    $image = addslashes($image); 
    $imageName = addslashes($imageName); 
    $image = file_get_contents($image); 
    $image = base64_encode($image); 
    $upload = uploadimage($image, $imageName);  

    displayImage(); 
} 
else 
{ 
    echo "Select a File to Upload"; 
} 

function uploadimage($image, $imageName) { 
    //Connect to DB 
    $link = mysqli_connect('localhost', 'root', ''); 
    $selectdb = mysqli_select_db($connect2db, 'test_one'); 
    if (!$selectdb) 
     echo "Something Went wrong_DB try again later"; 

    $query = "insert into upload_image(name,Image)values('$imageName','$image')"; 
    $result = mysqli_query($link, $query); 

    if (!$result) 
     echo "Error Uploading"; 
    else 
     echo "Uploaded Successfully"; 
} 

function displayImage() { 
    $link = mysqli_connect('localhost', 'root', ''); 
    $selectdb = mysqli_select_db($connect2db, 'test_one'); 
    if (!$selectdb) 
     echo "Something Went wrong_DB try again later"; 

    $query = "selct * from upload_image"; 
    $result = mysqli_query($link, $query); 
    $row = mysqli_fetch_array($result); 

    echo '<img width="300" height="300" src=data:Image;base64,' . $row[3] . '>'; 
} 
?> 
0

вы зафиксируете вызвать uploadimage функции до ее объявления

$upload=uploadimage($image, $imageName); 
     function uploadimage($image,$imageName){ 

функцию Move декларации до любой PHP логики кода

+0

Я получил некоторые переменные, также изменил форму $ connect2DB на $ link, но im получил другую ошибку mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result, boolean PS: ошибка находится в строке 59 –

+0

use '$ result = mysqli_query ($ link, $ query); var_dump (mysqli_error ($ link)); ' для отслеживания ошибки, и вы увидите: ** У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с 'selct * from upload_image' в строке 1 '(длина = 171) ** Так что измените '$ query =" selct * from upload_image "; ' - $ query =" select * from upload_image "; –

+0

Спасибо, человек спит кодирования! –

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