So I was following this tutorial on how to import Excel file to database using phpspreadsheet but I got a errors like this
Severity: Warning
Message: Undefined array key “import_data_perdana”
Filename: perdana/Perdana.php
Line Number: 168
Backtrace:
File: D:xampphtdocsvobot-cmsapplicationcontrollersperdanaPerdana.php
Line: 168
Function: _error_handler
File: D:xampphtdocsvobot-cmsindex.php
Line: 315
Function: require_once
Severity: Warning
Message: Trying to access array offset on value of type null
Filename: perdana/Perdana.php
Line Number: 168
Backtrace:
File: D:xampphtdocsvobot-cmsapplicationcontrollersperdanaPerdana.php
Line: 168
Function: _error_handler
File: D:xampphtdocsvobot-cmsindex.php
Line: 315 Function:
require_once
Severity: 8192
Message: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated
Filename: perdana/Perdana.php
Line Number: 169
Backtrace:
File: D:xampphtdocsvobot-cmsapplicationcontrollersperdanaPerdana.php
Line: 169
Function: pathinfo
File: D:xampphtdocsvobot-cmsindex.php
Line: 315
Function: require_once
Severity: Warning
Message: Undefined array key “import_data_perdana”
Filename: perdana/Perdana.php
Line Number: 182
Backtrace:
File: D:xampphtdocsvobot-cmsapplicationcontrollersperdanaPerdana.php
Line: 182
Function: _error_handler
File: D:xampphtdocsvobot-cmsindex.php
Line: 315
Function: require_once
Severity: Warning
Message: Trying to access array offset on value of type null
Filename: perdana/Perdana.php
Line Number: 182
Backtrace:
File: D:xampphtdocsvobot-cmsapplicationcontrollersperdanaPerdana.php
Line: 182
Function: _error_handler
File: D:xampphtdocsvobot-cmsindex.php
Line: 315
Function: require_once
Type: TypeError
Message: PhpOfficePhpSpreadsheetReaderBaseReader::load(): Argument
#1 ($filename) must be of type string, null given, called in D:xampphtdocsvobot-cmsapplicationcontrollersperdanaPerdana.php
on line 182
Filename: D:xampphtdocsvobot-cmsvendorphpofficephpspreadsheetsrcPhpSpreadsheetReaderBaseReader.php
Line Number: 161
Backtrace:
File: D:xampphtdocsvobot-cmsapplicationcontrollersperdanaPerdana.php
Line: 182
Function: load
File: D:xampphtdocsvobot-cmsindex.php
Line: 315
Function:require_once
here’s the controller
<?php
defined('BASEPATH') or exit('No direct script access allowed');
require_once APPPATH . 'core/KBP_Controller.php';
require 'vendor/autoload.php';
use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetReaderCsv;
use PhpOfficePhpSpreadsheetReaderXls;
use PhpOfficePhpSpreadsheetReaderXlsx;
class Perdana extends KBP_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('./perdana/MPerdana');
$this->load->model('./fauthz/Users');
$this->load->library('form_validation');
}
public function index()
{
if ($this->fauthz->get_user_id() > 0) {
$data['title'] = 'Perdana';
$this->load->view('vHeader', $data);
$this->load->view('vperdana/vindex', $data);
$this->load->view('vFooter', $data);
}
}
public function importDataPerdana(){
$import_data_perdana=$_FILES['import_data_perdana']['name'];
$extension=pathinfo($import_data_perdana,PATHINFO_EXTENSION);
if($extension=='csv')
{
$reader = new PhpOfficePhpSpreadsheetReaderCsv();
} else if($extension=='xls')
{
$reader = new PhpOfficePhpSpreadsheetReaderXls();
} else
{
$reader = new PhpOfficePhpSpreadsheetReaderXlsx();
}
$spreadsheet=$reader->load($_FILES['import_data_perdana']['tmp_name']);
$sheetdata=$spreadsheet->getActiveSheet->toArray();
echo '<pre>';
print_r($sheetdata);
}
}
and here’s the view
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?>
<div class="content-wrapper">
<section class="content-header">
<selection class="content-body">
<div class="row">
<div class="col-md-12">
<div class="box box-primary" style="min-height: 0px;">
<form id="formImportPerdana" action="<?php echo site_url('/perdana/Perdana/importDataPerdana'); ?>" method="post"></form>
<form action="<?php echo site_url('/perdana/Perdana/tambahData'); ?>" method="post">
<div class="box-body">
<?php if (validation_errors()) : ?>
<div class="alert alert-danger" role="alert">
<?= validation_errors(); ?>
</div>
<?php endif; ?>
<div class="list-content">
<a href="#listone" data-toggle="collapse" aria-expanded="true" aria-controls="listone" class="">Perdana<i class="fa fa-chevron-down"></i></a>
<div class="collapse in" id="listone" aria-expanded="true" style="">
<div class="list-box">
<div class="box-body" style="padding:25px">
<div class="form-group">
<label for="importDataPerdana">Import</label>
<input name="import_data_perdana" id="importDataPerdana" type="file" class="form-control" form="formImportPerdana">
</div>
<div class="form-group">
<label>Operator</label>
<select class="form-control" name="operatorPerdana" id="operatorPerdana" data-live-search="true">
<option value="">--- Pilih Operator ---</option>
<option value="Telkomsel">Telkomsel</option>
<option value="Indosat Ooredoo">Indosat Ooredoo</option>
<option value="Tri">Tri</option>
<option value="XL">XL</option>
<option value="AXIS">AXIS</option>
<option value="Smartfren">Smartfren</option>
</select>
</div>
<div class="form-group">
<label>Nomor</label>
<div class="input-group">
<div class="input-group-addon">
<span>(+62)</span>
</div>
<input class="form-control" type="number" name="nomerPerdana" id="nomerPerdana" placeholder="08129">
</div>
</div>
<div class="form-group">
<label>Harga</label>
<div class="input-group">
<div class="input-group-addon">
<span>Rp.</span>
</div>
<input class="form-control" type="text" name="hargaPerdana" id="hargaPerdana" onkeyup="convertToRupiah(this)" placeholder="10.000">
</div>
</div>
<div class="form-group">
<label>Date:</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" name="date_perdana" id="date_perdana">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="list-content">
<a href="#listtwo" data-toggle="collapse" aria-expanded="false" aria-controls="listtwo" class="collapsed">Pulsa <i class="fa fa-chevron-down"></i></a>
<div class="collapse" id="listtwo" aria-expanded="false" style="height: 0px;">
<div class="list-box">
<div class="box-body" style="padding:25px">
<div class="form-group">
<label>Operator</label>
<select class="form-control" name="operatorPulsa" id="operatorPulsa" data-live-search="true">
<option value="">--- Pilih Operator ---</option>
<option value="Telkomsel">Telkomsel</option>
<option value="Indosat Ooredoo">Indosat Ooredoo</option>
<option value="Tri">Tri</option>
<option value="XL">XL</option>
<option value="AXIS">AXIS</option>
<option value="Smartfren">Smartfren</option>
</select>
</div>
<div class="form-group">
<label>Nomor</label>
<div class="input-group">
<div class="input-group-addon">
<span>(+62)</span>
</div>
<input class="form-control" type="number" name="nomerPulsa" id="nomerPulsa" placeholder="812992">
</div>
</div>
<div class="form-group">
<label>Harga</label>
<div class="input-group">
<div class="input-group-addon">
<span>Rp.</span>
</div>
<input class="form-control" type="text" name="hargaPulsa" id="hargaPulsa" onkeyup="convertToRupiah(this)" placeholder="10.000">
</div>
</div>
<div class="form-group">
<label>Nominal Pulsa</label>
<div class="input-group">
<div class="input-group-addon">
<span>Rp.</span>
</div>
<input class="form-control" type="text" name="nominalPulsa" id="nominalPulsa" onkeyup="convertToRupiah(this)" placeholder="10.000">
</div>
</div>
<div class="form-group">
<label>Date:</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" name="date_pulsa" id="date_pulsa">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="list-content">
<a href="#listthree" data-toggle="collapse" aria-expanded="false" aria-controls="listthree" class="collapsed">Kuota <i class="fa fa-chevron-down"></i></a>
<div class="collapse" id="listthree" aria-expanded="false" style="height: 0px;">
<div class="list-box">
<div class="box-body" style="padding:25px">
<div class="form-group">
<label>Operator</label>
<select class="form-control" name="operatorKuota" id="operatorKuota" data-live-search="true">
<option value="">--- Pilih Operator ---</option>
<option value="Telkomsel">Telkomsel</option>
<option value="Indosat Ooredoo">Indosat Ooredoo</option>
<option value="Tri">Tri</option>
<option value="XL">XL</option>
<option value="AXIS">AXIS</option>
<option value="Smartfren">Smartfren</option>
</select>
</div>
<div class="form-group">
<label>Nomor</label>
<div class="input-group">
<div class="input-group-addon">
<span>(+62)</span>
</div>
<input class="form-control" type="number" name="nomerKuota" id="nomerKuota" placeholder="812992">
</div>
</div>
<div class="form-group">
<label>Harga</label>
<div class="input-group">
<div class="input-group-addon">
<span>Rp.</span>
</div>
<input class="form-control" type="text" name="hargaKuota" id="hargaKuota" onkeyup="convertToRupiah(this)" placeholder="10.000">
</div>
</div>
<div class="form-group">
<label>Nominal Kuota</label>
<div class="input-group">
<div class="input-group-addon">
<span>Rp.</span>
</div>
<input class="form-control" type="text" name="nominalKuota " id="nominalKuota" onkeyup="convertToRupiah(this)" placeholder="10.000">
</div>
</div>
<div class="form-group">
<label>Date:</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control pull-right" name="date_kuota" id="date_kuota">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="box-footer">
<button type="submit" id="simpan" class="btn btn-primary" style="float: right;">Simpan</button>
</div>
</form>
</div>
</div>
</div>
</selection>
</section>
</div>
I’m really new at this, can anybody kind enough to tell me what’s happened and tell me the solution. thank you and I’m so sorry I can’t include the code because stackoverflow keep giving me error