Вопрос № 69990: Вопрос по поводу сессий.
Когда заходишь на сайт (мой, не буду называть адрес), то все ссылки делаются вида "ссылка?PHPSESSID=lsafoisafdosadf0732r" ну типа того. Я это никак не настраивал! Просто на всех страницах у меня прописано sessio...Вопрос № 69994: Здравствуйте!
У меня чисто теоретический вопрос.
Как реализовать на сайте поиск? Конечно меня интерисует алгоритм.
Предположим есть сайт содержимое которого генерируется из базы данных.
Например есть в базе данных отдельное поле типа ...Вопрос № 69995: Здравствуйте.
Мне бы очень хотелось создать на своем сайте пользователеей...
Но, к сожалению, я не знаю: <i>ни как записать их имена и пароли в базу, данных, ни как потом проверять при входе - пароль верен? Такой логин существует?</i> П...
Вопрос № 69.990
Вопрос по поводу сессий.
Когда заходишь на сайт (мой, не буду называть адрес), то все ссылки делаются вида "ссылка?PHPSESSID=lsafoisafdosadf0732r" ну типа того. Я это никак не настраивал! Просто на всех страницах у меня прописано session_start(); так как используются сессионные переменные. Когда переходишь по любой ссылки этого вида, то потом в течении этой сессии ссылки обычного вида. Это ладно, не мешает, если пользователь заходит через закладки или адрес в строке, но почему ссылки в поисковиках ВСЕ вида "сылка.php?PHPSESSID=dsjfghfghdsaflg"
и когда я смотрю "экспресс-аудит" в статистике, этот параметр мешает, да и тем более как это может повлиять на работу скрипта, если несколько пользователей будут пользоваться одинаковой сессией (ведь в каждом поисковике во всех ссылках одна и та же сессия).
И еще, на других сайтах на php такого нет. Неужели они не используют сессии? Или я что то не так делаю.
PS
извините, что много буков :) просто постарался подробно...
Отвечает: Денис Сергеевич
Здравствуйте, Бобровский Сергей Сергеевич!
PHP автоматически вставляет PHPSESSID в гиперссылки в том случае, если в настроках PHP параметр session.use_trans_sid становлен в значение true. Попробуйте отключить его в php.ini (если есть доступ к нему), либо непосредственно во всех скриптах, где такая функциональность не требуется - с помощью ini_set().
Удачи!
Ответ отправил: Денис Сергеевич (статус: 4-ый класс)
Ответ отправлен: 08.01.2007, 14:10 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 08.01.2007, 14:24 Оценка за ответ: 5
Отвечает: Нода Сергей
Здравствуйте, Бобровский Сергей Сергеевич!
Такое поведение сесий бывает если у пользователя запрещены Cookie, в этом случае РНР сам добавляет к каждой ссылке SessionID (SID). Если такие ссылки появляются в поисковиках, то думаю (это мое личное мнение), что это просто робот записал так страничку с сессиями.
Ответ отправил: Нода Сергей (статус: 1-ый класс)
Ответ отправлен: 09.01.2007, 08:40 Оценка за ответ: 3 Комментарий оценки: Нет, сессии работают по-умолчанию несколько иначе, я уже всё выяснил. Мне техподдержка хостинга ссылку дала. При первом заходе этот параметр по-умолчанию всегда появляется.
Вопрос № 69.994
Здравствуйте!
У меня чисто теоретический вопрос.
Как реализовать на сайте поиск? Конечно меня интерисует алгоритм.
Предположим есть сайт содержимое которого генерируется из базы данных.
Например есть в базе данных отдельное поле типа TEXT. И нужно проверить соответствует ли данный текст ключевому слову? Для полей типа VARCHAR все понятно - их можно сравнить с неким шаблоном '%слово%' но длинный текст не может там содержатся. Какие есть методы для поля TEXT (скорее всего это относится к вопросу по синтаксису SQL но я думаю вы с этим знакомы применитильно конкретно к базе MySQL)
Спасибо!
Отправлен: 08.01.2007, 14:22
Вопрос задал: Valeraorg (статус: 4-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 08.01.2007, 14:44 Оценка за ответ: 5 Комментарий оценки: Спасибо! Это наверное появилось в новой верасии MySQL
Вопрос № 69.995
Здравствуйте.
Мне бы очень хотелось создать на своем сайте пользователеей...
Но, к сожалению, я не знаю: ни как записать их имена и пароли в базу, данных, ни как потом проверять при входе - пароль верен? Такой логин существует? Потом, я не знаю, как сделать топ пользователей (по посещениям), к примеру...
И самое главное: я не представляю, как создать на сайте возможность обмениваться личными сообщениями!
Можно ли мне где-то прочитать об этом? Уж очень хочется такое сделать на сайте... Желательно прямые ссылки
Заранее спасибо!
Отправлен: 08.01.2007, 14:27
Вопрос задала: Angel7 (статус: Студент)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Бородин Александр Олегович
Здравствуйте, Angel7!
Для начала прочитай какую-нибудь книжечку по MySQL. Работа с базами из PHP невероятно проста.
Чтобы организовать пользователей на сайте, надо придумать, что пользователь будет на сайте делать. Кроме того, "пользователь сайта" - не существо, а набор информации о нем. Поэтому продумай, какую информацию будешь в таблице хранить.
Ну а чтобы сообщения приватные организовать... Уверяю, создав на сайте пользователей, ты легко создашь и систему личных сообщений, потому что поймешь принцип работы с "мускулом". Удачи!
--------- Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.
Ответ отправил: Бородин Александр Олегович (статус: 2-ой класс)
Ответ отправлен: 08.01.2007, 16:12 Оценка за ответ: 4 Комментарий оценки: Спасибо. Если можно - киньте ссылки в мини-форум на качественные статьи, подходящие к моему вопросу! Если есть. Удачи!
Отвечает: Денис Сергеевич
Здравствуйте, Angel7!
Присоединяюсь к Александру Олеговичу - Вам может любая книга по MySQL, чтобы изучить эту систему управления базами данных. А практически любой самоучитель PHP расскажет о том, какие функции существуют для работы с БД из скрипта.
Еще добавлю по поводу паролей. Хранить Вы их, видимо, будете в зашифрованном виде, поэтому рекомендую почитать о шифровании, например о алгоритме необратимого шифрования md5 и о соответствующей функции PHP:
http://ru2.php.net/manual/ru/function.md5.php - тут и примеры есть.
Что касается системы личных сообщений, то могу предложить такой вариант (опять же с использованием базы данных). Очевидно, что таблица, куда они будут записываться, должна содержать поля с такой информацией: id сообщения, id отправителя, id адресата, тема сообщения текст сообщения. Этого уже достаточно для обмена сообщениями, но для того, чтобы дифференцировать прочитанные сообщения от непрочитанных, можно добавить поле, отвечающее за статус сообщения. Предположим, значение 0 в нем будет у прочитанных сообщений,
а 1 - у новых для пользователя, непрочитанных. Итак, поля могут быть примерно такими:
id - poster_id - recipient_id - subject - text - unreaded
Ну, это конечно, примерная структура таблицы, быть может, Вам еще что-то понадобится в нее записывать.
Возможно то, что я написал, не очень понятно, если Вы совсем не знакомы с MySQL, но после знакомства многое прояснится.
Ответ отправил: Денис Сергеевич (статус: 4-ый класс)
Ответ отправлен: 08.01.2007, 17:53 Оценка за ответ: 5 Комментарий оценки: Спасибо. Если можно - киньте еще ссылки в мини-форум на качественные статьи, подходящие к моему вопросу! Если есть. Спасибо еще раз и удачи!