Пользовательская область администратора Opencart — & gt; неверный сеанс токена

Ответы, которые я получил на мой последний вопрос (Пользовательская область администрирования Opencart -> запросы, показывающие только первую запись таблиц) были очень полезны, поэтому я решил вернуться за советом относительно того же проекта.

Всякий раз, когда я перенаправляю на пользовательскую страницу / контроллер (например, /admin/index.php?route=custom/verkopen, исходящий из /admin/index.php?route=custom/hoofdpagina), меня просят снова войти в систему из-за неверный сеанс токена. Я пытался найти его в Google и выяснить это для себя, но решения, которые я нашел, либо неполны, либо не работают для меня.

Вот мой код снова:

Главный контроллер:

<?php

class Controllercustomhoofdpagina extends Controller{
public function index() {

$template="custom/hoofdpagina.tpl"; // .tpl location and file

$this->load->model('custom/hoofdpagina');

$this->template = ''.$template.'';
$this->response->setOutput($this->render());
}

}

?>

Подстраница контроллера:

   <?php

class Controllercustomverkopen extends Controller{public function Index(){

$template="custom/verkopen.tpl"; // .tpl location and file

$this->load->model('custom/hoofdpagina');

$this->data['verkopen'] =                                             $this->model_custom_hoofdpagina->verkopenLijst();

$this->template = ''.$template.'';
$this->response->setOutput($this->render());

}

public function verkopenTonen(){
$this->load->model('custom/hoofdpagina');
$verkopen = $this->model_custom_hoofdpagina->verkopenLijst();
return $verkopen;
}

}?>

Модель:

<?php
class Modelcustomhoofdpagina extends Model {

public function verkopenLijst() {

$query = $this->db->query("SELECT * FROM `shop_order_product`");
if($query->num_rows > 0){
$verkopen = array();
foreach($query->rows as $result){
$verkopen[] = array(
'name' => $result['name'],
'model'      => $result['model'],
'quantity'      => $result['quantity'],
'price'     => $result['price'],
'total'     => $result['total'],
'tax'     => $result['tax']);

}
return $verkopen;
}

}

public function klantenLijst() {$query = $this->db->query("SELECT * FROM `shop_customer`");

if($query->num_rows > 0){
$klanten = array();
foreach($query->rows as $result){
$klanten[] = array(
'first name' => $result['firstname'],
'last name'      => $result['lastname'],
'email'      => $result['email'],
'telephone'     => $result['telephone'],
'date added'     => $result['date_added']
);

}
return $klanten;
}
}

public function productenLijst() {$query = $this->db->query("SELECT * FROM `shop_product_description`");

if($query->num_rows > 0){
$producten = array();
foreach($query->rows as $result){
$producten[] = array(
'name' => $result['name'],
'description'      => $result['description']
);

}
return $producten;
}
}

public function productenAanpassen() {

$this->request->post['name'];
$this->request->post['text'];
$this->request->post['description'];
$this->request->post['price'];}

}

?>

Посмотреть основной:

  <div class="container-fluid">

<div class = "row">
<div class = "col-xs-12">
<div class = "head font-effect-neon"> Admin Area </div>
</div>
</div>

<div class="row">
<div class="col-xs-3">
<div class="button">
<a href="http://maureen.codehub.be/ew/admin/index.php?route=custom/verkopen"><button class = "buttonverkopen font-effect-neon" name = "verkopen"> Verkopen </button></a>
</div>
</div>

<div class="col-xs-3">
<div class="button">
<a href="http://maureen.codehub.be/ew/admin/index.php?route=custom/klanten"><button class = "buttonklanten font-effect-neon" name = "klanten"> Klanten </button></a>
</div>
</div>

<div class="col-xs-3">
<div class="button">
<a href="http://maureen.codehub.be/ew/admin/index.php?route=custom/producten"><button class = "buttonproducten font-effect-neon" name = "producten"> Producten </button></a>
</div>
</div>

<div class="col-xs-3">
<div class="button">
<a href="http://maureen.codehub.be/ew/admin/index.php?route=custom/aanpassen"><button class = "buttonaanpassen font-effect-neon" name = "aanpassen"> Aanpassen </button></a>
</div>
</div>
</div><div class = "row">
<div class = "col-xs-4">
<div class = "credits font-effect-neon"> Eindwerk </div>
</div>
<div class = "col-xs-4">
<div class = "credits font-effect-neon"> VDO Webontwikkeling 2014-2015 </div>
</div>
<div class = "col-xs-4">
<div class = "credits font-effect-neon"><span class="glyphicon glyphicon-copyright-mark"> Maureen van Eede </span></div>
</div>

Посмотреть подстраницу:

<div class="container-fluid">

<div class = "row">
<div class = "col-xs-12">
<div class = "head font-effect-neon"> Verkopen </div>
</div>
</div>

<div class="row">
<div class="col-xs-12">
<div class = "php1"> <pre>
<?php
foreach($verkopen as $verkoop){
echo '<p>';
echo 'Product:'. $verkoop['name'].'<br />';
echo 'Prijs:'. $verkoop['price'];
echo '</p>';
}
?>
</pre>
</div>
</div>
</div>

Любая помощь будет принята с благодарностью.

0

Решение

Когда вы нажимаете на модуль через браузер, вы добавляете токен сеанса в URL в виде строки запроса,
как это 'token=' . $this->session->data['token'],
Если токен сеанса отсутствует в URL, он никогда не перейдет в ваш пользовательский модуль.

1

Другие решения

Я столкнулся с этой проблемой при создании собственного модуля.
Самый простой способ решить эту проблему —
добавьте $ _GET [‘token’] в файл шаблона.
Таким образом, всякий раз, когда администратор щелкает ссылку на пользовательский модуль, токен будет добавляться к URL-адресу, указанному на панели инструментов панели администратора. В целях предотвращения неверный сеанс токена.

<li><a href="<?php echo DOMAIN_API_SYNC; ?>&token=<?php echo $_GET['token']; ?>" <i class="fa fa-key"></i> <span><?php echo "API ACCESS"; ?></span></a></li>

В config.php

// URL
define('DOMAIN_API_SYNC', 'Domain_Name.org/admin/index.php?route=yourdirectory/your_file');
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector