126

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, уважаемый Hanut...
Что-то я совсем запутался, ещё и Интернет Эксплоер добавился, в общем из-за него и встала задача...
Есть: Цитата из стихов, лежащая в базе вместе с другими и имеющая вид, например: <p class="container">Не давай мне ничего на память:<br>Знаю я, как память коротка.</p>
В основном виде она выводится по классу:
.container{font-size:16px; width:auto; margin:0 0 0 50px; padding:0 0 0 50px; /*Выравнивание стихов по центру!*/text-align: left;}
Такой Отступ сделал для красоты вида, и потому что " margin:0 auto; padding:0 auto;" глючит на Интернет Экслоере...
Дивов нету, то есть, я не привязывал цитаты к дивам...
Вопрос: Как Вывести данный стих с прописанным классом, только отключить или изменить свойства?.. Не могу прицепить класс к стилю с ИД=цит...(((
Дополнение: сделал такой стиль: #zit {margin:0 3px 0 7px; padding:0; font-size:14px; text-align: left; text-indent:15px;}, но класс "контейнер" его перебивает... А есть и обычные "p", которые по ID=zit выводятся нормально правильно...
Что-то делаю не так, но пойму, что...(((

127

Re: Подскажите с РНР, учу по книжке...

Freeware
Если я правильно понял, то можно воспользоваться наследованием.

Вложите все <p> в слой <div class="parent"> и пропишите в css такое условие:
div.parent p.container {
    color: red;
}

Помните, что id - это идентификатор и он должен быть уникальным, поэтому использовать его надо осмотрительно. Два элемента с одинаковым id на странице - это ошибка.

128

Re: Подскажите с РНР, учу по книжке...

То есть, потом мне нужно будет просто использовать:
Например:
$out['zitatka'] .= "<p class=parent>".$f['zitata']."</p><br><p><i>".$f['authors']."</i></p>"; ?..
И при этом классу "parent" прописать те свойства, которые у меня были в ИД=цит?..
И оба "p" уже будут с одним стилем?..

129

Re: Подскажите с РНР, учу по книжке...

Freeware
Должно быть так:

<div class="parent">
  <p>Цитата 1</p>
  <p>Цитата 2</p>
</div>

Применив стиль:
[mono]div.class p { color: red; }[/mono]
Мы сделаем все цитаты, внутри слоя с классом parent, красного цвета.

130

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, уважаемый Hanut...
С ЦСС немного разобрался, продолжаю доделывать сайт (www.kuschevka.ru), недоработок ещё много...
Возникли новые вопросы:
1. Причина: Неудобно то, что две разных регистрации.
Вопрос: Стоит ли держать на одном сайте и сам сайт, и доску объявлений?.. И как удобнее сделать регистрацию: у сайта регистрация с базой, а у доски на файлах, как удобнее совместить, чтобы была одна для всего?..
2. Причина: Не получается вывести сообщения о проверке и об отправке из формы обратной связи в общий шаблон (если сделать echo или print, то выводятся на новую страницу (без шаблона).
Вопрос: Захотелось сделать форму обратной связи, все найденные скрипты идут как бы с отдельным файлом для проверки и отправки, а сделать функцией не получается, не могу вывести сообщения (проверочные, как при регистрации) в индекс.пхп шаблоне...((( В книгах советов по обратной связи что-то не нашёл... Можете подсказать, как положено правильно делать обратную связь, при выводе формы в общий шаблон?.. Или всё же делать с отдельным файлом?..
Спасибо...

131

Re: Подскажите с РНР, учу по книжке...

Freeware
По регистрации, очевидно, что надо делать регистрацию зависимой от базы данных.

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

132

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, уважаемый Hanut...
Причина: В связи с долгой загрузкой картинок в галерее, хочу сделать сжатие фотографий, для превьюшек... Нашёл несколько похожих скриптов... Но там используется способ с папкой, в которую заносятся изменённые файлы с изменёнными названиями... И уже от этих изменённых создаётся изображение...
Вопрос: Так как названия моих фотографий лежат в базе, нужно ли названия превьюшек вносить в базу?.. И как тогда потом удалять их после использования?.. Или внести заранее уже готовые названия в базу (рядом с основными названиями)???
Спасибо...

133

Re: Подскажите с РНР, учу по книжке...

Freeware
Если скрипт генерирует новые имена файлов, то их надо как-то связать с существующими картинками. Думаю для такой связи можно завести отдельное поле в таблице содержащей данные основной картинки.

Проблем удаления не вижу, все делается так же, как и с обычными картинками, только теперь надо удалить еще и маленькую копию.

134

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, уважаемый Hanut...
Возникла мысль сделать вывод статистики для админки (наконец-то решил сделать отдельную админку, потому что вводить всё через базу становится неудобнее и неудобнее...)))
Следовательно вопрос: Есть ли варианты получить количество строк из нескольких таблиц одним запросом?.. Так, чтобы потом их вывести каждый к своему названию?.. Например, количество статей в базе -- 10, количество фотографий -- 15 и тому подобное...
Спасибо...

135

Re: Подскажите с РНР, учу по книжке...

Freeware
Подсчет зависит от группировки [mono]GROUP BY[/mono]. В некоторых случаях можно обойтись одним запросом, в некоторых одним не получится, все зависит от структуры таблиц и того что надо подсчитать. Самый простой способ - это [mono]COUNT(*)[/mono].

SELECT COUNT(*) FROM `table`;

Но при группировке можно подсчитать значения более чем одного поля.

SELECT COUNT(`img`), COUNT(`text`) FROM `table`
WHERE `img` IS NOT NULL AND `text` IS NOT NULL
GROUP BY `field`;

136

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, уважаемый Hanut,
Вопрос: А как можно использовать переменную для внешней функции, если эта переменная определяется внутри цикла?..
Например, мне нужно использовать название файла, которое определяется внутри цикла while... Внутри цикла инклуд функции не работает, а снаружи ругается, что не видит файл... При этом, в данном цикле, кроме определения названий производится ещё и вывод нужных файлов...
Спасибо...

137

Re: Подскажите с РНР, учу по книжке...

Freeware
include() работает внутри любой конструкции, включая while. Смотрите логи Apache, чтобы определить какой файл ищется.

138

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, уважаемый Hanut,
принцип действия скрипта немного понял, на простом примере с выводом сразу в браузер работает...
А когда стало нужно записывать уменьшенные файлы в папку, пишет вот такую ошибку...

Warning: imagejpeg() [function.imagejpeg]: Unable to open 'http://www.kuschevka.ru/galleryon/prevj … a_50_2.jpg' for writing: Invalid argument in Z:\home\kuschevka.ru\www\galleryon\ir.php  on line 8

Ругается на вот эту строку: imagejpeg($im1,$outfile,$quality); где $outfile путь до папки, куда нужно сохранять готовые файлы...

Путь указываю в основном файле внутри цикла такой записью:
include_once ('ir.php');   
imageresize("http://www.kuschevka.ru/galleryon/prevju/".$r["img_name"],"http://www.kuschevka.ru/galleryon/gallery/".$r["img_name"],25,75);

Можете подсказать, где косяк?..

139

Re: Подскажите с РНР, учу по книжке...

Можете не отвечать, ошибку нашёл...

Неправильно указаны пути на локалхосте, нужно было просто galleryon/prevju/".$r["img_name"] и galleryon/gallery/".$r["img_name"]...

Спасибо...

140

Re: Подскажите с РНР, учу по книжке...

Freeware
Нельзя писать путь к файлу с http:// - это неверно! Путь может быть только двух видов - относительный, и полный.

Относительный - путь относительно файла скрипта, который этот файл требует. Примеры: [mono]test.jpg[/mono] или [mono]./test.jpg[/mono] (в той же папке, что и скрипт); [mono]../test.jpg[/mono] (на уровень ниже скрипта).
Полный - путь от корня сервера [mono]/var/www/sitename.ru/img/test.jpg[/mono].

141

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, уважаемый Hanut...
Можете подсказать тактическое решение?..
Причина: Есть ЯваСкрипт, который показывает картинки (типа небольшой галерейки), для него есть шаблон ХТМЛ (ТПЛ), в котором явно указаны адреса используемых фотографий... И ещё файл ЦСС, в котором также указаны именно эти фотографии...
Вопрос: Можно ли как-нибудь сделать, чтобы не размножать файлы ТПЛ и ЦСС для разных тем?.. Или придётся переделывать в ПХП?..
Спасибо...

142

Re: Подскажите с РНР, учу по книжке...

Freeware
Все зависит от того, как влияет смена темы на шаблоны и CSS. Возможно есть способ использовать только один tpl и один css, но это надо смотреть механизм смены темы.

Кстати, чисто тактически, верным было бы иметь для каждой темы свои tpl и css файлы, что позволило бы менять оформление галереи, при необходимости.

143

Re: Подскажите с РНР, учу по книжке...

Я немного неправильно задал вопрос,
будут не темы, в одном и том же оформлении будут фотографии разных тем, то есть 18 одной, 18 другой и так далее,
просто авторский вариант написан для использования конкретно 18 указанных фотографий, которые указаны и в tpl и в css, полазив по форумам, я выяснил, что для использования переменных (если хранить названия фоток в базе), нужно всё равно применять php...
Поэтому хочу выяснить, как наиболее удобно сделать использование названий хранящихся в базе файлов, для смены записей в начальных tpl и css?..

Пример куска кода css:
#gallery ul li.tb1 {background:url(../../galleryon/doma/d1_2.jpg) -120px -90px;}
#gallery ul li.tb2 {background:url(../../galleryon/doma/d1_3.jpg) -110px -110px;}
#gallery ul li.tb3 {background:url(../../galleryon/doma/d1_4.jpg) -250px -100px;}

Пример куска кода tpl:
<div id="gallery">
<ul>
    <li class="tb1"><a href="#nogo"><span><i><em></em><img src="../galleryon/doma/d1_2.jpg" title="Домик" alt="Домик" /></i></span></a></li>
    <li class="tb2"><a href="#nogo"><span><i><em></em><img src="../galleryon/doma/d1_3.jpg" title="" alt="" /></i></span></a></li>
    <li class="tb3"><a href="#nogo"><span><i><em></em><img src="../galleryon/doma/d1_4.jpg" title="" alt="" /></i></span></a></li>

Вопрос: Как можно указать этим файлам, использовать не конкретный url, а переменную?..

Спасибо...

144

Re: Подскажите с РНР, учу по книжке...

Freeware
css придется писать прямо в tpl.

<ul>
    <li style="background:url(../galleryon/doma/d1_2.jpg) -120px -90px;"><a href="#nogo"><span><i><em></em><img src="../galleryon/doma/d1_2.jpg" title="Домик" alt="Домик" /></i></span></a></li>

Необходимо сформировать список элементов <li>, только не понятно что за смещения фона и как их высчитывать (-120px -90px).

Сделать это надо, как и с любым другим скриптом. Если список урлов картинок находится в БД, то подключаемся к ней, выбираем картинки и выводим.

Если в tpl файлах PHP код не обрабатывается, то надо смотреть как это сделать средствами шаблона.

145

Re: Подскажите с РНР, учу по книжке...

Я вчера почти так и сделал, и хотел уже вас спросить по целесообразности такого решения...
В базу положил кусок кода с адресами списка для tpl с внутренним стилем, получается, для каждого решения будет свой код и сразу же готовый маленький стиль (только смещения)...
А в tpl вывожу его через указатель <?-- tpl_foto -->
В Опере и Мозилле работает, ещё не проверял ИЭ...
Неудобство, конечно вызывает сам факт прописывания стилей для каждой пачки фоток, смещение в общем-то роли не играет, но типа выводит для маленького окошка какой-то хороший кусочек фотки, получается немного симпатичнее...
Сразу вопрос по этому поводу: Знаете ли какую-нибудь программку, которая наглядно, задав, например, ей окошечко с размерами, будет показывать пиксели смещения непосредственно на фото?..
И главный вопрос: Насколько целесообразно решение с внутренним стилем для tpl, нет ли каких-либо других менее ресурсо (человеко-часов) ёмких вариантов?..
Спасибо...

146

Re: Подскажите с РНР, учу по книжке...

Freeware сказал:

Неудобство, конечно вызывает сам факт прописывания стилей для каждой пачки фоток

Тогда в БД лучше писать в отдельных полях: путь к картинке, координаты смещения и подпись (alt). Затем все это дело собирать динамически.

Freeware сказал:

Знаете ли какую-нибудь программку, которая наглядно, задав, например, ей окошечко с размерами, будет показывать пиксели смещения непосредственно на фото?

Не знаю такого, но можно попробовать сделать эту штуку на JavaScript.

147

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, уважаемый Hanut...)))
Пытаюсь сделать форму обратной связи с проверкой Ява-Скрипт... Форму вывожу через файл includ-ом... На Локалхосте (Денвер) всё работает и по заглушке даже спокойно отправляет сообщение и возвращается на предыдущую после отправки...
А при выкладке на хостинг, весь сайт перестаёт загружаться при переходе на страницу с формой после первой попытки отправки (и возникает конфликт с путями возврата на предыдущую)... Когда функцию вывода комментирую, всё нормально начинает работать по-прежнему... Проверял правильность ссылок, кое-где подправил, снова на Локалхосте работает, а на хостинге ну никак...(((
Возник вопрос: Почему на Локалхосте форма отправки с подключенными файлами работает?.. Подскажите пожалуйста, в какую сторону думать?..

148

Re: Подскажите с РНР, учу по книжке...

Freeware сказал:

при выкладке на хостинг, весь сайт перестаёт загружаться

Покажите как производится include.

Freeware сказал:

и возникает конфликт с путями возврата на предыдущую

Какими эти пути должны быть и какие выходят?

Смотрите логи ошибок на хостинге.

149

Re: Подскажите с РНР, учу по книжке...

Форму (файл) подключаю внутри функции вывода страницы:

function about(){   
    $_GET['id_about']=intval($_GET['id_about']);
    if(!isset($_GET['id_about'])){$status=400;return;}
    if(isset($_GET['action']) && $_GET['action'] =='about'){
    $id=(integer)$_GET['id_about'];
    if($id<1 || $id>1){$id=1;}
    if(!$tpl=@file_get_contents('templates/article.tpl')){$status=500;return;}
    $query="SELECT `header`,`text` FROM `about` WHERE `id_about`= ".$id."";
    $res=mysql_query($query,$_GET['$MV']);
    $rec=mysql_fetch_assoc($res);
    $out['navy'].='<p class=nav><a href="../">Главная</a>';
    $out['navy'].=' &nbsp<img src=images/back2_24_13.png> &nbsp';
    $out['navy'].="<a href=\"?action=about&id_about=1\">{$rec['header']}</a></p><br><br><br>";
   
    $ar=array(
        '<!-- title -->' => "<h1 class=about><b>".$rec['header']."</b></h1>",
        '<!-- text -->'  => "<p class=about>".$rec['text']."</p>"
    );
    $out['center'].=str_replace(array_keys($ar),array_values($ar),$tpl);   
    include_once ("forms/contactss.php");   
    }
return;
}

За ней пробую подключить функцию обработки (тоже файл):

function back_mail(){
    if(isset($_POST['submit'])) {   
    include_once('pages/mail_back.php');
    }
    return;
}

В ней только проверка ввода и отправка, и возврат... И после первой попытки сайт не грузится весь... Только сейчас пришло в голову, а не может здесь быть конфликта проверки (при возвращении)?.. Action же не было?.. Хотя и потом сайт больше на index.php не грузится...

Возврат прописан:
header('Refresh:5; URL=index.php?action=about&id_about=1');

150

Re: Подскажите с РНР, учу по книжке...

Freeware сказал:

подключаю внутри функции вывода страницы

Не смог разобраться. Пробуйте в коде отловить проблемный участок. Где именно скрипт прерывает работу. Делайте это с помощью вставки exit().

exit('любой текст');