Grep

Рейтинг
63
Регистрация
24.11.2010

Проблема была в том, что прописав в конфиге

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';

Всем спасибо за помощь! Вопрос решен.

Пока-что все никак не могу понять эти методы... Добавил в конфиг:

define('BASE_PATH', $_SERVER["DOCUMENT_ROOT"]."/");

После чего пишу в нужном мне документе ( чтобы подключить этот файл ) в самом верху

<?php require_once BASE_PATH; ?>
- выдает всю туже ошибку. То есть, выходит, что документ не загружается ( не правильный путь ). Делаю сайт через OpenServer.
Sigmo#ID:
Сначала должно быть define - определение константы
а потом require_once - её использование.

То есть, перед

define('BASE_PATH', $_SERVER["DOCUMENT_ROOT"]."/");

Пробовал прописать в начале define BASE_PATH - так нельзя прописывать. Как тогда вначале указать define и потом только require_once?

Спасибо всем за разъяснения!

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 галерей.

Прошу в общем совета.

Скиньте ссылку на сайт, в личку. Возможно просто у Вас отключено кеширование и сжатие. В связи с этим и грузит долго.

Пути не верно были указаны... Так прописал, все заработало:

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?

123 4
Всего: 36