Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1267 • Страница 2 из 64<  1  2  3  4  5 ... 64  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 27.07.2005
у них должны быть разные имена, и
Ой, прости, писала код здесь, забыла переименовать. Все сделала.

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) - ява скрипты (правильно произнесла)? И сложно ли их сделать?



Партнер
 

Member
Статус: Не в сети
Регистрация: 27.07.2005
У меня появился еще один вопрос, связанный с добавлением изображения на сервер.
страница 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

$path=GetCWD()."Users/";
$size=GetImageSize("$image");
if(!empty($_FILES['image']['tmp_name']) && is_uploaded_file($_FILES['image']['tmp_name']) && $_FILES['image']['size']<15360 && ($_FILES['image']['type']=="image/jpeg" || $_FILES['image']['type']=="image/gif" || $_FILES['image']['type']=="image/png") && $_FILES['image']['size']<>0 && $size[0]<110 && $size[1]<130 )
{
copy($_FILES['image']['tmp_name'],$path.$nickname."gif");


$_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), что бы сохранить в нужном формате.


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_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 вобще-то непричём... там в чём то другом была проблема. Лучше всего в таких случаях использовать дебагинг вот такой:
Код:
echo '<pre>';
echo print_r($peremennaja);
echo '</pre>';

так можно вывести любую переменную на экран, будь то просто переменная, масив или объект, при чём в структурированном виде. Искать ошибки очень легко :)


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_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 новости :)


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_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 и прочими компонентами...


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_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 уже коментария.


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_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

IP содержится в $_SERVER['REMOTE_ADDR']


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_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 =] (когда то играл)


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_Psih
Если нету системы логинов

Намекни что это такое - будет.[/quote]


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
Учётные записи пользователей. Заходишь на сайт, вводишь логин, пароль :) Я это имел ввиду :)


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_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(), когда ставишь его до и после запроса, и вычисляешь разницу, получишь время выборки.

обыкновенно, жму "Ответить" вот и выделяется белым :)


 

Member
Статус: Не в сети
Регистрация: 27.07.2005
_Psih
не правильно понял. мне нужно, чтобы статьи с hight=1 были всегда наверху независимо от даты.query = "SELECT id,name,comment,rating,upd,hight FROM news ORDER BY upd DESC LIMIT $p,10"; - это только по дате.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1267 • Страница 2 из 64<  1  2  3  4  5 ... 64  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

Лаборатория














Новости

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan