Проблема была в том, что прописав в конфиге
define('BASE_PATH', $_SERVER["DOCUMENT_ROOT"]."/");
Я думал, что для подключения нужно только в нужном файле прописать:
require_once $base_path.'controller/config.php';
И все будет работать.
Правильно будет перед подключением require, подключить define ( что мне ранее и писали, но я не понимал как это сделать )... Вообщем, так все работает:
$base_path = $_SERVER["DOCUMENT_ROOT"]."/";define("BASE_PATH", $base_path);require_once $base_path.'controller/config.php';
Всем спасибо за помощь! Вопрос решен.
Пока-что все никак не могу понять эти методы... Добавил в конфиг:
После чего пишу в нужном мне документе ( чтобы подключить этот файл ) в самом верху
<?php require_once BASE_PATH; ?>
То есть, перед
Пробовал прописать в начале define BASE_PATH - так нельзя прописывать. Как тогда вначале указать define и потом только require_once?
Спасибо всем за разъяснения!
Начало документа:
<?phprequire_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, потом уже остальное подгружается
Это я понимаю. Правильный ведь путь указан. Если разбирать, то выходит следующие:
основная папка-->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; ?>
Все работает корректно. Тоже самое и с адресом. Не получается только вот этот конфиг подключить.
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
Скиньте ссылку на сайт, в личку. Возможно просто у Вас отключено кеширование и сжатие. В связи с этим и грузит долго.
Пути не верно были указаны... Так прописал, все заработало:
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 = "";
echo "Данные успешно заполнены!".var_dump($_POST)." Статья добавлена, поздравляю!<br>";
header ("Location: in``../views/admin/index.php");
}else echo "Пока-что все пусто...";
Спасибо, ребята! Действительно проглядел подключение к базе в 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')";
Сделал проверки:
header ("Location: in``dex.php");
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); выводим echo "Проверка заголовка"? И как проверить sprintf и переменную $t?