Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Кухарчик А. -> "РНР: обучение на примерах" -> 48

РНР: обучение на примерах - Кухарчик А.

Кухарчик А. РНР: обучение на примерах — Мн.: Новое знание, 2004. — 237 c.
ISBN 985-475-050-7
Скачать (прямая ссылка): phpobuchennaprimerah2004.pdf
Предыдущая << 1 .. 42 43 44 45 46 47 < 48 > 49 50 51 52 53 54 .. 68 >> Следующая

подробней.
Чат
167
Как приглашать в приват
Для приглашения в приват может использоваться или ссылка, или кнопка — это дело вкуса и возможностей. Нажав на такую ссылку, посетитель попадает на страницу, предлагающую выбрать, кого именно из присутствующих в чате в данный момент он желает пригласить в приват .
Если используется ссылка, данные авторизации человека, открывающего приват, нужно передать методом GET. А если кнопка — можно (скорее, даже нужно) использовать метод POST.
Можно при входе в приват еще раз попросить ввести пароль.
На этом этапе обязательно нужно проверить, есть ли такие пользователи среди зарегистрированных в чате, чтобы заблокировать возможность несанкционированного входа. Можно также предоставить входящим возможность немного настроить свой чат —
выбрать цвет, скорость обновления и т.д.
Когда все, что нужно, выбрано (самое главное — кого пригласить в приватный чат), посетитель нажимает на кнопку входа, и запускается программа генерации привата.
Создание привата
Сначала, как и всегда, нужно проверить правильность пароля и ника. Если все нормально и такой пользователь зарегистрирован, переходим к тому, кого он пригласил. Этого посетителя тоже надо проверить, например, на присутствие в чате. Дальше необходимо сформировать данные для авторизации. Для этого считываем время Unix:
$time = time(void);
Определяем имя файла с сообщениями, используя любой путь
к файлу:
$file = "любой nyTb".$time.".phtml";
1 Конечно, чат должен поддерживать технологию отображения присутствующих, иначе придется предлагать выбор из всех зарегистрированных ников, что будет просто нехорошо с нашей стороны.
168
Программирование на РНР
Формируем строку для записи в несуществующий пока файл, путь к которому мы только что задали:
$sav = "<? /* * $person * для * $kto * \n";
В переменных $person и $kto хранятся соответственно ники приглашающего и приглашенного в приват. Записываем строку $sav в файл специальной командой:
// пример записи переменной в файл
$file = "имя файла, в который записываем";
$sav = "то, что записываем";
$fp = fopen ($file, "w"); // открываем файл
if($fp)
{
$fw = fwrite ($fp, $sav); // если успешно, записываем в него fclose($fp); // закрываем файл
}
else
{
/* тут можно вставить процедуру обработки ошибки записи
в файл */
}
Подобные команды устроены таким образом, что, если файл не существует, он создается. Однако создаваться он будет только в том случае, если у каталога, в котором он создается, установлены соответствующие права.
Как связаться с приглашенным
Для этого можно воспользоваться самым простым методом — вывести приглашение в основной чат. Оно должно быть оформлено в виде ссылки, чтобы приглашенный мог просто нажать на
Чат
169
нее, ввести в открывшейся странице пароль и сразу попасть в приват. Впрочем, иногда лучше вывести сообщение о приглашении в приват не всем сразу, а конкретному посетителю.
В ссылке приглашения должно передаваться имя файла привата, сгенерированное с помощью функции времени Unix. Передавать его в открытом виде нельзя и придется применить любой из обратимых методов шифрования.
Самый простой способ зашифровать — выполнить ряд обратимых арифметических действий. Ведь передавать нужно простое
число, которое можно сложить с другим.
Вместе с зашифрованным именем файла надо передать идентификатор приглашенного, чтобы никто, кроме него, не мог попасть в приват. Я рекомендую воспользоваться тем методом, на основе которого реализована авторизация в чате. В принципе, можно передавать и сам ник, мы предусмотрели дополнительную защиту от чужого проникновения в приват, когда записали ники имеющих право войти в него в первую строку файла привата.
Приглашенному в приват тоже можно дать возможность настроить его для себя, потом проверить пароль и учетную запись и, если все нормально, разрешить вход в чат. При этом необходимо расшифровать имя файла привата. Его, как и ник входящего, надо передать в чат методом GET. ЭТО нужно для того, чтобы
приват мог каждый раз отслеживать и идентифицировать эти
данные.
Осталось упомянуть о том, что при работе привата надо каждый раз проверять соответствие ников вошедших с записанными в файле привата. Имя файла не должно появляться в ссылках ни на одном из этапов входа в приват. Пользуйтесь везде разными формулами для скрытия истинного имени файла привата. Старайтесь генерировать каждый раз новую формулу.
Приват следует сделать максимально простым и быстрым. Посетители используют приват не для каких-то дополнительных возможностей, а чтобы спокойно пообщаться в полной уверенности, что их не «подслушают».
170
Программирование на РНР
Хорошим тоном считается наличие кнопки, очищающей разговоры в привате. Также желательно чтобы после выхода файл удалялся с сервера.
Проявите свою фантазию и попробуйте усовершенствовать приведенную схему.
Интернет-магазин
Технология создания
Сделать несложный интернет-магазин самому, как ни странно, очень просто. Несколько сложнее придумать, как привязать собственный магазин (здесь и далее подразумевается, конечно, интернет-магазин) к конкретным товарам. Например, есть набор канцтоваров в количестве 1000 наименований. Прайс с информацией о товарах обновляется практически ежедневно, и не просто обновляется, а кардинально. Причем изменяются не только цены, что еще полбеды, но и виды товаров, их описания, сроки гарантии и поставок и т.д. Попробуйте вносить все эти данные в свой магазин ежедневно, и вы сразу проникнитесь уважением к тем людям, которые делают такую работу. Именно обновление данных в магазине и занимает основную часть собственно самой программы. Это то, что необходимо продумать в первую очередь.
Предыдущая << 1 .. 42 43 44 45 46 47 < 48 > 49 50 51 52 53 54 .. 68 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100