Может где-то потправите, буду рад любым замичаниям...
Есть 3 файла...
index.php
<html>
<head>
<title>АВТОРИЗАЦИЯ</title>
</head>
<body>
<form action="authorize.php" method="post">
Логин:<input type="text" name="login"><br>
Пароль:<input type="password" name="user_pass"><br>
<input type="submit" name="Submit" value="Войти">
</form>
</body>
</html>
authorize.php
<?php
$dblocation = "localhost";
$dbname = "имя";
$dbuser = "пользователь";
$dbpasswd = "пароль";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
exit( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
}
if (! @mysql_select_db($dbname,$dbcnx) ) {
exit( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
}
session_start();
$SERVER_ROOT = "http://domen.com";
$query = "SELECT password FROM users WHERE login='".$_POST['login']."'";
$nme = mysql_query($query);
if(!$nme)
{
echo "Ошибка выполнения запроса";
exit();
}
if(mysql_num_rows($nme) > 0)
{
$password = mysql_result($nme,0);
if(eregi("^$SERVER_ROOT",$_SERVER['HTTP_REFERER'])){
if($_POST['Submit']){
if(($_POST['user_pass']==$password)){
$login = $_POST['login'];
session_register("login");
header("Location: secretplace.php");
exit;
}
}
}
}
?>
<html><body>
Вы ввели неверный пароль!
</body></html>
secretplace.php
<?php
unset($_SESSION['login']);
session_start();
session_register($login);
if(!isset($_SESSION['login'])){
header("Location: index.php");
exit;
}
?>
<html>
<body>
Привет, <?php echo $_SESSION['login']; ?>, ты на секретной странице!!!
</body>
</html>
Спустя 15 минут, 13 секунд (30.08.2010 - 01:11) Dingo написал(а):
жутко , но для начинающего неплохо. Но скажу одно лучше делать все в одном файле используя switch-case для определения действия и в зависимости от указанного действия подключать файл
Спустя 5 часов, 29 минут (30.08.2010 - 06:40) Basili4 написал(а):
Замени
на
по смыслу тоже самое только кошернее
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
exit( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
}
на
$dbcnx = mysql_connect($dblocation,$dbuser,$dbpasswd) or die("<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
по смыслу тоже самое только кошернее
Спустя 1 час, 32 минуты, 20 секунд (30.08.2010 - 08:12) linker написал(а):
eregi() - деприкейтед, надо использовать preg_match()
unset($_SESSION['login']);Какой смысл в этом? Зачем тут же unset(), а потом сразу же session_register()? Вижу у вас доисторический PHP, да еще с включенным register_globals. Как минимум должно быть так
session_start();
session_register($login);
if(!isset($_SESSION['login'])){
header("Location: index.php");
exit;
}
session_start();
if(!isset($_SESSION['login']))
{
header("Location: index.php");
exit;
}