Я думал, что для подключения нужно только в нужном файле прописать:
require_once $base_path.'controller/config.php';
И все будет работать.
Правильно будет перед подключением require, подключить define ( что мне ранее и писали, но я не понимал как это сделать )... Вообщем, так все работает:
Sigmo#ID: Порядок подключения конфигов проверьте. Похоже у вас require_once вызывается раньше чем define(). Константа CONTROLLER - ещё не определена. И считается строкой 'CONTROLLER'.
Начало документа:
<?php require_once CONTROLLER; ?>
Описание константы:
define('CONTROLLER','controller/config.php')
Ошибка все таже
Warning: require_once(E:\OpenServer\OpenServer\domains\myblog2.ru\controller): failed to open stream: Permission denied in E:\OpenServer\OpenServer\domains\myblog2.ru\index.php on line 4
Fatal error: require_once(): Failed opening required 'CONTROLLER' (include_path='.;e:/openserver/openserver/modules/php/PHP-5.6;e:/openserver/openserver/modules/php/PHP-5.6/PEAR/pear') in E:\OpenServer\OpenServer\domains\myblog2.ru\index.php on line 4
То есть в порядке подключения - сперва идет CONTROLLER, потом уже остальное подгружается
bay_ebook: ну тут нужно еще почитать что такое относительный и абсолютный путь к папке/файлу :) тогда поможет.
Это я понимаю. Правильный ведь путь указан. Если разбирать, то выходит следующие:
основная папка-->view-->right-menu.php.
выходит так: <?php include VIEW . '../right-menu.php';?> . Какой-то парадокс, но просто удалил все содержимое с файла right-menu, сохранил, вставил еще раз прежний код - и все заработало. Странный, но приятный глюк))
Вопрос касательно подключения конфига остался. Прописываю в конфиге:
define('CONTROLLER','controller/config.php');
Далее, в файле, где хочу подключить файл ( к примеру на главной странице ), прописываю:
<?php require_once CONTROLLER; ?>
Сохраняю и получаю ошибку:
Warning: require_once(E:\OpenServer\OpenServer\domains\myblog2.ru\controller): failed to open stream: Permission denied in E:\OpenServer\OpenServer\domains\myblog2.ru\index.php on line 3
Fatal error: require_once(): Failed opening required 'CONTROLLER' (include_path='.;e:/openserver/openserver/modules/php/PHP-5.6;e:/openserver/openserver/modules/php/PHP-5.6/PEAR/pear') in E:\OpenServer\OpenServer\domains\myblog2.ru\index.php on line 3
С конфигами разве так нельзя сделать? Дабы удобнее было в дальнейшем все редактировать с одного файла. Что не так указал?
Путь к файлу: E:\OpenServer\OpenServer\domains\myblog2.ru\controller\config.php
Если прописываю, к примеру, TITLE:
define('TITLE','Заголовок');
<?php echo TITLE; ?>
Все работает корректно. Тоже самое и с адресом. Не получается только вот этот конфиг подключить.
NothingMatters: Нужно использовать нормальные шаблонизаторы. Возвращаться в 2000г и пилить шаблоны на инклудах это странно.
А по делу:
использовать абсолютный путь, а не относительный.
Сделать константу VIEW_PATH с полным путем до папки view, и инклудить
include VIEW_PATH . '/right-menu.php';
Спасибо за наводку. Но, к сожалению, это не помогло.
Прописал в отдельном файле контанту define('VIEW','view/');, прописал в sidebar.php так
<?php include VIEW . 'right-menu.php';?>
- по прежнему таже ошибка:
Warning: include(viewright-menu.php): failed to open stream: No such file or directory in E:\OpenServer\OpenServer\domains\myblog2.ru\view\sidebar.php on line 13
Warning: include(): Failed opening 'viewright-menu.php' for inclusion (include_path='.;e:/openserver/openserver/modules/php/PHP-5.6;e:/openserver/openserver/modules/php/PHP-5.6/PEAR/pear') in E:\OpenServer\OpenServer\domains\myblog2.ru\view\sidebar.php on line 13
_Sever_: На сайте WP стоит Nextgen Gallery, ооочень долго грузит галиреи. Хочу перенести все картинки, вместе с описаниями, либо на стандартную, либо на более легкий плагин.
В ручную понты, больше 500 галерей.
Прошу в общем совета.
Скиньте ссылку на сайт, в личку. Возможно просто у Вас отключено кеширование и сжатие. В связи с этим и грузит долго.
Спасибо всем, что помогаете! В админке статьи добавляются. Еще раз спасибо за помощь!
Только после отправки (нажатии на кнопку "Добавить") появляется ошибка. Не понимаю, пока-что, её значение. В файле index.php не обновляется информация в шапке или о чем эта ошибка? Как это можно исправить? И еще один момент.
Ошибка: Warning: Cannot modify header information - headers already sent by (output started at E:\OpenServer\OpenServer\domains\myblog\admin\index.php:13) in E:\OpenServer\OpenServer\domains\myblog\admin\index.php on line 15
index.php:
```
if(isset($_GET['action']))
$action = $_GET['action'];
else
$action = "";
if($action == "add"){
if(!empty($_POST)){
echo "Данные успешно заполнены!".var_dump($_POST)." Статья добавлена, поздравляю!<br>";
Спасибо, ребята! Действительно проглядел подключение к базе в mysqli_real_escape_string. И еще пару моментов подправил. Ошибки пропали.
Теперь такая проблема, после попытки добавить в базу статью:
Incorrect date value: '' for column 'date' at row 1
Не верное значение в 'date' в строке 1, как я понимаю. Что не так?
Вид базы у меня следующий:
1) id
2) title
3) description
4) img
5) alt
6) anons
7) author
8) date
9) show
10) category
Пока-что вставляю через функцию только заголовок, дату, описание и картинку. Заголовок, описание, картинка - это строки. А как дату правильно прописать?
INSERT INTO articles (title, date, description, img) VALUES ('%s','%s','%s','%s')";
Проблема была в том, что прописав в конфиге
define('BASE_PATH', $_SERVER["DOCUMENT_ROOT"]."/");
Я думал, что для подключения нужно только в нужном файле прописать:
И все будет работать.
Правильно будет перед подключением require, подключить define ( что мне ранее и писали, но я не понимал как это сделать )... Вообщем, так все работает:
Всем спасибо за помощь! Вопрос решен.
Пока-что все никак не могу понять эти методы... Добавил в конфиг:
define('BASE_PATH', $_SERVER["DOCUMENT_ROOT"]."/");После чего пишу в нужном мне документе ( чтобы подключить этот файл ) в самом верху
- выдает всю туже ошибку. То есть, выходит, что документ не загружается ( не правильный путь ). Делаю сайт через OpenServer.Сначала должно быть define - определение константы
а потом require_once - её использование.
То есть, перед
define('BASE_PATH', $_SERVER["DOCUMENT_ROOT"]."/");Пробовал прописать в начале define BASE_PATH - так нельзя прописывать. Как тогда вначале указать define и потом только require_once?
Спасибо всем за разъяснения!
Порядок подключения конфигов проверьте.
Похоже у вас require_once вызывается раньше чем define().
Константа CONTROLLER - ещё не определена. И считается строкой 'CONTROLLER'.
Начало документа:
Описание константы:
define('CONTROLLER','controller/config.php')Ошибка все таже
Warning: require_once(E:\OpenServer\OpenServer\domains\myblog2.ru\controller): failed to open stream: Permission denied in E:\OpenServer\OpenServer\domains\myblog2.ru\index.php on line 4
Fatal error: require_once(): Failed opening required 'CONTROLLER' (include_path='.;e:/openserver/openserver/modules/php/PHP-5.6;e:/openserver/openserver/modules/php/PHP-5.6/PEAR/pear') in E:\OpenServer\OpenServer\domains\myblog2.ru\index.php on line 4
То есть в порядке подключения - сперва идет CONTROLLER, потом уже остальное подгружается
ну тут нужно еще почитать что такое относительный и абсолютный путь к папке/файлу :) тогда поможет.
Это я понимаю. Правильный ведь путь указан. Если разбирать, то выходит следующие:
основная папка-->view-->right-menu.php.
выходит так: <?php include VIEW . '../right-menu.php';?> . Какой-то парадокс, но просто удалил все содержимое с файла right-menu, сохранил, вставил еще раз прежний код - и все заработало. Странный, но приятный глюк))
Вопрос касательно подключения конфига остался. Прописываю в конфиге:
define('CONTROLLER','controller/config.php');Далее, в файле, где хочу подключить файл ( к примеру на главной странице ), прописываю:
Сохраняю и получаю ошибку:
Warning: require_once(E:\OpenServer\OpenServer\domains\myblog2.ru\controller): failed to open stream: Permission denied in E:\OpenServer\OpenServer\domains\myblog2.ru\index.php on line 3
Fatal error: require_once(): Failed opening required 'CONTROLLER' (include_path='.;e:/openserver/openserver/modules/php/PHP-5.6;e:/openserver/openserver/modules/php/PHP-5.6/PEAR/pear') in E:\OpenServer\OpenServer\domains\myblog2.ru\index.php on line 3
С конфигами разве так нельзя сделать? Дабы удобнее было в дальнейшем все редактировать с одного файла. Что не так указал?
Путь к файлу: E:\OpenServer\OpenServer\domains\myblog2.ru\controller\config.php
Если прописываю, к примеру, TITLE:
define('TITLE','Заголовок');Все работает корректно. Тоже самое и с адресом. Не получается только вот этот конфиг подключить.
Нужно использовать нормальные шаблонизаторы. Возвращаться в 2000г и пилить шаблоны на инклудах это странно.
А по делу:
использовать абсолютный путь, а не относительный.
Сделать константу VIEW_PATH с полным путем до папки view, и инклудить
Спасибо за наводку. Но, к сожалению, это не помогло.
Прописал в отдельном файле контанту define('VIEW','view/');, прописал в sidebar.php так
- по прежнему таже ошибка:Warning: include(viewright-menu.php): failed to open stream: No such file or directory in E:\OpenServer\OpenServer\domains\myblog2.ru\view\sidebar.php on line 13
Warning: include(): Failed opening 'viewright-menu.php' for inclusion (include_path='.;e:/openserver/openserver/modules/php/PHP-5.6;e:/openserver/openserver/modules/php/PHP-5.6/PEAR/pear') in E:\OpenServer\OpenServer\domains\myblog2.ru\view\sidebar.php on line 13
На сайте WP стоит Nextgen Gallery, ооочень долго грузит галиреи. Хочу перенести все картинки, вместе с описаниями, либо на стандартную, либо на более легкий плагин.
В ручную понты, больше 500 галерей.
Прошу в общем совета.
Скиньте ссылку на сайт, в личку. Возможно просто у Вас отключено кеширование и сжатие. В связи с этим и грузит долго.
Пути не верно были указаны... Так прописал, все заработало:
if($action == "add"){
if(!empty($_POST)){
articles_new($link, $_POST['title'], $_POST['date'], $_POST['description']);
header ("Location: ../admin/index.php");
}else
include ("../views/admin/add.php");
}else{
$articles = articles_all($link);
include("../views/admin/admin_panel.php");
}
Спасибо всем, что помогаете! В админке статьи добавляются. Еще раз спасибо за помощь!
Только после отправки (нажатии на кнопку "Добавить") появляется ошибка. Не понимаю, пока-что, её значение. В файле index.php не обновляется информация в шапке или о чем эта ошибка? Как это можно исправить? И еще один момент.
Ошибка: Warning: Cannot modify header information - headers already sent by (output started at E:\OpenServer\OpenServer\domains\myblog\admin\index.php:13) in E:\OpenServer\OpenServer\domains\myblog\admin\index.php on line 15
index.php:
```
if(isset($_GET['action']))
$action = $_GET['action'];
else
$action = "";
if($action == "add"){
if(!empty($_POST)){
echo "Данные успешно заполнены!".var_dump($_POST)." Статья добавлена, поздравляю!<br>";
articles_new($link, $_POST['title'], $_POST['date'], $_POST['description']);
header ("Location: in``../views/admin/index.php");
}else echo "Пока-что все пусто...";
include ("../views/admin/add.php");
}else{
$articles = articles_all($link);
include("../views/admin/admin_panel.php");
}
```
Спасибо, ребята! Действительно проглядел подключение к базе в mysqli_real_escape_string. И еще пару моментов подправил. Ошибки пропали.
Теперь такая проблема, после попытки добавить в базу статью:
Incorrect date value: '' for column 'date' at row 1
Не верное значение в 'date' в строке 1, как я понимаю. Что не так?
Вид базы у меня следующий:
1) id
2) title
3) description
4) img
5) alt
6) anons
7) author
8) date
9) show
10) category
Пока-что вставляю через функцию только заголовок, дату, описание и картинку. Заголовок, описание, картинка - это строки. А как дату правильно прописать?
INSERT INTO articles (title, date, description, img) VALUES ('%s','%s','%s','%s')";
Сделал проверки:
if(isset($_GET['action']))
$action = $_GET['action'];
else
$action = "";
if($action == "add"){
if(!empty($_POST)){
echo "Данные успешно заполнены!".var_dump($_POST)." Статья добавлена, поздравляю!<br>";
articles_new($link, $_POST['title'], $_POST['date'], $_POST['description']);
header ("Location: in``dex.php");
}else echo "Пока-что все пусто...";
var_dump($_GET); и var_dump($_REQUEST); выводит:
array(1) { ["action"]=> string(3) "add" }
Request Method:POST
Content-Type:text/html; charset=UTF-8
title:asdasdasd
date:2017-06-14
description:asdad
Вроде все отправляется. Все, по идеи, должно работать.
Пришел к выводу, что не работает сама функция. Но не могу понять как произвести проверку.
Сама функция:
function articles_new($link, $title, $date, $description){
$title = trim($title);
$description = trim($description);
$t = "INSERT INTO articles (title, date, description) VALUES ('%s','%s','%s')";
$query = sprintf($t, mysqli_real_escape_string($link, $title),mysqli_real_escape_string($link,$date),mysqli_real_escape_string($description));
$result = mysqli_query($link, $query);
if (!result)
die(mysqli_error($link));
return true;
}
Взять, к примеру, две переменные тайтл и дескрипш:
$title = trim($title);
$description = trim($description);
и после $title = trim($title); выводим echo "Проверка заголовка"? И как проверить sprintf и переменную $t?