Вопрос № 69821: Здравствуйте.
В общем на http://forum/register.php?step=1 есть форма, которая на http://forum/register.php?step=2 передает данные методом post.
Перед отправкой используется валидация данных при помощи JavaScript, но при отключенных ...Вопрос № 69822: Вопрос таков:
нужно сделать голосование как на данном сайте. при этом формы с голосованием будут рандомно подключаться в шаблон(с этим всё понятно).
Кто делал голосование, скажите как лучше сделать: с помощью файлов или писать в БД. ...Вопрос № 69824: Здравствуйте!
Я вот отправляю сообщение из php на мыло. Это обычный текст, но приходит кракозяблики (кодировка не указана).
Пожалуйста подскажите что нужно написать, чтобы всё было правильно для обычного текстового сообщения?
Ка...Вопрос № 69826: Правильно ли я понял.
3 таблицы:
1)ГОЛОСОВАНИЯ
id - id голосования.
name - имя голсования.
2)ВАРИАНТЫ
id - id варианта.
id_gol -id голосования.
variant_otveta - вар. ответа.
3)ОТВЕТЫ
id - id ответа.
..Вопрос № 69879: Здравствуйте, эксперты! Поздравляю с праздниками!
Есть сайт с картинками для мобильников (бесплатные). Есть в нём раздел top (популярные). Необходимо сделать так, чтобы можно было смотреть популярные картинки например "за сутки", "...Вопрос № 69882: Здравствуйте!
подскажите пожалуйста как сделать селектор по датам. я, например, хочу показывать сообщения о праздниках, но сталкнулся с проблемой задания диапазона времени. Например чтобы с новым годом было от 22.12 до 15.1...Вопрос № 69887: Здравствуйте!
Я вообще-то уже спрашивал, но наверное плохо сформулировал свой вопрос. Расскажите пожалуйста как сделать импорт и экспорт таблицы mysql с сайта, через web интерфейс с использованием php. Про консоль и про phpMyAdmin не пишите....Вопрос № 69890: Здравствуйте!
Сталкнулся с такой штукой:
беру текст
$m1 = mysql_escape_string($text);
// это пишу в mysql
$m2 = mysql_result...
// читаю из бд
$m1 и $m2 не идентичны! В чём тут дело? и как сделать $m3 ...Вопрос № 69900: Здравствуйте, уважаемые эксперты!
Прошу помочь мне в одном вопросе.
Начал писать чат, но только сейчас оознал, что совершенно не знаю, как проверять подключен ли ползователь или нет...
Если у кого либо есть соображения, то, пожалуйста под...Вопрос № 69902: Здравствуйте, эксперты! <b>Поздравляю вас с Рождеством!</b>
Вот мой вопрос: у меня <i>динамический</i> сайт. Так вот, если я иду по ссылке http://svoysite.net.ru/<u>?topic=arch</u>, то все в порядке, он загружает http://svoysite.net.ru/<u>ar...
Вопрос № 69.821
Здравствуйте.
В общем на http://forum/register.php?step=1 есть форма, которая на http://forum/register.php?step=2 передает данные методом post.
Перед отправкой используется валидация данных при помощи JavaScript, но при отключенных Java-скриптах происходит проверка и на стадии http://forum/register.php?step=2 и при невалидных данных используется Header('refresh: 5; url=http://forum/register.php?step=1'); для возврата пользователя обратно, но требуется при переходе обратно на http://forum/register.php?step=1 так же сохранить данные введенные ранее пользователем в форме.
Как осуществить либо сохранение данных, либо как таскать данные при таких переходах Header('refresh: 5; url=http://forum/register.php?step=1'); ?
Отвечает: Cimus
Здравствуйте, Цепковский Антон Сергеевич!
Всё очень просто, когда Вы получаете данные их нужно сохранить в сессии или в куках, потм делаете проверку в случае неудачи во время отображения повторной формы вставляете всё обратно.
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 10-ый класс)
Ответ отправлен: 07.01.2007, 12:28
Вопрос № 69.822
Вопрос таков:
нужно сделать голосование как на данном сайте. при этом формы с голосованием будут рандомно подключаться в шаблон(с этим всё понятно).
Кто делал голосование, скажите как лучше сделать: с помощью файлов или писать в БД.
Если писать в базу данных, то напишите кратко структуру таблицы в БД для голосования.
Вот так. Сложность заключается в том, что не удобно использовать эту таблицу для других голосований. Ещё одна сложность - учёт проголосовавших IP-адресов - не понятно куда их записывать, отводить для них полу в строке? и писать их через запятую?, а потом резать эксплойдом эту строку?. Совсем не удобно. Раньше я делал с помощью 2-х файлов на одно голосование. Первый в столбец содержит id варианта ответа, второй в столбец содержит IP голосовавших.
Как реализовать голосование по средствам БД? и чтобы это было удобно. Напишите структуру таблицы, которую вы считаете оптиальной.
Отправлен: 07.01.2007, 02:16
Вопрос задал: PetrKi. (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Цепковский Антон Сергеевич
Здравствуйте, PetrKi.!
Лучше использовать БД и не одну таблицу, а 2-е, т.к. на лицо отношение один (1 голосование) ко многим (много вариантов ответа), что бы не было привязки к кол-ву вариантов ответа (т.е. что бы было возможно сделать голосование и с 2-мя вариантами ответа и со 100).
таблица Голосования:
id int - autoincrement, primary key
title varchar(100) - название голосования
таблица Варианты ответа:
id int - autoincrement, primary key
decr text - описание пункта варианта ответа
id_gol int - id голосования, к которому относится вариант ответа.
А вот и 3-я таблица для хранения ответов, я бы сделал так (без избыточности данных):
id int - autoincrement, primary key
id_var int - id варианта ответа
ip varchar(15) - ip-адрес - при голосовании нужно проверять, что бы не шалили.
или в 3-й таблице, для упрощения выборки данных предлагаю ещё хранить id_gol - ссылку именно к голосованию, однако это против теории релляционных баз данных, у которых не должно быть избыточности данных ( :) - но иногда можно).
С уважением,
Антон Цепковский
--------- Вся наша жизнь - RPG
Ответ отправил: Цепковский Антон Сергеевич (статус: 6-ой класс)
Ответ отправлен: 07.01.2007, 02:40 Оценка за ответ: 5 Комментарий оценки: Правильно ли я понял. 3 таблицы: 1)ГОЛОСОВАНИЯ id - id голосования. name - имя голсования. 2)ВАРИАНТЫ id - id варианта. id_gol -id голосования. variant_otveta - вар. ответа. 3)ОТВЕТЫ id - id ответа. id_varianta - id варианта ответа. ip - ip-голосовавшего. Всё удобно... никакого избытка данных. Только у вариантов
ответа получаются неудобные id. Варианты все в куче. При создании очередной формы для голосования надо уточнять id номера ответов, чтобы их потом передавать в скрипт голосования, для занесения очередного ответа в базу данных. Это можно обойти или с этим придётся смириться.
Вопрос № 69.824
Здравствуйте!
Я вот отправляю сообщение из php на мыло. Это обычный текст, но приходит кракозяблики (кодировка не указана).
Пожалуйста подскажите что нужно написать, чтобы всё было правильно для обычного текстового сообщения?
Как указать нужную кодировку, тип и чо там ещё нужно?
Функция mail() посылает письмо с темой $subject и содержанием $msg по адресу $to.
Если Вы хотите, чтобы письмо ушло по нескольким адресам, разделите их пробелами.
Само сообщение может быть многострочным. Для перехода на новую строку поставьте знак перехода на новую строку "
" в конце каждой строки
В четвертом необязательном параметре $header можно указать заголовки нашего сообщения.
В заголовке мы указали, что тип письма будет простой текст, а кодировка - Windows.
Как топравить письмо в формате HTML смотрите в приложении.
Приложение:
--------- Чем больше женщину мы меньше, тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус: 3-ий класс)
Ответ отправлен: 07.01.2007, 03:12 Оценка за ответ: 5 Комментарий оценки: Спасибо! Исчерпывающе, именно то. надеюсь поможет.
Вопрос № 69.826
Правильно ли я понял.
3 таблицы:
1)ГОЛОСОВАНИЯ
id - id голосования.
name - имя голсования.
2)ВАРИАНТЫ
id - id варианта.
id_gol -id голосования.
variant_otveta - вар. ответа.
3)ОТВЕТЫ
id - id ответа.
id_varianta - id варианта ответа.
ip - ip-голосовавшего.
Всё удобно... никакого избытка данных. Только у вариантов ответа получаются неудобные id. Варианты все в куче. При создании очередной формы для голосования надо уточнять id номера ответов, чтобы их потом передавать в скрипт голосования, для занесения очередного ответа в базу данных. Это можно обойти или с этим придётся смириться.
Приложение:
Отправлен: 07.01.2007, 03:46
Вопрос задал: PetrKi. (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Цепковский Антон Сергеевич
Здравствуйте, PetrKi.!
Я написал примеры запросов к БД в Мини форуме вопроса 69822.
В принципе SQL достаточно мощный и позволяет выбирать данные со сложными условиями, с вложенными выборками и т.п.
Вообще правильно будет так как я написал. Про порядок id в каждой таблице можно не беспокоится ведь файтически это универсальные номера, и будут идентифицировать только свою запись, что нам и нужно. В таблице Ответы есть поле № варианта ответа, для связывания ответа-варианта ответа, в таблице Варианты ответа есть поле № голосования для связки таблиц Варианты ответа - Голосования, так что используя SQL можно осуществить выборку сразу из 3-х или 2-х таблиц для получения нужного нам результата.
Единственное что бы я ещё добавил - это порядок отображения вариантов ответа при выводе голосования, т.е. что выше что ниже.
Для этого я бы ввел дополнительное поле типа integer в таблицу "Варианты ответа" и скрипт для задания порядка.
т.е. у Вас получается 3 таблицы и скрипты для Создания голосования, Добавления вариантов ответа для конкретного голосования, задания порядка отображения - это админ интерфейс и для пользователя это Вывод результата конкретного голосования, Голосование за определенный Вариант ответа и возможно Показать перечень голосований.
Вроде больше ничего на ум не приходит.
--------- Вся наша жизнь - RPG
Здравствуйте, эксперты! Поздравляю с праздниками!
Есть сайт с картинками для мобильников (бесплатные). Есть в нём раздел top (популярные). Необходимо сделать так, чтобы можно было смотреть популярные картинки например "за сутки", "за неделю", "за месяц", "за всё время". В настоящий момент там просто популярные картинки по кол-ву загрузок, т.е. "за всё время". Вот как это осуществить? Была такая мысль, сделать несколько полей (соответственно day week month total), инкрементировать их на каждой загрузке и просто
обнулять посредством cron каждый день, неделю, месяц соответственно. Но это меня не устраивает. Хочу сделать так, подобно http://browse.deviantart.com/?order=9
Отвечает: Загиров Рустам
Здравствуйте, Бобровский Сергей Сергеевич!
Есть 2 варианта решения вашей задачи:
1) Это использование дополнительной таблицы для ведения логов закачки картинок.
2) Это ваша мысль. Использовать дополнительные поля в таблице: day,week и т.д.
Я рассмотрю только первый способ, т.к. второй вы знаете
Первый способ полезен тем, что можно указывать любые промежутки времени для оценки количества скачивания, но минус состоит в том что размер этой таблицы будет не маленький, если с сайта скачивают много.
Таблицу логов(pict_log) делаем из 2 полей: pict_id(INT), stamp(timestamp). При каждом закачивании добавляем в таблицу запись.
Теперь можно будет составить запрос для популярных картинок за месяц: SELECT *,COUNT(*) as kol FROM `pict_log`
WHERE stamp>(NOW() - INTERVAL 1 MONTH)
GROUP BY pict_id
ORDER BY kol DESC
за неделю: SELECT *,COUNT(*) as kol FROM `pict_log`
WHERE stamp>(NOW() - INTERVAL 7 DAY)
GROUP BY pict_id
ORDER BY kol DESC
Также можно составить за более крупные периоды, например, за 2006 год: SELECT *,COUNT(*) as kol FROM `pict_log`
WHERE YEAR(stamp)=2006
GROUP BY pict_id
ORDER BY kol DESC
За январь 2006: SELECT *,COUNT(*) as kol FROM `pict_log`
WHERE YEAR(stamp)=2006 AND (MONTH(stamp)=01)
GROUP BY pict_id
ORDER BY kol DESC
В прикреплённом файле содержиться вырезка из справочника MySQL о функциях при работе с датой.
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 07.01.2007, 18:51 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! Такой идеи вообще не было в голове. А как насчет скорости выполнения этих операций? Как скажется это на быстродействии, если записей за месяц, допустим, набираться будет 1000000 (миллион грубо говоря)?? Сайт у меня, конечно, не очень пока популярный, но посещаемость растёт.
Вопрос № 69.882
Здравствуйте!
подскажите пожалуйста как сделать селектор по датам. я, например, хочу показывать сообщения о праздниках, но сталкнулся с проблемой задания диапазона времени. Например чтобы с новым годом было от 22.12 до 15.1
Отвечает: Загиров Рустам
Здравствуйте, Талипов А Н!
Тут надо применять условные операторы. Меняем представление даты не ДД.ММ,а наоборот ММ.ДД. Это необходимо для сравнения текстовых величин: 01.15 - это 15 января, 01.14 - 14 января. В PHP 01.15>01.14, на таком же алгоритме устроены сравнения времени(TimeStamp) в MySQL. Всё, теперь можно задавать промежутки времени. Чтобы они не пересекались с точно установленными датами, будем прописывать их операторе default:
if ($date>='12.22' || $date<='01.15') print 'С новогодними праздиками';
elseif ($date>='06.01' && $date<'09.01') print 'Ура, лето';
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 07.01.2007, 17:40 Оценка за ответ: 5 Комментарий оценки: Спасибо! Как тут всё сложно.Вот если бы можно было сравнивать в case()...
Отвечает: Нода Сергей
Здравствуйте, Талипов А Н!
в конструкции switch подставь значение переменной.
Приложение:
Ответ отправил: Нода Сергей (статус: 1-ый класс)
Ответ отправлен: 10.01.2007, 17:24
Вопрос № 69.887
Здравствуйте!
Я вообще-то уже спрашивал, но наверное плохо сформулировал свой вопрос. Расскажите пожалуйста как сделать импорт и экспорт таблицы mysql с сайта, через web интерфейс с использованием php. Про консоль и про phpMyAdmin не пишите.
не пишите.
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 07.01.2007, 17:40 Оценка за ответ: 5 Комментарий оценки: Я думал, всё будет проще. Типа пишу код, а потом жму на ссылку и качаю.Ну да ладно. Спасибо за ссылку, попробую установить.
Отвечает: Нода Сергей
Здравствуйте, Талипов А Н!
смотря какой интерфейс. Смотри в начтройках MySQL. Там должны быть пункты для работы с базой данных, в них и ищи.
Ответ отправил: Нода Сергей (статус: 1-ый класс)
Ответ отправлен: 10.01.2007, 17:33
Вопрос № 69.890
Здравствуйте!
Сталкнулся с такой штукой:
беру текст
$m1 = mysql_escape_string($text);
// это пишу в mysql
$m2 = mysql_result...
// читаю из бд
$m1 и $m2 не идентичны! В чём тут дело? и как сделать $m3 такой как $m2, но без записи и чтения в бд?
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 07.01.2007, 17:40 Оценка за ответ: 5 Комментарий оценки: Трабла понятна, Глюк был успешно исправлен.
Вопрос № 69.900
Здравствуйте, уважаемые эксперты!
Прошу помочь мне в одном вопросе.
Начал писать чат, но только сейчас оознал, что совершенно не знаю, как проверять подключен ли ползователь или нет...
Если у кого либо есть соображения, то, пожалуйста поделитесь.
Отправлен: 07.01.2007, 18:33
Вопрос задал: Uman (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Денис Сергеевич
Здравствуйте, Uman!
Протокол HTTP не позволяет устанавливать сеансы, поэтому отследить длительность работы посетителя с Web-ресурсом невозможно. Можно зафиксировать лишь время обращения клиента к ресурсам сервера. Но узнать момент прекращения работы с этими ресурсами невозможно.
Могу предложить использовать такую схему - если со стороны пользователя не было обращения к Web-страницам Вашего чата в течение какого-то времени (например, 30 минут), значит, он покинул ресурс. Для отслеживания времени обращения Ваших посетителей Вы можете использовать сессии.
Если Вы собираетесь использовать MySQL для хранения информации, создайте таблицу, где будете хранить сессии. В ней должно быть такие поля: идентификатор сессии, имя посетителя, время последнего обращения к ресурсам.
Предположим, у нас есть таблица sessions с полями id_session, user и last_action. Код в приложении – написал самое основное, с остальным, думаю, разберетесь.
Удачи!
Приложение:
Ответ отправил: Денис Сергеевич (статус: 4-ый класс)
Ответ отправлен: 07.01.2007, 19:04 Оценка за ответ: 5 Комментарий оценки: Хоть и знал про сессии... но всё равно спасибо за грамотный и быстрый ответ!
Отвечает: Алексей Смуриков
Здравствуйте, Uman!
Могу посоветовать просто отслеживать активное окно сообщений, которое наверняка будет автоматически обновляться через какой-то промежуток времени. И если окно долго не обновлялось имеено у конкретного пользователя (3-5 минут или можно меньше, скажем 1 минута) то можно считать что пользователя нет!
А в качестве авторизации использовать либо сессии или либо куки!
--------- Из того, что я утратил больше всего мне жаль разум.....
Ответ отправил: Алексей Смуриков (статус: Практикант)
Ответ отправлен: 07.01.2007, 19:07
Вопрос № 69.902
Здравствуйте, эксперты! Поздравляю вас с Рождеством!
Вот мой вопрос: у меня динамический сайт. Так вот, если я иду по ссылке http://svoysite.net.ru/?topic=arch, то все в порядке, он загружает http://svoysite.net.ru/arch/index.html вместе с хедером, правым/левым меню и нижней частью.
Но если я иду по ссылке http://svoysite.net.ru/?topic=gb&type=1, то пишет: ошибка... А ведь если я пройду по ссылке http://svoysite.net.ru/gb/index.php, то все в порядке!
Помогите, пожалуйста, найти ошибку!
Спасибо.
P.S. Мне кажется, ошибка здесь:
{if ($type = "1")//- я сомневаюсь, одно = здесь ставить или два! {
include $topic."/".$page.".php";
}
Приложение:
Отправлен: 07.01.2007, 18:35
Вопрос задала: Angel7 (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 7)
Отвечает: Алексей Смуриков
Здравствуйте, Angel7!
Да вы правы при таком $type = "1" переменной $type присвоится значение "1" и будет не то что надо! В PHP надо использовать двойной знак равенства как в C++
if($type == "1") ...
Ещё попробуйте использовать вместо $type $_GET['type'] и других параметров по аналогии!
--------- Из того, что я утратил больше всего мне жаль разум.....
Ответ отправил: Алексей Смуриков (статус: Практикант)
Ответ отправлен: 07.01.2007, 18:59