- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева

Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Требуется организовать вход в админку с помощью сессий и проверки на логин и пароль.
Проверял на Денвере - все работает, заливаю на хост - работает на половину.
На хосте такая проблема - идентификация проходит успешно, однако при дальнейших действиях выкидывает обратно на форму входа.
Вот кусок кода:
Привет! я вижу, а при выборе других действий (условий) - выкидывает обратно на форму входа.
Что делать не пойму. Может потому, что уже поздно - башка не работает, спать хочется.
Подскажите пожалуйста.
и еще момент - после входа форма не исчезает как положено, а остается.
я бы и сам догадался, как что сделать, однако не уверен сколько это у меня времени займет. Хочется все таки более квалифицированной помощи со стороны ;)
Я бы в данном примере не стал пользоваться глобальной переменной, и поменял бы $s на $_SESSION
Соответственно после этого можно убрать session_register("s"); и unset($s);
function auth_user($user_login, $user_password)
{
include 'config_syte.php';
$user_login = mysql_escape_string($user_login);
$user_password = mysql_escape_string($user_password);
$base_connect = mysql_connect($conf['dbhost'], $conf['dbuname'], $conf['dbpass']) or die('Невозможно подключиться.');
@mysql_select_db($conf['dbname'], $base_connect) or die('Невозможно подключиться к базе.');
$query = "select id_user, passw from " . $conf['dbname'] . ".users where login = '$user_login'";
$auth = mysql_query($query, $base_connect) or die('Невозможно выполнить запрос.');
if(mysql_num_rows($auth)>0)
{
while ($user_id = mysql_fetch_assoc($auth))
{
if(crypt($user_password, $user_id['passw']) == $user_id['passw'])
{
$_SESSION['user_auth'] = 'true';
$_SESSION['user_id'] = $user_id['id_user'];
return 1;
}
}
}
else
{
return 0;
}
mysql_close($base_connect);
}
Что-то типо такого.
denis716, спасибо, обязательно учту!
т.е. теперь для регистраци переменной надо использовать $_SESSION['переменная'] - так?
solnikolay, спасибо за пример, однако я использую файлы в этом скрипте в качестве баз данных.
denis716, спасибо, обязательно учту!
т.е. теперь для регистраци переменной надо использовать $_SESSION['переменная'] - так?
Так, и вообще логика скрипта какая то неправильная... корректней так:
denis716,
а Вы уверены, что у Вас в $_GET и $_POST будут ожидаемые данные? Если не будут - посыпятся варнинги, не забывайте проверять на наличие элемента массива через isset().
Ну я немного всего-лишь подкорректировал логику, в том плане чтобы форма выводилась всегда - зашел человек первый раз или неправильно ввел пароль, также в первоначальном варианте строка
print "<center><p>Неправильная комбинация. Повторите попытку.</p></center>";
на мой взгляд не показалась бы никогда :)
А так конечно скрипт переписать надо весь ;)
2 HostCMS
добавил, спасибо за подсказку!
denis716, спасибо! теперь работает как надо! =)
А что в нем не так?
2 HostCMS
добавил, спасибо за подсказку!
denis716, спасибо! теперь работает как надо! =)
А что в нем не так?
Ну во-первых act=login - вообще лишнее, все можно и без этого прекрасно сделать, во-вторых все данные приходящие извне нужно строго фильтровать в целях безопасности например так:
if (eregi("^[a-zA-Z0-9\-_]*$", $_POST['loginc']) && eregi("^[a-zA-Z0-9\-_]*$",$_POST['passc']))
{ $login=$_POST['loginc']; $password=$_POST['passc']; }
В данном случае (так как, без MySQL работаем) фильтрация особо ничего не даст. Разве что можно обрезать входящие данные до приемлимого размера, да и то это здесь постольку-поскольку нужно :)
О других приходящих в админку данных (тексты статей и так далее) нужно беспокоится при выводе (как в админке, так и на самом сайте - чтобы не было XSS всяких) используя htmlspecialchars() и тому подобное.
Это касается и данных, которые положили в сессию: например, можно вывести Здравствуй, Админ, где Админ из сессии выводится. Здесь особо не важно ибо плохое значение не запишется (сессия стартует после проверки имени), но другие значения из сессии нужно обрабатывать дифлофосом :)