у них должны быть разные имена, и Ой, прости, писала код здесь, забыла переименовать. Все сделала.
TEXT - до 65 килобайт текста Поняла. Забираю из базы полный comment с параметром TEXT. <?echo"$row[comment]";?> и получаю обычную строчку с текстом. Вопрос: как сделать, что-бы возвращал нормальный - где надо красная строка, отступ, много пробелов и пр...
<textarea name=comment></textarea>
<? $com=$_POST[com]; $query = "INSERT INTO soft VALUES ('$comment')"?>
Вот так кратенько.
И еще не мог бы ты дать пару примеров и подсказок по mod_rewrite.
Как я поняла подключаем его в httpd.conf.
Прописала строку:
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine on
Options +FollowSymlinks
Скажи, правила можно писат сдесь или только в .htaccess. Если ТОЛЬКО, то не ог бы подсказать где его найти или как создать и куда переместить? Апачик 2, PHP 5, SQL 4
И если не затруднит не мог бы привести пример двух правил.
1 - Если я ввожу, скажем, localhost/tetatet.shtml (этой странички не существует) чтобы апач перенаправлял на специальную страницу сайта (например error404.shtml). Пример подобной функции видела на сайте asus.
2 - Простенький пример (буду ужасно благодарна) того, как сделать "нормальную ссылку" с localhost/news.shtml?id=5&category=hard на localhost/hard/5.shtml
Огромное спасибо...
PS. Кнопочки вверху этой формы (В I U) - ява скрипты (правильно произнесла)? И сложно ли их сделать?
У меня появился еще один вопрос, связанный с добавлением изображения на сервер.
страница home.shtml
..........
<form method=post action=http://localhost/Scripts/addphoto.php enctype=multipart/form-data>
<input type=file name=image style="width: 285px">
</form>
.........Сам скрипт addphoto.php
$_SESSION[photoerror]="<div class=nn>Ваша картинка успешно добавленна |$size[3]|</div>";}
elseif ($_FILES['photo']['size']>15360) {$_SESSION[photoerror]="Ваша картинка не может превышать 15 кб";}
elseif (!$size[0]<110) {$_SESSION[photoerror]="Ширина вашей картинки должна быть в пределах от 1 до 110 пикселей";}
elseif (!$size[1]<130) {$_SESSION[photoerror]="Длинна вашей картинки не может превышать 130 пикселей";};
Примерно так. Картинку добавляет корректно. НО! $size[0] ilt он должен показывать ширину в пикселях не определяет, как и $size[1] и $size[3], но Формат изображения Определяет! $size[2] пишет корректно.
Подскажи в чем ошибка, и возможно ли как-нибуть установить задний фон форме <input type=file... или никак?
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
ElMory писал(а):
у них должны быть разные имена, и Ой, прости, писала код здесь, забыла переименовать. Все сделала.
TEXT - до 65 килобайт текста Поняла. Забираю из базы полный comment с параметром TEXT. <?echo"$row[comment]";?> и получаю обычную строчку с текстом. Вопрос: как сделать, что-бы возвращал нормальный - где надо красная строка, отступ, много пробелов и пр... <textarea name=comment></textarea> <? $com=$_POST[com]; $query = "INSERT INTO soft VALUES ('$comment')"?> Вот так кратенько.
Вопервых, текст надо форматировать по правилам HTML, тобишь тегами, что бы он красиво отображался, единственное что можно сделать, это к тексту применить функцию n2br() которая все переносы строки превращает в <br> тег.
ElMory писал(а):
И еще не мог бы ты дать пару примеров и подсказок по mod_rewrite. Как я поняла подключаем его в httpd.conf. Прописала строку:
LoadModule rewrite_module modules/mod_rewrite.so RewriteEngine on Options +FollowSymlinks
Скажи, правила можно писат сдесь или только в .htaccess. Если ТОЛЬКО, то не ог бы подсказать где его найти или как создать и куда переместить? Апачик 2, PHP 5, SQL 4
правила можно задавать, и по большей части так и делают, в .htaccess
ElMory писал(а):
И если не затруднит не мог бы привести пример двух правил. 1 - Если я ввожу, скажем, localhost/tetatet.shtml (этой странички не существует) чтобы апач перенаправлял на специальную страницу сайта (например error404.shtml). Пример подобной функции видела на сайте asus. 2 - Простенький пример (буду ужасно благодарна) того, как сделать "нормальную ссылку" с localhost/news.shtml?id=5&category=hard на localhost/hard/5.shtml Огромное спасибо...
1). Apache сам перенаправляет на страницу 404, в httpd.conf её можно переопределить, что бы заменить на собственную. 2). Простенького примера не бывает Тут работа с explode, определением подгружаемых модулей и.т.д. К сожалению это слишком сложно, что бы я мог тут привести хоть какой-то пример. У меня это заняло бы строк 200-300 кода Грубо говоря, надо сделать вот что, записать RewriteRule ([/]+) index.php [QSA] , после чего в index.php принемать $_SERVER['REQUEST_URI'], в нем окажется всё, что идёт после домена, тобишь '/hard/5.shtml', далее вам надо определить что это раздел hard, и что надо вывести страницу '5.shtml' и выдать её на вывод Правда моя реализация другая, другой принцип, более сложный, но и потратил я на него почти месяц, т.к. там целый FrameWork.
ElMory писал(а):
PS. Кнопочки вверху этой формы (В I U) - ява скрипты (правильно произнесла)? И сложно ли их сделать?
Да, это не из лёгких задачка, требуется относительно хорошее знание JavaScript, особенностей браузеров и умение извращатся... Я ниразу не делал по причине сложности, нету столько времени что бы сделать такое.
По приведущему посту о загрузке фоток:
Небольщой совет, не пишите функции большими и маленькими буквами, под Unix системами это порой приводит к проблемам Case sensetivity. Я всегда их пишу маленькими буквами. А ещё по стандартам HTML параметры тегов желательно заключать в " ":
Код:
<form method="post" action="/Scripts/addphoto.php" enctype="multipart/form-data"> // относительные пути никто не запрещал :) <input type=file name=image style="width: 285px; background-color: gray;"> </form>
Задний фон установить можно через CSS, background-color: gray;
А сам скрипт я бы перепиписал немного подругому, вопервых для удобства чтения, 2 - эфективности, 3 - более легкой модификации. Выложу через время в след. посте.
Добавлено спустя 15 минут, 16 секунд:
Код:
<?php
$path = getcwd().'Users'; $size = getimagesize($_FILES['image']['tmp_name']); if (!$size) die('Загруженный фаил не является изображением!'); if ($_FILES['photo']['size'] > 15360) { $_SESSION['photoerror'] = 'Ваша картинка не может превышать 15 кб'; } elseif ($size[0]<110) { $_SESSION['photoerror'] = 'Ширина вашей картинки должна быть в пределах от 1 до 110 пикселей'; } elseif (!$size[1]<130) { $_SESSION['photoerror'] = 'Длинна вашей картинки не может превышать 130 пикселей'; } elseif (is_uploaded_file($_FILES['image']['tmp_name']) && ($size[2] == 1 || $size[2] == 2 || $size[2] == 3) ) // 1 - GIF , 2 - JPG , 3 - PNG { copy($_FILES['image']['tmp_name'], $path.'/'.$nickname.$_FILES['image']['name']); $_SESSION['photoerror'] = '<div class=nn>Ваша картинка успешно добавленна |$size[3]|</div>'; } else { $_SESSION['photoerror'] = 'Неопознанная ошибка! Попробуйте ещё раз!'; // Это место поидее никогда не должно выполнятся, но на всякий случай всё же стоит поставить предупреждение }
?>
При копировании как видишь я имя фаила поменял, т.к. нельзя просто назвать фаил .gif если ты принимаешь и JPEG и PNG. в случае если ты хочешь что бы изображение стало в GIF формате, надо его обработать дополнительной библиотекой GD2 (Image functions в мануале к PHP), что бы сохранить в нужном формате.
_Psih 1). Apache сам перенаправляет на страницу 404, в httpd.conf её можно переопределить, что бы заменить на собственную. А не подскажешь строчку, где...
Твой скрипт почему-то у меня не работает... Выдает Ширина вашей картинке должна быть... (испрасила elseif ($size[0]<110) на elseif (!$size[0]<110)...
Добавлено спустя 10 минут, 6 секунд: _Psih Я поняла, где в моем "скрипте" была ошибка...
Дура я полная - register globals был отключен...
Не думала, что при нем $size[2] будет опредялятся, а [0] будет оставаться пустым...
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
поиском поищи error404.html в httpd.conf, не могу сказать точно, под рукой нету фаила.
register_globals вобще-то непричём... там в чём то другом была проблема. Лучше всего в таких случаях использовать дебагинг вот такой:
_Psih C Text’om разобралась.
Сделала добавление новостей (пока без ЧПУ).
И опять столкнулась с проблемой.
Хочу, чтобы каждый посетитель имел возможность добавит комментарий к новости.
И тут возник вопрос.
Новостей будет много, и где хранить комментарий?
Пришли в голову две мысли.
1. Создать таблицу (commentariy), и в нее добавлять комментарии:
Id | Name | text
1 |Вася |Хорошая новость // для новости 1
15|Даша |Плохая новость // для новости 15
18|Петя |Нормальная новость // для новости 18
Но тогда в таблице все будет в вперемешку. Конечно для скрипта все равно откуда брать, но как-то не эстетично.
2. Более сумасшедшая идея, для каждой новости создавать отдельную таблицу с комментариями.
Таблица New15
1 |Вася |Хорошая новость // пост 1 для новости 15
2 |Даша |Плохая новость // пост 2 для новости 15
3 |Петя |Нормальная новость // пост 3 для новости 15
И такой же вопрос для форума:
Как упорядочивать сообщения в одной теме или для них создается отдельна таблица - ?
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
Правильное решение - это 1 таблица со всеми новостями и таблица с коментариями, которая сама по себе состоит из:
comment_id int(8) AUTO_INCREMENT NOT NULL
ref_news_id (ref от слова reference - ссылка) int(8) NOT NULL
name
text
при записи любого коментария записываем в ref_news_id ID новости, к которой относится коментарий. При выборке коментариев к новости нам всего лишь надо знать ID новости
_Psih Понятно.
comment_id int(8) AUTO_INCREMENT NOT NULL - зачем это нужно-? Для возможности просмотра полседних комментарие?
Значит весь форум (пример этот) состоит из трех таблиц? - Вывор раздела/Выбор Темы/Сообщения - ?
Еще мне нужно узнавать (к примеру выводить) информацию о ip адреса посетителя и т.д.
Пример того как нужно, на сайте (очень большой список) http://leader.ru/secure/who.html Не знаешь как такое реализованно? Для определения JS использовала browscap.ini http://www.cyscape.com Не знаешь какие методы для этого используются?
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
ElMory писал(а):
_Psih Понятно. comment_id int(8) AUTO_INCREMENT NOT NULL - зачем это нужно-? Для возможности просмотра полседних комментарие? Значит весь форум (пример этот) состоит из трех таблиц? - Вывор раздела/Выбор Темы/Сообщения - ?
Еще мне нужно узнавать (к примеру выводить) информацию о ip адреса посетителя и т.д. Пример того как нужно, на сайте (очень большой список) http://leader.ru/secure/who.html Не знаешь как такое реализованно? Для определения JS использовала browscap.ini http://www.cyscape.com Не знаешь какие методы для этого используются?
У каждой записи должен быть своё уникальный ID. auto_increment обеспечивает авто увеличение значения на 1 при вставке каждой новой записи.
А про второе, догадываюсь как и что делано, но это не для новичков, так что пока лучше забудте. Надо хорошо знать JavaScript, уметь работать с DNS и прочими компонентами...
_Psih А про второе, догадываюсь как и что делано, но это не для новичков, так что пока лучше забудте. Надо хорошо знать JavaScript, уметь работать с DNS и прочими компонентами... Рада, что сайт понравился.
ссылка типа www.site.com?id=4&comment Номер id определяю как $id=$_GET[id], а как определить, что в записи присутствует comment, если не делать как comment=1/comment=0 ???
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
так это при просмотре коментариев ещё 1 запрос на базу данных:
Код:
$sql = "SELECT * FROM commets WHERE ref_news_id = '".$_GET['id']."'";
если запрос не вернул записей, то и коментариев нету, а если вернул, значит есть. Вводим ещё ещё одну переменную в URL к примеру comid и вот у нас может быть ID уже коментария.
_Psih Нтак сказала.
Ссылка с главной на новость: <a href=news.phtml?id=34>New 34</a>
На этой странице есть ссылка на просмотр комментариев к этой новости:
<a href=news.phtml?id=34&comment=1>Коментарии</a>
И если comment=1 то скрипт убирает текс новости и выводит комментарии (на той-же странице).
Я и интересовалась, можно-ли обойтись без comment=1 а просто comment?
ЗЫ: как опредялить ip не знаешь или где об этом почитать?
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
Да коментарии обычно просто постранично выводят, выводишь новость целиком, а к ней коментарии выбираешь как я указал и после новости их выводишь. вот и ненужен &comment
_Psih Спасибо.
Поставила рейтинг новостей.
Интересуюсь, как грамотно осуществить проверку:
В отдельной таблице построить
id, IP адрес человека, Его оценка (для статистики), время,id новости
Потом производить выборку по id новости и если ip совпадет, запрещать голосование.
Или как-нибуть еще?
Добавлено спустя 11 минут, 55 секунд: + не знаешь где есть большое количество разнообразных смайликов (красивых, с большим количеством цветов)
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
ElMory писал(а):
_Psih Спасибо. Поставила рейтинг новостей. Интересуюсь, как грамотно осуществить проверку: В отдельной таблице построить id, IP адрес человека, Его оценка (для статистики), время,id новости Потом производить выборку по id новости и если ip совпадет, запрещать голосование. Или как-нибуть еще?
Добавлено спустя 11 минут, 55 секунд: + не знаешь где есть большое количество разнообразных смайликов (красивых, с большим количеством цветов)
Если нету системы логинов, то да, IP и выборку делать лучше всего по ID новости + IP юзера. Если вернул запись, значит не давать больше голосовать, в противном случае он ещё не оценил.
Про смайлики - да чёрт его знает, ищи в google. Никогда ими не занимался У PHPBB довольно неплохой набор А больше всего мне нравится набор смайликов у combats.ru =] (когда то играл)
_Psih Поняла. С этого я и начала. Сделала регистрацию и логин .
Я считаю, что грамотней давать возможность всем поставить оценку.
Имхо в 80% случаев я не пойду регистрироваться только затем, что-бы поставить оценку.
1. Не знаешь как сделать "слегка продвинутую" выборку. Если у новости в колонке Hight стоит 1 то она должна выводиться вверх независимо от даты создания (пример закрепления тем в форуме)
$query = "SELECT id,name,comment,rating,upd,hiпре FROM news ORDER BY upd DESC LIMIT $p,10";
2. И как можно присвоить переменной время выборки из базы.
3. как мои цитаты белым выделяешь - трафик жалко просматривать...
Member
Статус: Не в сети Регистрация: 28.03.2005 Откуда: Латвия, Рига
выборка так и будет, ORDER BY upd DESC, всё правильно.
время выбрки из базы, если честно, не делал, но поидее база это высчитывает, так что как-то можно вытащить. Есть ещё вариант с microtime(), когда ставишь его до и после запроса, и вычисляешь разницу, получишь время выборки.
обыкновенно, жму "Ответить" вот и выделяется белым
_Psih не правильно понял. мне нужно, чтобы статьи с hight=1 были всегда наверху независимо от даты.query = "SELECT id,name,comment,rating,upd,hight FROM news ORDER BY upd DESC LIMIT $p,10"; - это только по дате.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения