[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: авторизация на php
pl[oo]t
Доброго времени суток.
Пытаюсь писать сайт, опыта программирования в пхп мало(практически нету), но в общем программирование понимаю. Начать решил с авторизации и написал простенький скриптик.
Хотелось бы за минимальное время сделать его пригодным для применения.
С функционалом разберусь сам, опасаюсь за безопасность. Просто слышал что скрипты пхп защищаются дольше, чем пишутся. Может кто-нить скинуть пару ссылок на статейки, в которых тема нормально раскрыта, но не требует пары недель для понимания и не опирается на хорошие знания 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;
    }


"Защищенная" biggrin.gif часть(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 написал(а):
Почитал описание проги, - ржали всем отделом. На такое могла купиться только моя учительница по информатике))
2Guest : Наталья Валериевна, это вы?! biggrin.gif





= = = = = = = = = = =

ЗЫ: А 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 'Неправильное имя или пароль';
}
?>


вот как сделать чтобы после авторизации его перебрасывало на закрытую страницу? чтоб без дыр было?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.