Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание форума с нуля 
:(
    Опции темы
Muerto
Дата 12.6.2010, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Решил написать мини форум на Php
Не ясно пару моментов...

Я храню само сообщение в longtext в mysql

Вот к примеру
http://wm-forrest.ru/forum.php?t=5&t2=2

Если просмотреть что я вставил в базу в ручную то там
Код

<b></b> для спуска строки<br/>


Вывод данных идет простым 
Код

echo "";


Так вот следующий этап это создание тем, но если я просто поставлю textarea сохраню в базу в тип Longtext и затем выведу echo
У меня спусков не будет, даже если я их сделаю...
Только если в ручную пропишу <br/> то будет спуск...

Я что то явно упускаю... Надеюсь проясните...

Как <b> делать мне понятней
в теме пишут [b] и затем через str replace я превратить могу в <b> и с картинками то же самое...
Но с простыв ВВОДОМ хз че делать...


--------------------
user posted image
PM MAIL   Вверх
DeamonShan
Дата 12.6.2010, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



пропустите текст через nl2br(); Будут у вас спуски. Эта функция переведет все "\n" в <br />

Спуски , которые делаются в текстареа являются "\n\r", а не <br />
PM MAIL   Вверх
solenko
Дата 12.6.2010, 09:22 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата(DeamonShan @  12.6.2010,  05:31 Найти цитируемый пост)
Спуски , которые делаются в текстареа являются "\n\r", а не <br />

только для Win. 


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Muerto
Дата 12.6.2010, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Спасибо работает отлично...
Если есть ещё какие идеи и советы по форуму буду рад...


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 12.6.2010, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



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


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 12.6.2010, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Мне удалось все сделать что я хотелл...

Но остается один главный вопрос!!!

А как стоит хранить данные в таблице?
в BB коде? те 
Код

[img]клевая телка[/img]

Или же
Код

<img src='Клевая телка'/>


Стоит учесть с точки зрения оптимизатора тоже...
Потому что если я уже перекодированные данные буду хранить как в варианте 2, то вывод данных будет быстрей и меьнше грузить сервер на расчеты
Но с другой стороны, редактировать может быть тяжелей...

Это сообщение отредактировал(а) Muerto - 12.6.2010, 15:07


--------------------
user posted image
PM MAIL   Вверх
Fortop
Дата 12.6.2010, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



можно хранить в обоих вариантах


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Muerto
Дата 12.6.2010, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Очень серьёзная проблема есть...
Мне не дает хранить в такой форме...
Код

<img src='путь'/>


Я думаю что в базе данных нельзя хранить на прямую < >
Прав ли я?

Если да то как бы второй вариант отпадает однозначно...

Это сообщение отредактировал(а) Muerto - 12.6.2010, 16:29


--------------------
user posted image
PM MAIL   Вверх
djamshud
Дата 12.6.2010, 16:38 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 1
Всего: 39



Базе данных пофик, что хранить. Хранить лучше сразу html, чтобы во время вывода не тратить ресурсы на преобразование строк.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Muerto
Дата 12.6.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Но когда я пытаюсь всатвить данные ввиде к примеру(ctrl+u винграда)
Код

<a name="go_p"></a>
<div id="s_pages_1" style="display:inline">&nbsp;&nbsp;<br /></div>
</td>
<td class="rightalign_ch1">
<form action="http://forum.vingrad.ru/index.php?" method="get" name="search"><p class="inline_p">
<input type="hidden" name="forums" value="176" />
<input type="hidden" name="show_type" value="forum" />
<input type="hidden" name="cat_forum" value="forum_id" />
<input type="hidden" name="act" value="Search" />
<input type="hidden" name="joinname" value="1" />
<input type="hidden" name="CODE" value="do_and_show_extern_search" />
<span>Поиск: </span><input type="text" size="20" name="keywords" class="forminput" value="Введите слово"
onfocus="if (this.value == 'Введите слово') this.value = '';"
onblur="if (this.value == '') this.value = 'Введите слово';" /><input
type="submit" value="Go" class="forminput" /></p>
</form>
</td>



Мне выдает ошибку и не дает вставить!

Это сообщение отредактировал(а) Muerto - 12.6.2010, 17:18


--------------------
user posted image
PM MAIL   Вверх
bars80080
Дата 12.6.2010, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315




Цитата(Muerto @  12.6.2010,  17:18 Найти цитируемый пост)
Но когда я пытаюсь всатвить данные ввиде к примеру(ctrl+u винграда)

как это связано с предыдущими постами?

это уже чистый javascript со своими слушателями событий клавиатуры и обработчиками нажатия кнопок
PM MAIL WWW   Вверх
Muerto
Дата 12.6.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



javascript тут не к месту
Я чисто о связки php и mysql
Я понимаю в чем проблема, идет нечто типа sql injection!
А точнее
Код

$last_m="<img src='./images/forum/fi".$theicon.".gif'/>&nbsp;<font color='green'>".$thetema."</font>
<br/>От&nbsp;".$theauthor."<br/><div align='right'>".$date."&nbsp;<font color='#808dee'>".$hour."</font></div>";

И затем я пытаюсь вставить это в базу вот так
Код

mysql_query(" ...VALUES(...,'".$last_m."')");


И что же выходит?
выходмт запрос типа
,'<img src='./images...,

Тоесть на стадии src=' он уже закрылся, а дальше уже лажа идет, и разумеется error выдет на die

Как это исправить мне пока ещё не совсем ясно...
Запятые мне однозначно нужны, и в самом сообщении всегда будут "

Это сообщение отредактировал(а) Muerto - 12.6.2010, 17:35


--------------------
user posted image
PM MAIL   Вверх
Connie
Дата 12.6.2010, 18:01 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: нет
Всего: 9



Код

mysql_query(" ...VALUES(...,'".$last_m."')");

Попробуй так
Код

mysql_query(" ...VALUES(...,`".$last_m."`)");

кнопка между Esc и TAB - `
PM MAIL WWW   Вверх
Muerto
Дата 12.6.2010, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Забыл про этот символ...
Ща попробую


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 12.6.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Увы не спасает...

Добавлено @ 19:14
Единственный способ пока что это
''
и использовать
Код

$search = array("\x00", "\n", "\r", "\\", "'", "\"", "\x1a");
    $replace = array("\\x00", "\\n", "\\r", "\\\\" ,"\'", "\\\"", "\\\x1a");
    return str_replace($search, $replace, $data);


ТОлько результат не очень

Вышло нечто в виде


Гайд : Как Создать Задание?
\n
\nВступление:
\nЗдравствуйте друзья, вас приветствует группа btprojects!
\nЯ хочу вам рассказать о нашей системе заданий - создание заданий!
\n
\nКак заказать задание?
\nДля начала надо попасть в задания.
\nВходим в аккаунт, затем в меню, жмем на часы, затем выбираем «задания»
\nВот что мы увидим:
\n1.

Видимо фильтр \n лишний?

Это сообщение отредактировал(а) Muerto - 12.6.2010, 19:16


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 12.6.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



В прочем если убрать \n работает норма

Но есть одна проблема

Если картинки слишком широкие, то сильно растягивает весь сайт...
Как с этим бороться предстоит придумать...

Как бы лимит на height и width картинок надо ставить


--------------------
user posted image
PM MAIL   Вверх
Pfailed
Дата 12.6.2010, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 5
Всего: 39





--------------------
PM MAIL   Вверх
Connie
Дата 12.6.2010, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: нет
Всего: 9



Мне кажется нужно экранировать все кавычки, т.е.
Код

$last_m="<img src=\'./images/forum/fi".$theicon.".gif\'/>&nbsp;<font color=\'green\'>".$thetema."</font>... и т.д.

А лучше использовать
Код

// Функция экранирования переменных
function quote_smart($value)
{
    // если magic_quotes_gpc включена - используем stripslashes
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }
    // Если переменная - число, то экранировать её не нужно
    // если нет - то окружем её кавычками, и экранируем
    if (!is_numeric($value)) {
        $value = "'" . mysql_real_escape_string($value) . "'";
    }
    return $value;
}
где то в инете ее стырил  smile 

Код

mysql_query(" ...VALUES(...,'".quote_smart($last_m)."')");

PM MAIL WWW   Вверх
Muerto
Дата 12.6.2010, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Я пока что доволен результатом...
quote_smart У меня заменяют другие функции ... типа той что я постил чуть выше

Вот такой кароче форум вышле
http://wm-forrest.ru/forum.php
Создать темы и отвечать могут только пользователи, поэтому вы даже и кнопок то не увидите...
Но там все есть...

Имхо не плохо слепить форум такой за один день, я доволен=-)

Вот к примеру создание темы user posted image

Это сообщение отредактировал(а) Muerto - 12.6.2010, 21:07


--------------------
user posted image
PM MAIL   Вверх
SickFxck
Дата 12.6.2010, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 16.4.2010

Репутация: нет
Всего: 1



Connie, сделай одолжение: воздержись от советов.

mysql_real_escape_string() и всё.
PM MAIL   Вверх
Muerto
Дата 12.6.2010, 22:32 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



SickFxck, Я в  самом начале пытался это использовать.
Но оно почему то не решало проблему...
Возможно я не в правильном месте размещал... так как у этой функции свои тонкости...
В плане открытого коннекта...


--------------------
user posted image
PM MAIL   Вверх
SickFxck
Дата 12.6.2010, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 16.4.2010

Репутация: нет
Всего: 1



Muerto, и где тебе нужно экранирование для SQL-запроса до соединения?
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1888 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.