sasha_ua
Постоялец
- Регистрация
 - 22 Июн 2010
 
- Сообщения
 - 66
 
- Реакции
 - 0
 
- Автор темы
 - #1
 
Здравствуйте.
Написал простую активацию на ПХП но есть 2 проблемы:
1. Как запретить доступ ко всему кроме index.php, т.е. чтобы нельзя было ввести site/admin.php
Пробовал запрещать в .htaccess но тогда доступ через скрипты тоже закрыт, например admin.php выступает как обработчик формы в index.php и соответственно при вызове будет ошибка.
	
	
	
		
Не помогло.
2. Как сделать так чтобы поля login/password не запоминали значений(картинка в приложении)?
autocomplete="off" не помог
Задача активации дать доступ к странице admin.php
Вот код:
index.php
	
	
	
		
admin.php
	
	
	
		
functions.php
	
	
	
		
	
		
			
		
		
	
				
			Написал простую активацию на ПХП но есть 2 проблемы:
1. Как запретить доступ ко всему кроме index.php, т.е. чтобы нельзя было ввести site/admin.php
Пробовал запрещать в .htaccess но тогда доступ через скрипты тоже закрыт, например admin.php выступает как обработчик формы в index.php и соответственно при вызове будет ошибка.
		Код:
	
	RewriteEngine on
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule^([^?]*)$ /index.php?path=$1 [NC,L,QSA]
	2. Как сделать так чтобы поля login/password не запоминали значений(картинка в приложении)?
autocomplete="off" не помог
Задача активации дать доступ к странице admin.php
Вот код:
index.php
		Код:
	
	<?php 
require_once('functions.php');
// while (@ob_end_flush());
do_html_header();
display_login_form();
do_html_footer(); 
?>
	admin.php
		Код:
	
	<?php 
require_once('functions.php');
session_start();
// Создать короткие имена переменных
$username = $_POST['username'];
$passwd = $_POST['passwd'];
if ($username && $passwd) {
// Пользователь только что попытался войти в систему
  try {
    login($username, $passwd);
    // Если пользователь записан в базе данных, 
    // зарегистрировать его идентификатор
    $_SESSION['valid_user'] = $username;
  }
  catch (Exception $e) {
    // Неудачный вход в систему
    do_html_header('Проблема:');
    echo 'Вход в систему невозможен. '
         .'Для просмотра этой страница необходимо войти в систему.';
    do_html_url('index.php', 'Вход');
    exit;
  }      
}
do_html_header();
check_valid_user();
// Пишем все что нам нужно от админки
$_SESSION['valid_user'] == 0;
session_destroy();
do_html_footer(); 
?>
	functions.php
		Код:
	
	<?php 
function display_login_form() {
?>
    <form method="post" action="admin.php" class="login-form">
        <ul>
            <li>
                <label for="username">Login</label>
                <input type="text" id="username" name="username" autocomplete="off">
            </li>
            <li>
                <label for="passwd">Password</label>
                <input type="password" id="passwd" name="passwd" autocomplete="off">               
            </li>
            <li><input id="submit-btn" type="submit" value="Вход"></li>
        </ul>
    </form>
<?php
}
function db_connect() {
  $result = new mysqli("localhost", "root", "", "portfolio"); 
  if (!$result)
    throw new Exception('Невозможно подключиться к серверу баз данных');
  else
    return $result;
}
function do_html_header($title="") {
?>
    <!DOCTYPE html>
    <html>
    <head>
        <title><?php echo $title;?></title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <style media="all" type="text/css">@import "css/style.css";</style>
        <link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700,300italic&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
    </head>
    <body>
    <div class="container">
<?php
  if($title)
    do_html_heading($title);
}
function do_html_heading($heading) {
  // Вывести верхний колонтитул HTML
?>
  <h2><?php echo $heading; ?></h2>
<?php
}
function do_html_footer() {
?>
  </div>
  </body>
  </html>
<?php
}
function do_html_URL($url, $name) {
  // Вывести URL-адрес в виде ссылки и дескриптор новой строки
?>
  <br /><a href="<?php echo $url;?>"><?php echo $name;?></a><br />
<?php
}
function check_valid_user() {
  // Определяет, вошел ли пользователь в систему и, 
  // если нет, выводит соответствующее уведомление
  global $valid_user;
  if (isset($_SESSION['valid_user'])) {
    echo 'Вы вошли в систему под именем '
      .stripslashes($_SESSION['valid_user']).'.';
    echo "<br />";
  } else {
    // Пользователь не вошел в систему
    do_html_heading("Проблема:");
    echo "Вы не вошли в систему.<br />";
    do_html_url('index.php', 'Вход');
    exit;
  }
}
function login($username, $password) {
  // Проверяет наличие имени пользователя и пароля в базе данных.
  // Если они там содержатся, возвращается значение true, 
  // в противном случае генерируется исключение.
  // Подключиться к базе данных
  $conn = db_connect();
  // Проверить уникальность имени пользователя
  $result = $conn->query("select * from user
            where username='$username' and passwd = md5('$password')");
  if (!$result)
    throw new Exception('Вход в систему невозможен');
  if ($result->num_rows > 0)
    return true;
  else
    throw new Exception('Вход в систему невозможен');
}
?>
	
				
			
