回去没有给我正确的页面

时间:2019-06-03 17:38:31

标签: php url-routing

我正在使用PHP创建一个网站。 我有一个活动列表,并且有一些过滤器选项。 过滤器选项运行良好,但是当我过滤并转到活动详细信息页面然后返回时。我最终进入主页,但网址仍然正确。

这是我使用过滤器选项时的网址。

 index.php?action=page=activities&dayparts%5B%5D=2

然后,我转到其中一项活动的详细信息页面。然后,我返回到主页,这是URL:

 index.php?action=page=activities&dayparts%5B%5D=2

相同的URL,但我将我重定向回主页。当我不使用过滤器选项时,如果我转到某项活动的详细信息,则不会返回首页。

这是我的HTML的样子:

<form id="form--filter" method="get" action="index.php">
   <input type="hidden" name="page" value="activities" />

这是我的index.php

<?php
session_start();
ini_set('display_errors', true);
error_reporting(E_ALL);

$routes = array(
  'home' => array(
      'controller' => 'Home',
      'action' => 'index'
  ),
  'activities' => array(
      'controller' => 'Activities',
      'action' => 'activities'
  ),
  'activity-detail' => array(
      'controller' => 'Activities',
      'action' => 'detail'
  ),
  'yearly-detail' => array(
    'controller' => 'Activities',
    'action' => 'yearly'
  ),
  'locations' => array(
    'controller' => 'Locations',
    'action' => 'locations'
  ),
  'register' => array(
    'controller' => 'Register',
    'action' => 'register'
  ),
  'tickets' => array(
    'controller' => 'Tickets',
    'action' => 'tickets'
  ),
  'cart' => array(
    'controller' => 'Orders',
    'action' => 'cart'
  ),
  'checkout' => array(
    'controller' => 'Orders',
    'action' => 'checkout'
  )
);

if (empty($_GET['page'])) {
  $_GET['page'] = 'home';
}
if (empty($routes[$_GET['page']])) {
  header('Location: index.php');
  exit();
}

$route = $routes[$_GET['page']];
$controllerName = $route['controller'] . 'Controller';

require_once __DIR__ . '/controller/' . $controllerName . ".php";

$controllerObj = new $controllerName();
$controllerObj->route = $route;
$controllerObj->filter();
$controllerObj->render();

我以某种方式弄乱了地方,但找不到。

0 个答案:

没有答案