pl[oo]t
24.10.2009 - 21:12
Доброго времени суток.
Пытаюсь писать сайт, опыта программирования в пхп мало(практически нету), но в общем программирование понимаю. Начать решил с авторизации и написал простенький скриптик.
Хотелось бы за минимальное время сделать его пригодным для применения.
С функционалом разберусь сам, опасаюсь за безопасность. Просто слышал что скрипты пхп защищаются дольше, чем пишутся. Может кто-нить скинуть пару ссылок на статейки, в которых тема нормально раскрыта, но не требует пары недель для понимания и не опирается на хорошие знания web-технологий и указать на ошибки, которые уже допустил.
На форуме пишу третий раз за всю жизнь: помощи просить не привык, а другим помогать еще рановато(скорее навредить тольк пока могу), поэтому не судите строго за стиль написания сообщений.
З.ы
Пис(а)ть буду ТОЛЬКО САМ(никаких скачиваний).
google.kz не предлагать- знаем, читали.
а вот и сам скрипт(накалякан за пару часов и табы почти отсутствуют)
Форма, с которой отправляются данные(index.php):
HTML |
<?php session_start(); if (isset($_SESSION['logged_user'])){ header("location: cp.php"); die; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Вход в панель администрирования</title> </head>
<body>
<?php if (isset($_GET['err'])) echo "Логин или пароль введены ошибочно"; ?>
<form method="POST" action="auth.php"> <table style="background-color:#CCCCCC"> <tr style="text-align: center"> <th style="padding:25px;font-size:10pt" colspan="2">Заполните поля<br /> для атвторизации на сервере</th> </tr> <tr style="font-size: 10pt"> <td><label for="ilogin">Имя пользователя</label></td> <td><input type="text" name="login" id="ilogin" size="10" /></td> </tr> <tr style="font-size: 10pt"> <td><label for="ipassw">Пароль</label></td> <td><input type="password" name="passw" id="ipassw" size="10" /></td>
</tr> <tr> <td colspan="2"><input style="padding:0 10px" type="submit" name="submit" value="ВХОД" /></td> </tr> </table> </form> </body> </html>
|
Обработчик формы(auth.php)
PHP |
<?php session_start(); $serverRootD='http://localhost/'; $serverRootI='http://127.0.0.1'; if (isset($_POST['submit'])){ $ref=getenv("HTTP_REFERER"); if ((strpos("1$ref" , $serverRootD)==1) || (strpos("1$ref" , $serverRootI)==1)) if ((isset($_POST['login'])) && (isset($_POST['passw']))){ $login=trim($_POST['login']); $passw=$_POST['passw']; if((preg_match("/[^a-z,A-Z,0-9,\_]|^[0-9\_]/" , $login)) or (preg_match("/[^a-z,A-Z,0-9]/" , $passw))){
header("location: index.php?err=1"); die; } $Link=mysql_connect("localhost","root",""); //(Без комментариев :D) if (!$Link) echo 'error';
if(!mysql_select_db("main_db",$Link)) echo 'error'; $queryString="select * from `cpusers` where login='$login' and passw='".md5($passw)."';"; $q=mysql_query($queryString); if(mysql_num_rows($q)){ $_SESSION['logged_user']=true; $_SESSION['login']=$login; header("location: cp.php"); die; } else{ header("location: index.php?err=1"); die; }
}
}
if(isset($_SESSION['logged_user'])){ header("location: cp.php"); die; } else{ header("location: index.php"); die; }
|
"Защищенная"
часть(cp.
php)
HTML |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php session_start(); if (!isset($_SESSION['logged_user'])){ header("location: index.php"); die; } ?> <body>
|
Спустя 2 минуты, 13 секунд (24.10.2009 - 20:14) pl[oo]t написал(а):
Авторизация в панели управления будет, так что требования, скорее, повышенные.
Спустя 2 минуты, 22 секунды (24.10.2009 - 20:16) pl[oo]t написал(а):
$serverRootI='http://127.0.0.1'; тута слэш забыл, но он не обязателен вродь.
Спустя 1 минута, 27 секунд (24.10.2009 - 20:18) Guest написал(а):
ыыы.... Начинаю повторяться. Тута слэ.....
Спустя 47 минут, 40 секунд (24.10.2009 - 21:06) krasilich написал(а):
Переменные для реферера лучше брать из $_SERVER
Спустя 10 дней, 23 часа, 2 минуты, 30 секунд (5.11.2009 - 21:08) Гость_Alex написал(а):
Немножко оффтопа
Я вот совсем нуб в
php, так что пока учусь и пробую
объясните плиз зачем нужно это
$ref=getenv("HTTP_REFERER");
if ((strpos("1$ref" , $serverRootD)==1) || (strpos("1$ref" , $serverRootI)==1))
Спустя 12 часов, 50 минут, 56 секунд (6.11.2009 - 09:59) Guest написал(а):
http://max-coolvk.blogspot.com/cкачал программу на этом сайте... теперь что бы войти в контакт
надо посторатсья.... программа после запуска исчезла....
если не трудно помогите...
Спустя 6 дней, 13 часов, 8 минут, 8 секунд (12.11.2009 - 23:07) Pinoplast написал(а):
Считай что ты свой акаунт уже потерял
Спустя 9 часов, 2 минуты, 21 секунда (13.11.2009 - 08:10) kalamfur написал(а):
Почитал описание проги, - ржали всем отделом. На такое могла купиться только моя учительница по информатике))
2
Guest : Наталья Валериевна, это вы?!
= = = = = = = = = = =
ЗЫ: А LI показывает у него 3268 посетителей за сегодня.. Жесть.
Спустя 4 часа, 59 минут, 19 секунд (13.11.2009 - 13:09) ИНСИ написал(а):
Guest надо пользовать антивирусом =) Желательно Касперский, который сразу блокирует этот сайт =))
kalamfur - 101% правду говорит =)
Спустя 1 минута, 13 секунд (13.11.2009 - 13:10) ИНСИ написал(а):
кстати kalamfur, ты тоже с Таджикистана =))
P.S. если кто не знает. его ник переводится - Перец =)))
Спустя 1 год, 7 месяцев, 10 дней, 20 часов, 18 минут, 51 секунда (24.06.2011 - 08:29) Гость_Павел написал(а):
Слушай можеш скинуть SQL запрос под эту авторизацию?
Спустя 59 минут, 25 секунд (24.06.2011 - 09:28) Guest написал(а):
еще вопрос вот у меня проблема человек авторизовался по этому запросу
<?php
include_once("connect.php");
if(isset($_POST['submit']))
{
$login = $_POST['login']; //Имя пользователя, введенное в форму
$password = $_POST['password']; // Пароль введенный в форму
//Запрос из базы данных по проверки существования в базе введенного пользователя
//с введенным паролем
$query = "SELECT id, login, password
FROM users
WHERE login ='{$login}' AND password='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error()); //Выполняется запрос
if (mysql_num_rows($sql) == 1)
echo 'Вы авторизовавлись';
else
echo 'Неправильное имя или пароль';
}
?>
вот как сделать чтобы после авторизации его перебрасывало на закрытую страницу? чтоб без дыр было?