Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2010, 15:20   #1
GoldmasteR
Заблокирован
 
Регистрация: 05.09.2010
Сообщений: 23
По умолчанию

Авториазция не проходит, не чего не пишет




<?php
include_once("connect.php");
if(isset($_POST['auth_submit']))
{
$login = $_POST['login'];
$password = $_POST['password'];
$login=mysql_real_escape_string($lo gin);
$password=mysql_real_escape_string( $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 'Неправильное имя или пароль';
}
?>



И когда авторизировались, как понять авторизировались мы или нет?

Должно писать Авторизация прошла успешно или Неправильное имя или пароль, но не чего не пишет

И как использоватеть сесию и что это такое!!! Если можно по подробнее, я новечек

Последний раз редактировалось SkyM@n; 09.11.2010 в 16:45.
GoldmasteR вне форума Ответить с цитированием
Старый 09.11.2010, 15:38   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,159
По умолчанию

судя по всему ошибка происходит или
в include_once("connect.php");
а вообще скорее всего не выолняется условие
PHP код:
if(isset($_POST['auth_submit'])) 
если новичок - купи книжку, скачай из инета... начинай с простого, а потом задавай вопросы.. в том числе и про сессии
ADSoft вне форума Ответить с цитированием
Старый 10.11.2010, 19:03   #3
Ruzarh
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 11
По умолчанию

Построй правильнее структуру (раздели обработку и вывод)! И будет видна ошибка!

login.php
PHP код:
<?php

include("connect.php");

$POST['login'] = isset($_POST['login']) ? $_POST['login'] : null;
$POST['password'] = isset($_POST['password']) ? $_POST['password'] : null;

$info = array();


    if(isset(
$_POST['auth_submit']))  
    {  
        
$res query("SELECT COUNT(*) AS `cnt`   
                      FROM `user`   
                      WHERE `login`    = '"
mysql_real_escape_string($POST['login']) ."'  
                      AND   `password` = '"
mysql_real_escape_string($POST['password']) ."'  
                          "
);  
                      
        if(
mysql_result($res0) > 0)  
            
$info "Проходи"
        else  
            
$info 'Стой, стрелять буду!';  
    }
     include 
'./form.html';
?>
form.html
Код HTML:
<?php echo $info ?><br />
<form action='' method="POST">
<input type="text" name="login" value="<?php echo $POST['login'] ?>"><br />
<input type="password" name="password" value="<?php echo $POST['password'] ?>"><br />
<input type="submit" name="auth_submit" value="отправить!"><br />
<form>
Как то примерно так!
Ruzarh вне форума Ответить с цитированием
Старый 10.11.2010, 19:21   #4
GoldmasteR
Заблокирован
 
Регистрация: 05.09.2010
Сообщений: 23
По умолчанию

index.php

<?php
session_start();
mysql_connect('localhost','olgamlm' ,'VhJuxwOk') or die(mysql_error());
mysql_select_db('olgamlm') or die(mysql_error());
mysql_query('SET NAMES cp1251');

include('uni-auth.php');

if(USER_LOGGED) {
if(!check_user($UserID)) logout();
?>
<h1>Здравствуйте, <?php echo $UserName; ?>!</h1>
<h2>Ваш ID: <?php echo $UserID; ?>.</h2>
<h4><a href="?logout">Выход</a></h4>
<?php
}
else { ?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table>
<tr>
<td>Имя:</td><td><input type="text" name="user"></td>
</tr>
<tr>
<td>Пароль:</td><td><input type="password" name="pass"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="login" value="Войти"></td>
</tr>
</table>
</form>
<?php
}
?>



uni-auth.php

<?php
/*
Универсальный скрипт авторизации.
Используется сессии для хранения данных.
Скрипт типа "всё-в-одном" - его необходимо
включать в каждый файл для использования.
Распространяется по лицензии BSD.

+Требования:
+-Mysql & PHP5
+-Созданое подключение к MySQL и запущеная сессия =)

(c)2008 Vasilii B. Shpilchin
*/

##Определяем константы
define('USERS2_TABLE','users2');
define('SID',session_id());

##Определяем функции
//Функция выхода.
//Пользователь считается авторизированым, если в сессии присутствует uid
//см. "Действия - если пользователь авторизирован".
function logout() {
session_unregister('uid'); //Удаляем из сессии ID пользователя
die(header('Location: '.$_SERVER['PHP_SELF']));
}

//Функция входа.
//Все выбраные поля записываются в сессию.
//Таким образом, при каждом просмотре страницы не надо выбирать их заново.
//Для обновления информации из БД можно пользоваться этой же функцией - имя и пароль
//хранятся в сессиях
function login($username,$password) {
$result = mysql_query("SELECT * FROM `".USERS2_TABLE."` WHERE `username`='$username' AND `password`='$password';")
or die(mysql_error());
$USER = mysql_fetch_array($result,1); //Генерирует удобный массив из результата запроса
if(!empty($USER)) { //Если массив не пустой (это значит, что пара имя/пароль верная)
$_SESSION = array_merge($_SESSION,$USER); //Добавляем массив с пользователем к массиву сессии

mysql_query("UPDATE `".USERS2_TABLE."` SET `sid`='".SID."' WHERE `uid`='".$USER['uid']."';")
or die(mysql_error());
return true;
}
else {
return false;
}
}

//Функция проверки залогинности пользователя.
//При входе, ID сессии записывается в БД.
//Если ID текущей сессии и SID из БД не совпадают, производится logout.
//Благородя этому нельзя одновременно работать под одним ником с разных браузеров.
function check_user($uid) {
$result = mysql_query("SELECT `sid` FROM `".USERS2_TABLE."` WHERE `uid`='$uid';") or die(mysql_error());
$sid = mysql_result($result,0);
return $sid==SID ? true : false;
}

##Действия - если пользователь авторизирован
if(isset($_SESSION['uid'])) { //Если была произведена авторизация, то в сессии есть uid

//Константу удобно проверять в любом месте скрипта
define('USER_LOGGED',true);
//Создаём удобные переменные
//Все поля таблицы пользователей записываются в сесси (см. стр. 35-37)
//Таким образом, после добавления нового поля в таблицу надо дописть лишь одну строку
$UserName = $_SESSION['username'];
$UserPass = $_SESSION['password'];
$UserID = $_SESSION['uid'];
}
else {
define('USER_LOGGED',false);
}

##Действия при попытке входа
if (isset($_POST['login'])) {

if(get_magic_quotes_gpc()) { //Если слеши автоматически добавляются
$_POST['user']=stripslashes($_POST['user']);
$_POST['pass']=stripslashes($_POST['pass']);
}
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
if(login($user,$pass)) {
header('Refresh: 3');
die('Вы успешно авторизировались!');
}
else {
header('Refresh: 3;');
die('Пароль неправильный!');
}

}

##Действия при попытке выхода
if(isset($_GET['logout'])) {
logout();
}
?>
GoldmasteR вне форума Ответить с цитированием
Старый 10.11.2010, 19:25   #5
Ruzarh
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 11
По умолчанию

Чувак затри пароли к своему аккаунту!
Ruzarh вне форума Ответить с цитированием
Старый 10.11.2010, 20:58   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,159
По умолчанию

и ваще - хорош плодить одинаковые темы! ...за это и от модераторов можно схлопотать
ADSoft вне форума Ответить с цитированием
Старый 11.11.2010, 19:30   #7
GoldmasteR
Заблокирован
 
Регистрация: 05.09.2010
Сообщений: 23
По умолчанию

сори!!! Уже не надо!!! Буду без входа ))
GoldmasteR вне форума Ответить с цитированием
Старый 22.11.2010, 17:55   #8
shmel2
 
