Вопрос № 47298: У меня такая проблема - мне нужно организовать регисрацию на сайте :) Я хочу провернуть
это дело задействуя cookie. Я, честно, не знаю как эту задачу реальзовывают профессиональные web-разработчики, но я решил,
что имея в БД зарегистрированного польз...Вопрос № 47299: Здравствуйте, вопрос
немножечко не по теме, но вы мне кажется должны знать!!
Собственно гороря, у меня проблема в том, что кроме localhost больше ничего не грузится (т.е. когла я ввожу в строке браузера
test2.ru от мне выдаёт ошибку 404). Я прочи...Вопрос № 47368: Привет! У меня
вопрос по поводу Smarty.
У меня такая фигня получается:
//здесь я получаю массив из базы
$arr_country = $db->fetchArray($arr_country_request)
//Затем передаю в шаблон весь массив
$tpl->assign('row',...Вопрос № 47376: Здравствуйте!
У меня есть форма с кучей текстовых полей, галочек, переключателей и списков. Мне нужно чтоб после заполнения она летела
на мыло. Если не труднл приведите пример кода который обработает или где взять готовый скрипт?...
Вопрос № 47.298
У меня такая проблема - мне нужно организовать регисрацию на сайте :) Я хочу провернуть это дело задействуя cookie. Я, честно,
не знаю как эту задачу реальзовывают профессиональные web-разработчики, но я решил, что имея в БД зарегистрированного пользователя,
когда он вводит свои данные - логин, пароль (если они совпадают), данные (соответстрвенно логин и пароль который он ввёл)
созраняются в куке и при последующих посещениях моей странички, пользователь уже авторизирован.
Допустим все ввели данные.. сохраняем set_cookie("something",$login."^^".$password,"",ну и
что-то там);
отлично... теперь, когда пользоваетль заходит на сайт я смело вызаваю $something и не надо вводить никаких данных - берём
их из куки..
все это конечно хорошо, только вот если человек зашёл на страницу в первый раз, то вызвав функцию $something - просто вылезет
ошибка - содержания, типа "что за переменная??"
Может быть есть какая-нибудь функция, которая проверяет, создана ли кука на машине, или чтото вроде того? как мне решить
проблемУ?
или есть какие-то более легкие пути по поводу решения??
Отправлен: 26.06.2006, 00:45
Вопрос задал: Toxic~Fire (статус: 2-ой
класс)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Jeka911
Здравствуйте, Toxic~Fire!
Насчет ошибки: поможет isset()... if (!isset($somevar)) $somevar="empty";
Насчет попроще: можно использовать сессии, session_start(); session_register...
--------- Шахтер - чемпион!!!
Ответ отправил: Jeka911 (статус:
5-ый класс)
Ответ отправлен: 26.06.2006, 00:52
Отвечает: Cimus
Здравствуйте, Toxic~Fire!
Можно организовать регистрацию по следующей схеме:
1) пользователь регистрируеться и в куки помещаются логин и хеш мд5 от пароля
2) когда пользователь обращаеться к сайту можно прочитать куку и сравнить данные логин и хеш мд5 от пароля соответственно
с записью в базе данных
На мой взгляд в куках лучше хранить НЕ пароль, а хеш от него
md5($pass)
Прочитать данные из куки и не получить ошибку можно вот так-
if(isset($_COOKIE['something']))
{
кука есть
}
else
{
куки нет
}
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 3-ий
класс)
Ответ отправлен: 26.06.2006, 02:34
Отвечает: Mamont
Здравствуйте, Toxic~Fire!
Чтобы не вылезала ошибка проверяем существует ли переменная:
if(isset($_COOKIE['something'])) {
// куки есть - проверяем
} else {
// куки нету
}
Но при хранении логина/пасса в куки есть ряд недостаков, например:
1. Поскольку логин/пасс находится на машине пользователя можно их прочитать и получить логин/пасс (можно конешно зашифровать
пароль, но кто гарантирует что его не расшифруют)
2. Пасс можно даже не расшифровывать а просто скопировать куки и некто получит доступ от имени этого пользователя.
3. Использование куки может быть просто отключено (вот и сохранили пароль :( )
Поэтому лучше использовать сеансы. Для этого в начале странички вызываем session_start(); и все необходимые данные храним
в массиве $_SESSION.
PHP сам заботится о том как передать и получить у браузера уникальный номер сессии (PHPSESSID).
Поэтому:
1. Отпадает необходимость передачи пользователю логина/пасса (теперь передается только PHPSESSID.
2. Можно включить дополнительную защиту от кражи PHPSESSID сохраняем IP пользователя после удачной проверки логина/пасса
( $_SESSION['userIP']=$_SERVER['REMOTE_ADDR']; ) и при не совпадении его заново выводим форму ввода логина/пасса.
3. Работает даже если отключены куки
Ну вот некоторые полезные мелочи, которые лучше (и нужно) учитывать создавая систему регистрации
--------- Иногда движение вперед-результат пинка под зад
Ответ отправил: Mamont (статус:
2-ой класс)
Ответ отправлен: 26.06.2006, 03:44
Отвечает: Cybernetic_Creature
Здравствуйте, Toxic~Fire!
есть такая функция
isset()
http://php.net/manual/ru/function.isset.php
она проверяет есть ли такая функция
или же можно использовать @
http://php.net/manual/ru/language.operators.errorcontrol.php
Ответ отправил: Cybernetic_Creature
(статус: Специалист)
Ответ отправлен: 26.06.2006, 15:32
Вопрос
№ 47.299
Здравствуйте, вопрос немножечко не по теме, но вы мне кажется должны знать!!
Собственно гороря, у меня проблема в том, что кроме localhost больше ничего не грузится (т.е. когла я ввожу в строке браузера
test2.ru от мне выдаёт ошибку 404). Я прочитал в справке денвера (апача), что нужно включить в сервисах DSN-клиент. пробую...
двойной клик по сервису... нажимаю кнопку запустить сервис (он всегда выключен)... проходит где-то 10% и всё... пишет мне:
"Не удалось запустить службу DSN-клиент на локальный компьютер."
"Ошибка 5: Отказано в доступе"
Я не знаю, что делать...
подскажите
Отправлен: 26.06.2006, 00:46
Вопрос задал: Toxic~Fire (статус: 2-ой
класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Cimus
Здравствуйте, Toxic~Fire!
Если во время запуска службы выдаётся ошибка о том, что отказанно в доступе, то смените свою учётную запись на администратора
и пвторите запуск.
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 3-ий
класс)
Ответ отправлен: 26.06.2006, 02:41
Отвечает: Цепковский Антон Сергеевич
Здравствуйте, Toxic~Fire!
Если система аля NT, тогда найдите файл %Windows%/system32/drivers/etc/hosts и добавьте строку 127.0.0.1 test2.ru
Если виртуальные каталоги настроены правильно, то работать будет.
С уважением,
Антон Цепковский
--------- Вся наша жизнь - RPG
//здесь я получаю массив из базы
$arr_country = $db->fetchArray($arr_country_request)
//Затем передаю в шаблон весь массив
$tpl->assign('row', $arr_country);
В самом шаблоне делаю
{foreach from=$row item=item_country}
Проверь содержимое массива $arr_country скорее всего дело в нем, хотя могу и ошибаться. Нужно глянуть код - а так сказать
сложно.
--------- Иногда движение вперед-результат пинка под зад
Ответ отправил: Mamont (статус:
2-ой класс)
Ответ отправлен: 27.06.2006, 21:25
Вопрос
№ 47.376
Здравствуйте!
У меня есть форма с кучей текстовых полей, галочек, переключателей и списков. Мне нужно чтоб после заполнения она летела
на мыло. Если не труднл приведите пример кода который обработает или где взять готовый скрипт?
Отправлен: 26.06.2006, 17:20
Вопрос задал: Denwer (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Jeka911
Здравствуйте, Denwer!
Вот пример из официального РНР-матуала:
Приложение:
--------- Шахтер - чемпион!!!
Ответ отправил: Jeka911 (статус:
5-ый класс)
Ответ отправлен: 26.06.2006, 19:07
Отвечает: Santana
Здравствуйте, Denwer!
Приведу пример HTM-кода. Это как раз что Вам надо. Получаем на емейл письмо с фотматом ИмяПоляВФорме=ЗначениеКакоеВвелПосетитель.
Думаю на основе примера сделать PHP код не составит труда
<HTML><HEAD><TITLE> Форма для письма </TITLE>
<link rel="stylesheet" href="style.css" type="text/css">
</HEAD>
<BODY>
<CENTER><B>Отправка по E-mail со страницы</B><BR><BR>
<form name="form" method="POST" action="mailto:email@mail.ru?SUBJECT=Отправка письма" enctype="text/plain">
<TABLE>
<TR>
<TD><INPUT name="name" text=#FFFFFF type="text" tabindex="2"value="Name"
><BR></TD>
</TR>
<TR>
<TD><INPUT name="Email" text="#FFFFFF" type="text" tabindex="1"value="ваш
e-mail"><BR></TD>
Ответ отправил: Santana (статус:
3-ий класс)
Ответ отправлен: 26.06.2006, 19:30
Отвечает: Mamont
Здравствуйте, Denwer!
Отправить форму на email (если не требуется проверки введенных данных) можно так (форма передается методом POST):
<?
$to='admin@myhost.ru';
$subject='Письмо с сайта';
$headers='';
$message='';