Ошибка PHP - BASE_URL - имя пользователя - CodeIgniter - PullRequest
0 голосов
/ 10 ноября 2018

Некоторое время назад я попытался повторно открыть предыдущую работу, но не смог открыть Панель управления XAMPP, я думаю, потому что я переустановил Windows 10. Затем я решил загрузить последние версии XAMPP & CodeIgniter и затем перенести мои предыдущие файлы в новую систему.

Предыдущая CI_VERSION = '3.1.1' - Последняя версия CI_VERSION = '3.1.9' - Предыдущая версия PHP: 7.0.8 - Последняя версия PHP 7.2.3

Когда моя текущая система указывает на страницу «username», на которой создаются имя пользователя и пароль, я получаю следующую ошибку. Эта функция работала нормально в моей предыдущей системе. Похоже, это вызвано разницей между версиями PHP.

Произошла ошибка PHP Серьезность: Предупреждение

Сообщение: использование неопределенной константы BASE_URL - предполагается, что 'BASE_URL' (это приведет к ошибке в будущей версии PHP)

Имя файла: username.php Номер строки: 47

Это строка 47

<form class="form" method="post" action="<?php echo BASE_URL . 'username'; ?>">

Backtrace:

Файл: C: \ xampp \ htdocs \ application \ views \ username.php Линия: 47 Функция: _error_handler Это строка 47 - ">

Файл: C: \ xampp \ htdocs \ application \ controllers \ Username.php Линия: 70 Функция: просмотр Это строка 70 - $ this-> load-> view ('username', $ data);

Файл: C: \ xampp \ htdocs \ index.php Линия: 315 Функция: require_once BASE_URLusername "> Это строка 315 - require_once BASEPATH.'core / CodeIgniter.php ';

Может кто-нибудь посоветовать мне, что мне нужно изменить?

Обновление 1

Единственное место, где я могу найти определение base_url, находится в /config/config.php, который следующий;

$config['base_url'] = 'http://localhost/';

И это не изменилось между моей предыдущей работой и этой текущей системой.

Обновление 2

В Controller Username.php есть функция загрузки

$this->load->helper(array('form', 'url'));

Но я не могу найти ничего в папке помощника, кроме файла индекса.

И снова это не изменилось между моей предыдущей работой и текущей системой.

Ответы [ 4 ]

0 голосов
/ 12 ноября 2018

Я нашел свою проблему. В constants.php моей старой системы есть следующее,

define('BASE_URL', 'http://localhost/');

Я скопировал это в мой текущий файл contants.php, и он работает, то есть я не получаю ошибку.

0 голосов
/ 10 ноября 2018

Я не смог найти константу с именем BASE_URL в последнем исходном коде CodeIgniter. В их документации рекомендуется использовать функцию base_url() для возврата базового URL сайта. https://www.codeigniter.com/user_guide/helpers/url_helper.html?highlight=base_url#base_url

Однако на GitHub было более старое репо, где я мог найти версию CodeIgniter, в которой константа BASE_URL была определена в файле constants.php. https://github.com/assoft/codeigniter/blob/master/application/config/constants.php Вероятно, это было обычной практикой для старых версий.

Итак, в вашем примере вы можете использовать функцию base_url(). Это должно вывести http://www.example.com/username

<form class="form" method="post" action="<?php echo base_url('username'); ?>">

Вы должны импортировать url helper в методе контроллера, соответствующем представлению, которое вы используете.

$this->load->helper('url');

Вам также следует ввести значение для базового URL-адреса в файле application / config / config.php.

$config['base_url'] = 'http://www.example.com';
0 голосов
/ 12 ноября 2018

вы должны определить base_url. Я использую это в заголовочном файле.

 <script>
 var base_url = '<?php echo base_url(); ?>';
 </script>
0 голосов
/ 10 ноября 2018

Константа BASE_URL была определена где-то в старом коде, но не в новом. CodeIgniter не определяет константу с именем BASE_URL, поэтому это было сделано в некотором пользовательском коде. Вероятно, это выглядело примерно так

define('BASE_URL', base_url());

Есть и другие способы получения значения, поэтому главное, чтобы искать это define('BASE_URL',.

Возможные места для поиска - это настроенные версии /config/config.php или /config/constants.php, но есть много других мест, включая базовый контроллер, пользовательскую библиотеку или какой-либо другой пользовательский файл конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...