Регистрация: 09.11.2010
Сообщений: 5
По умолчанию

Создал карявый скрипт авторизации хотелось бы довести его до ума так как пользователь сможет легко получить доступ к защищенным сраницам вообщем хелп.
Код:
<?php
header("Content-Type: text/html; charset=UTF-8");
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "UTF-8");

ob_start("ob_iconv_handler");
include ('mysql.php');

$login=@$_GET['login'];
$pass=@$_GET['pass'];
//echo "login: $login pass: $pass";
$query = "SELECT *

			 FROM `users`
			 ";		 
$q=mysql_query($query) or die(mysql_error());
	for ($i = 0; $i < mysql_num_rows($q); $i++)
	{
		$users = mysql_fetch_array($q);
		if (($users[login]==$login)&&($users[password]==$pass))
		{	
			$result = 1;
			session_start();
			$authorize=1;
			session_register("$authorize");
			header('Location: home.html');
			
		}
			$result = 0;
			$authorize=0; 
	}
       
if ($result!=1) die("Несанкционированный доступ");
?>
на каждой защищенной html странице перед <html>
Код:
<?php
session_start();
if ($authorize==null) die("Несанкционированный доступ");
?>
shmel2 вне форума Ответить с цитированием
Старый 22.11.2010, 20:02   #9
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,159
По умолчанию

ну-ка, скажите, как легко может пользователь получить доступ к страницам?
ADSoft вне форума Ответить с цитированием
Старый 22.11.2010, 21:13   #10
shmel2
 
Регистрация: 09.11.2010
Сообщений: 5
По умолчанию

введя в адресной строке localhost/home.html он попадает на защищенную страницу минуя GSI скрипт авторизации.
shmel2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
авторизация fAtliNg Работа с сетью в Delphi 6 14.08.2010 20:14
Авторизация Flippp Общие вопросы C/C++ 0 08.12.2009 11:07
Авторизация? Gromsky PHP 5 07.08.2009 19:27
Авторизация. Jjoker Общие вопросы C/C++ 4 28.01.2009 23:17
Авторизация AIst PHP 5 03.12.2008 20:57