Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

07.01.2008, 21:19
|
|
Участник форума
Регистрация: 21.02.2007
Сообщений: 171
Провел на форуме: 849260
Репутация:
32
|
|
Простая защита на Php
оочень нужен скрипт PHP следующего характера.
Простая авторизация:
2 поля Логин пароль
Кнопка войти.
Проверяет данные через БД. (БД: таблица: user и pass)
Если введено верно: открывает данную страницу(которая защищена)
Если не верно: выводит сообщение: доступ закрыт и типа этого
Спасибо заранее
Последний раз редактировалось Хелпер; 07.01.2008 в 21:33..
|
|
|

07.01.2008, 21:33
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
http://bozza.ru/?c=403&p=content
http://bozza.ru/?c=404&p=content
|
|
|

07.01.2008, 21:35
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
[
PHP код:
<?php
include("header.php");
error_reporting(0);
session_start();
foreach($_POST as $x => $y)
{
$x[$y] = mysql_escape_string($x[$y]);
}
$query = mysql_query("SELECT `name`,`pass` FROM `users` WHERE `name`='".$_COOKIE['name']."' AND `pass`='".$_COOKIE['pwd']."'");
if(mysql_num_rows($query)) $reged = 1;
if($reged)
{
echo "Хм...разве вы уже не вошли?";
}
else
{
echo '<div align="center">
<form method="post">
<table>
<tr>
<td>Логин</td>
<td><input type="text" value="" name="name"></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" value="" name="pass"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Войти" name="sub"></td>
</tr>
</table>
</form>
</div>';
}
if($_POST['sub'])
{
$password = md5($_POST['pass']);
$error = '';
if (!get_magic_quotes_gpc())
{
$_POST['name'] = mysql_escape_string($_POST['name']);
}
if(empty($_POST['name']) || empty($_POST['pass']))
{
$error = 'Вы не ввели логин или пароль';
}
if($error)
{
echo "<div align='center'><div class='error'>".$error."</div></div>";
}
else
{
$query = "SELECT `name`, `pass` FROM `users` WHERE `name`='".$_POST['name']."' AND `pass`='".$password."'";
$result = mysql_query($query);
if(mysql_num_rows($result))
{
$row = mysql_fetch_array($result);
setcookie('name', $row['name'], time() + 86400 * 30 * 12);
setcookie('pwd', $row['pass'], time() + 86400 * 30 * 12);
echo "<div align='center'><div class='complete'>Вы успешно зашли</div></div>";
}
else
{
echo "<div align='center'><div class='error'>Логин или пароль не верен.</div></div>";
}
}
}
?>
|
|
|

07.01.2008, 21:40
|
|
Участник форума
Регистрация: 21.02.2007
Сообщений: 171
Провел на форуме: 849260
Репутация:
32
|
|
ВЫ уж извените, но я совсем тупой. Поясните!
Последний раз редактировалось GreenBear; 07.01.2008 в 22:23..
|
|
|

07.01.2008, 21:48
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
PHP код:
<?php
if(isset($_POST['go']))
{
$tlogin = trim($_POST['login']);
$tpass = trim($_POST['pass']);
if(empty($tlogin) or empty($tpass))
{
echo"Не заполнено поле логин или пароль";
}
else
{
#тут можно замутить проверку на спецсимволы
$login = $_POST['login'];
$pass = $_POST['pass'];
//$pass = md5($pass); можно и зашифровать
$query = mysql_query("SELECT * FROM `users` WHERE `user` = '".$login."' and `pass` = '".$pass."'");
if(mysql_num_rows($query) == 0)
{
echo"БЛА-БЛА-БЛА";
}
else
{
/*
Твоя защищённая страница
*/
}
}
}
else
{
?>
Введите логин и пароль:
<form action method="post">
<input type="text" name="login" />
<input type="password" name="pass" />
<input type="submit" name="go" />
</form>
<?php
}
?>
Типа такого, писал сходу поэтому не тестил, но по идее должно работать....плюс ко всему рекомендую использовать сессии или куки.
Вводимые данные не проверяются, используй mysql_real_escape_string() и htmlspecialchars() и пароль шифруй хотя бы в md5()
Удачи 
Последний раз редактировалось .:EnoT:.; 07.01.2008 в 22:22..
|
|
|

07.01.2008, 21:55
|
|
Участник форума
Регистрация: 21.02.2007
Сообщений: 171
Провел на форуме: 849260
Репутация:
32
|
|
В обоих случаях при зоходи на этот скрипт выводит следующие:
мой_логин@esoo.ru li-xkfJo мой_логин bZ62vg-S ykafxtaa
|
|
|

07.01.2008, 22:17
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Вот подправил немного скрипт:
PHP код:
<?php
@session_start();
$dbhost = "localhost";
#Имя пользователя БД
$dbuser = "root";
#Пароль пользователя
$dbpass = "";
#Имя БД
$dbname = "db";
mysql_connect("$dbhost", "$dbuser", "$dbpass") or die("Неконнект");
mysql_select_db("$dbname") or die("Неконнект");
if(isset($_POST['go']))
{
$tlogin = trim($_POST['login']);
$tpass = trim($_POST['pass']);
if(empty($tlogin) or empty($tpass))
{
echo"Не заполнено поле логин или пароль";
}
else
{
//$pass = md5($pass); можно и зашифровать
if (!get_magic_quotes_gpc())
{
$login = htmlspecialchars(mysql_escape_string($_POST['login']));
$pass = htmlspecialchars(mysql_escape_string($_POST['pass']));
}
else
{
$login = htmlspecialchars($_POST['login']);
$pass = htmlspecialchars($_POST['pass']);
}
$query = mysql_query("SELECT * FROM `users` WHERE `user` = '".$login."' and `pass` = '".$pass."'");
if(mysql_num_rows($query) == 0)
{
echo"БЛА-БЛА-БЛА";
}
else
{
echo"ПривеД";
/*
Твоя защищённая страница
*/
}
}
}
else
{
?>
Введите логин и пароль:
<form action method="post">
<input type="text" name="login" /><br />
<input type="password" name="pass" /><br />
<input type="submit" name="go" />
</form>
<?php
}
?>
У меня всё прекрасно работает...банальный пример таблицы
Код:
CREATE TABLE `users` (
`id` int NOT NULL PRIMARY KEY AUTO_INCREMENT ,
`user` text NOT NULL ,
`pass` text NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = cp1251
insert into `users` value(null, '123', '12345')
Логин 123, пасс 12345
Опять же пасс не стал шифровать.
З.Ы. Исис ну ты и намудрил)) Ему ж простой код надо.
И кстати откуда в твоём скрипте взялся header.php, он вроде такого не заказывал)))
|
|
|

08.01.2008, 16:37
|
|
Участник форума
Регистрация: 07.01.2008
Сообщений: 109
Провел на форуме: 214923
Репутация:
17
|
|
Если надо могу скинуть скрипт, но БД в текстовом файле! (У меня с MySQL не получается подружиться...)
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|