2016-02-28 6 views
0

У меня есть php-код, который имеет операторы if (для экспорта в формате pdf, для экспорта в качестве excel и для последнего, чтобы загрузить excel).выполнить другой php-файл в пределах одного php внутри цикла

Первые два файла для загрузки pdf и excel работают нормально, когда я нажимаю кнопку, чтобы запустить третий оператор if, он показывает мне пустую страницу, хотя код для нее отлично работает, когда я запускаю его в отдельности.

Мой PHP код ниже:

<?php 
define('FPDF_FONTPATH','/Applications/XAMPP/xamppfiles/lib/php'); 
if (isset($_POST['pdf'])) { 
    //code// 
} 
} 
if (isset($_POST['excel'])) { 
    //code// 

} 

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

exec('imp.php'); 

} 
?> 

Файл imp.php, который я пытаюсь запустить это:

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
$db_host = 'localhost'; 
$db_user = 'root'; 
$db_pwd = ''; 

$database = 'mydatabase'; 
$table = 'demo'; 

if ([email protected]_connect($db_host, $db_user, $db_pwd)) 
    die("Can't connect to database"); 

if (!mysql_select_db($database)) 
    die("Can't select database"); 


    if(isset($_POST['submit'])) 
    { 
     $fname = $_FILES['sel_file']['name']; 
     echo 'upload file name: '.$fname.' '; 
     $chk_ext = explode(".",$fname); 

     if(strtolower(end($chk_ext)) == "csv") 
     { 

      $filename = $_FILES['sel_file']['tmp_name']; 
      $handle = fopen($filename, "r"); 

      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
      { 
       $sql = "INSERT into demo(orders,quantity,country,dates,comment) values('$data[0]','$data[1]','$data[2]', '$data[3]','$data[4]')"; 
       mysql_query($sql) or die(mysql_error()); 
      } 

      fclose($handle); 
      echo "Successfully Imported"; 

     } 
     else 
     { 
      echo "Invalid File"; 
     } 
    } 

    ?> 
    <h1>Import CSV file</h1> 
    <form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post' enctype="multipart/form-data"> 
     Import File : <input type='file' name='sel_file' size='20'> 
     <input type='submit' name='submit' value='submit'> 
    </form 
+0

Возможно, по крайней мере, это должно быть 'exec ('php imp.php');'? И btw - вы ничего не увидите в браузере, когда 'exec()' –

+0

все еще показывает мне пустой экран, вместо того, чтобы показывать содержимое imp.php – compcrk

+0

, что я должен использовать вместо exec(), а? – compcrk

ответ

1

exec функция выполняет файл на сервере. Вы ничего не увидите, если вы явно не получите результат exec переменной и выведите его.

Но, как я вижу - вы просто хотите включить некоторые PHP-файл в другой - для этого являются include и require должны:

include '/path/to/file.php'; 

Этого будет достаточно.