Какая БД может быть установлена в файлы хостинга?

S
На сайте с 28.01.2016
Offline
44
#21
wanick:


сделайте хотябы так:
$result = sqlite_unbuffered_query($db, 'SELECT * FROM sample WHERE url="'.$u.'"');

Вот спасибо) Нагрузка вернулась к норме) Только осваиваю эту БД

Параметр 'url' у меня всегда уникальный, так что индекс пока не нужен.

Осталась проблема с выводом php

У меня все запаковано в два столбца

url='konfeta/shoko/index.html'

page = '<html><head><><?php echo $banner; ?>' (html страница целиком)

Когда страница физически существовала php работал в ней, сейчас <?php echo $banner; ?> выводится в виде текста в исходном коде.

W
На сайте с 18.09.2006
Offline
86
#22
seovisor:
Параметр 'url' у меня всегда уникальный, так что индекс пока не нужен.

Индекс в вашем случае нужен не для того чтобы поддерживать уникальность - а для того чтобы искалась запись быстрее, хотя и с уникальностью вам поможет избежать проблем в дальнейшем

Mik Foxi
На сайте с 02.03.2011
Offline
1218
#23
livetv:
Или так:
<?=$row['page']; ?>

Не надо так делать. Лучше привыкать с полному синтаксису. Ваш вариант может на многих хостингах не работать.

---------- Добавлено 23.08.2016 в 00:37 ----------

А чего sqlite2 а не sqlite3 осваиваете?

Антибот, антиспам, веб фаервол, защита от накрутки поведенческих: https://antibot.cloud/ (8 лет на защите сайтов). Форум на замену серчу: https://foxi.biz/
W
На сайте с 18.09.2006
Offline
86
#24
seovisor:
page = '<html><head><?php echo $banner; ?>' (html страница целиком)

Ну а тут тоже все понятно , почему у вас текстом выводится <?php echo $banner; ?>, вы же его сохранили в базу как текст и никак дополнительно не обработали

Если самый простой вариант то вам перед выводом вот тут

if ($row['url'] == $u) {echo $row['page'];goto a;}

сделать замену

if ($row['url'] == $u) {
echo str_replace('<?php echo $banner; ?>', $banner, $row['page']);
goto a;
}

А вообще я бы порекомендовал вам заменить это (<?php echo $banner; ?>) в самой базе, и хранить там например такой текст __BANNER__ или __BANNER_1__ и т.д. и менять их точно также str_replace

M
На сайте с 04.12.2013
Offline
223
#25
seovisor:

/*даем прямой доступ к физически существующим файлам*/
if($_SERVER['REQUEST_URI'] == '/robots.txt') {include('robots.txt'); die;}
if($_SERVER['REQUEST_URI'] == '/sitemap.xml') {include('sitemap.xml'); die;}

Птец. У вас же есть условие !-f. Статик лучше просто читать, а не исполнять: readfile().


if($u == '') $u = 'index.htm'; // запросили главную

В базе можно и пустой url, идентифицирующий главную, хранить.


$result = sqlite_unbuffered_query($db, 'SELECT * FROM sample'); //получаем данные из БД
b:
while ($row = sqlite_fetch_array($result)) { //ищем нужный нам урл
if ($row['url'] == $u) {echo $row['page'];goto a;} // когда находим нужный нам урл выводим содержисое страницы
}
$u = 'index.htm'; goto b; //если страница не найдена посылаем на главную (404 потом сделаю)

Это полный птец. Про первую команду уже сказали. Но тут еще синий цикл в случае проблемы с БД наклевывается.


На index.php отправляю все запросы в .htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]';

Не все. У вас условия есть. Второе, возможно, лишнее. QSA здесь без надобности.


У меня ведь поле url в БД уникальное.

UNIQUE?

Может таблицы в БД разбивать. Но она у меня в БД одна до 200мб.

Вам срочно рекомендуется хотя бы что-то такое.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
L
На сайте с 10.02.2015
Offline
261
#26
foxi:
Не надо так делать. Лучше привыкать с полному синтаксису. Ваш вариант может на многих хостингах не работать.

Я таких хостингов не встречал.

Да и в PHP5.4+ это работает независимо от настройки short_open_tag

M
На сайте с 04.12.2013
Offline
223
#27
livetv:
Я таких хостингов не встречал.
Да и в PHP5.4+ это работает независимо от настройки short_open_tag

Плюсую. Тоже хотел написать это замечание, но за разбором выше забыл.

---------- Добавлено 23.08.2016 в 01:56 ----------

miketomlin:

Может таблицы в БД разбивать. Но она у меня в БД одна до 200мб.

Вам срочно рекомендуется хотя бы что-то такое.
Кстати, один простецкий модуль и весь контент можно тянуть из файлов на диске, оставив в базе только индексную инфу. Можно добавить флаг «исполняемый», чтобы не возникало проблем со вставками вроде <?= $row['page'] ?> и любыми другими. У нас такое есть в одном сервисе. Вообще же в движке есть штатные средства для этого – шаблоны.
Maximus_XXX
На сайте с 07.10.2013
Offline
41
#28
DenisVS:
sqlite подойдёт?

Только там ограничение при большем количестве подключений, если сайт большой то не вариант.

Быстрый, недорогой и надёжный хостинг VPS (http://goo.gl/MwGPO7) - от 5$/мес. Так же, специально для Вас, купон на скидку 25% за первый платеж: JMLUfAJD1s
S
На сайте с 28.01.2016
Offline
44
#29

Взял VPS решил включить SQLite

В php.ini нашел строки

[sqlite]

;http://php.net/sqlite.assoc-case
;sqlite.assoc_case = 0

[sqlite3]
;sqlite3.extension_dir =

Расскомментировал, перегрузил - ничего.

Попробовал добавить это

extension=php_pdo.dll

extension=php_pdo_sqlite.dll
extension=php_sqlite.dll

Тоже без результата. PHP Version 5.4.45-0+deb7u5

Что не так?

Mik Foxi
На сайте с 02.03.2011
Offline
1218
#30

seovisor, php.ini трогать не надо. тем более прописывать виндовсковские .dll

SQLite надо устанавливать, а не "включать" и кроме собственно sqlite не забыть поставить php-sqlite

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий