[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите создать систему авторизации
oscar
Здравствуйте!
Уважаемые пользователи форума. Обращаюсь к Вам за помощью...
Помогите создать систему авторизации!
пример это вконтакте или приват банк 24...
То есть пользователь который заходит под своим именем и паролем, видит только ту информацию которую он занес при помощи разработанной страницей программиста!

подробнее: информация занесенная в базу данных пользователями должна выводиться только тем кто ее занес! за ранее спасибо...
AllesKlar
Цитата
Помогите создать систему авторизации!

Так помочь или сделать?

_____________
[продано копирайтерам]
oscar
Помочь сделать))
AllesKlar
Ок.. помогаю.
Начать нужно с
<?php


К сожалению, дальше пока помочь не могу, т.к. нет ни твоих набросок, ни структуры базы, вообще ничего.


_____________
[продано копирайтерам]
oscar
во общем от а до я! хочу сделать при Вашей помощи!!!

?>
GET
oscar

Так и не поняли? Выкладывайте сюда свой код, здесь нет дураков работать за вас.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
oscar
Я вас понимаю! предложите хоть что то! от чего можно оттолкнуться!
zelenuy
oscar
Вот тебе начало :) продолжай
<?header("Content-Type: text/html; charset=utf-8")?>
<?

if(!empty($_POST['login']) and !empty($_POST['password'])){
echo "<center>Привет <b>$_POST[login]</b>, ваш пароль <b>$_POST[password]</b></center>";
}else{
echo "Введите ваши данные";
?>
<form method="post">
<
input type="text" name="login" value="Login"><br>
<
input type="password" name="password" value="Password"><br>
<
input type="submit" value="Войти"><br>
</
form>
<?}?>
AllesKlar
zelenuy
empty($var) - это НЕ коректная проверка на пустое значение.

Цитата
Возвращает FALSE, если var содержит непустое и ненулевое значение.

Следующие значения воспринимаются как пустые:
"" (пустая строка)
0 (целое число)
0.0 (дробное число)
"0" (строка)
NULL
FALSE
array() (пустой массив)
var $var; (переменная объявлена, но не имеет значения в классе)


isset($var) && trim($var) != ''


А это что?
$_POST[login]
$_POST[password]


_____________
[продано копирайтерам]
sergeiss
Цитата (oscar @ 15.03.2014 - 07:13)
?>

Если в конце скрипта, то это не обязательно :)

Цитата (zelenuy @ 15.03.2014 - 11:53)
<?}?>

Если таких строк будет поменьше, то код будет "читабельнее". А для этого более удобен "альтернативный" синтаксис. И не забывай писать PHP!
<?php endif; ?>


oscar, сия система далеко не из 10 строк состоит. Если ты хочешь что-то такое сделать сам, то сначала пойми алгоритм работы. Который, лучше всего, озвучь тут. Если в чем-то не прав, то тебя поправят. А потом уже начнешь писать код под этот алгоритм. Но за тебя никто писать не будет, максимум только несколько строк, не все из которых могут оказаться верными ;)

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
oscar
Подскажите может есть хорошие готовые скрипты... или видео уроки в интернете... с чего начать что бы в мусоре не копаться!1
GET
Цитата
Помогите создать систему авторизации, Авторизация для пользователей


ТС не написал в топике не одной строчки кода! Нет даже HTML формы, нет ни одного вопроса по операторам или тегам. Неужели кто-то, кроме ТС, питает какие-то иллюзии по поводу дальнейшей беседы здесь?



Я помню, как мне 4 года назад писал один эксперт на этом форуме, чтоб я бросал программировать, но я то заваливал топики вопросами по коду, даже пускай совсем глупыми... А так сидеть и ждать чуда...ну что за люди?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
oscar
Во общим вот скрипт!

Файл: index.php
Корневой!




<?php
/////////////////////////////////////////////////////////////////////////////
// ПАНЕЛЬ УПРАВЛЕНИЯ
////////////////////////////////////////////////////////////////////////////

require_once 'library/access.php';
require_once 'library/config.php';
require_once 'library/functions.php';

$user = new stdClass(); // Создаём объект
foreach( $_REQUEST as $key=>$val ) $user->$key = sanitize($val); //получаем переменные
/*
$sql="SELECT
*
FROM
users
WHERE
login='$user->login'";

$result = mysql_query($sql);

$user->password2=mysql_result($result ,0,'password');
$user->password=md5($user->password);
*/

?>
<HTML>
<
HEAD>
<
title>Панель управления</title>
<
meta charset="utf-8">
<
link href="css/trontastic/jquery-ui.css" rel="stylesheet" type="text/css"/>
<
script src="js/jquery.js"></script>
<
script src="js/jquery-ui.js"></script>
</
HEAD>
<
BODY style='background:transparent url(css/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png) repeat 0 0 scroll;'>
<
div>
<
div style="float: left; padding: 10px; margin-top: 50px;">
<
script>
$(function() {
$( "#menu" ).menu();
});
</
script>
<
style>
.
ui-menu { width: 200px; }
p {padding: 10px;}
</style>

<
ul id="menu">
<
li><a href="index.php">Панель управления</a></li>
<
li>
<
a href="#"><span class="ui-icon ui-icon-person"></span>Пользователи</a>
<
ul>
<
li><a href="index.php?p=affeliates">Партнеры</a></li>
<
li><a href="#">Клиенты</a></li>
<
li><a href="#">Менеджеры</a></li>
</
ul>
</
li>
<
li><a href="<?php echo $logoutAction ?>"><span class="ui-icon ui-icon-power"></span>Выход</a></li>
</
ul>
</
div>

<
div style="float: left" class="ui-widget-content" style="width:90%; max-width:1200px; min-width:900px;" >
<
div style="width: 900px; height: 700px; ">
<?php

switch ($_GET['p']) {
case "panel": require_once 'pages/panel.php'; break;
case "affeliates": require_once 'pages/affeliates.php'; break;
default: require_once 'pages/panel.php'; break;
}

?>

</div>

</
div>
</
BODY>
</
HTML>



---------------------------------------------------------------------------------------------------- -------------------
Подключаем файл: access.php



<?php
session_start();

/////////////////////////////Устанавливаем переменные//////////////////////////////////////////////////
require_once('config.php');
require_once('functions.php');

$AuthorizedUsers = "Менеджер,Партнер,Клиент"; //Уровни доступа которым открыта админка
$MainURL = "../";
$logoutAction = "index.php?doLogout=true"; // ссылка кнопки выход

if ($_SERVER['QUERY_STRING'] != "") $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);

//////////////////////////////////////////////////////////////////////////////////////////////////// /////////////
// Проверяем нажата ли кнопка "выход"
if ($_GET['doLogout'] == "true"){
//для полного выхода пользователя нужно очистить все переменные
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);

//когда все переменные сессии освобождены переадресовываем на главную
header("Location: $MainURL");
exit;
}

// Если пользователь не авторизован
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$AuthorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {

$qsChar = "?";
$Referrer = $_SERVER['PHP_SELF'];

if (strpos($MainURL, "?")) $qsChar = "&";

if (strlen($_SERVER['QUERY_STRING']) > 0)
$Referrer .= "?" . $_SERVER['QUERY_STRING'];
$MainURL = $MainURL. $qsChar . "accesscheck=" . urlencode($Referrer);

header("Location: ". $MainURL);
exit;
}

// получаем необходимые переменные
$CurrentLogin=$_SESSION['MM_Username']; // берем текущий логин из сесcии





Подключаем файл: config.php



<?php
//Настройки соединения с БД
$hostname_connect = "localhost";
$database_connect = "masterphp";
$username_connect = "root";
$password_connect = "";

$connect = mysql_pconnect($hostname_connect, $username_connect, $password_connect) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_connect);
// Вывод данных в кодировке
@mysql_query ("set character_set_client='utf8'");
@mysql_query ("set character_set_results='utf8'");
@mysql_query ("set collation_connection='utf8_unicode_ci'");





Подключаем файл: functions.php



<?php
/////////////////////////////////////////////////////////////
/// функции скрипта
////////////////////////////////////////////////////////////

//
//
//--------------- защита передаваемых данных в БД-------------
// пример использования
// $_POST = sanitize($_POST);

function cleanInput($input) {

$search = array(
'@<script[^>]*?>.*?</script>@si', // javascript
'@<[\/\!]*?[^<>]*?>@si', // HTML теги
'@<style[^>]*?>.*?</style>@siU', // теги style
'@<![\s\S]*?--[ \t\n\r]*>@' // многоуровневые комментарии
);

$output = preg_replace($search, '', $input);
return $output;
}

function sanitize($input) {
if (is_array($input)) {
foreach($input as $var=>$val) {
$output[$var] = sanitize($val);
}
}

else {
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
$input = cleanInput($input);
$output = mysql_real_escape_string($input);
}
return $output;
}

//*****Функция решающая проблему совместимости использования кавычек в запросе разных версий PHP*******
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

// *************************Доступ к странице: Полный доступ или нет доступа*********************************************
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
// Для безопасности сначала пользователь не авторизован
$isValid = False;

// When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
// Therefore, we know that a user is NOT logged in if that Session variable is blank.

if (!empty($UserName)) {
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
// Parse the strings into arrays.

$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
// Or, you may restrict access to only certain users based on their username.
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && false) {
$isValid = true;
}
}

return $isValid;
}

// *************************Сообщение "ВНИМАНИЕ" *********************************************
function alert($head, $body) {

echo '<div align="left" class="ui-widget" style="margin: 20px; ">
<div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 1.7em;">
<span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
<strong >'
.$head.' </strong> '.$body.'
</div>
</div>'
;
return true;
}


// *************************Сообщение "ВНИМАНИЕ" ******** анимированное*************************************
function alert_animated($head, $body) {
echo "<script>";
echo '$("';
echo"<div align='left' id='info_message'>";
echo "<div class='ui-widget' style='width: 90%; max-width:1200px; margin: 20px auto; padding: 10px;'><div class='ui-state-highlight ui-corner-all' style='width: 90%; max-width:1200px; margin: 0px auto; padding: 10 .7em;'><p><span class='ui-icon ui-icon-info' style='float: left; margin-right: .3em;'></span><strong>";
echo $head;
echo "</strong>";
echo $body;
echo'</p></div></div></div>").appendTo("#place_to_message");';
echo "$('#info_message').hide();";
echo "$('#info_message')";
echo " .fadeIn(3000,";
echo " function(){})";
echo " .fadeOut(6000, ";
echo " function(){";
echo " $(this).remove();";
echo " });";
echo "</script>";

return true;
}
// *************************Сообщение "ОШИБКА *********************************************
function say_error($head, $body) {
echo "<div align='left' id='error_message'><div class='ui-widget' style='width: 90%; max-width:1200px; margin: 20px auto; padding: 10px;'><div class='ui-state-error ui-corner-all' style='width: 90%; max-width:1200px; margin: 0px auto; padding: 10 .7em;'><p><span class='ui-icon ui-icon-alert' style='float: left; margin-right: .3em;'></span><strong>".$head."</strong>".$body."</p></div></div></div>";
return true;
}

// *************************Сообщение "ОШИБКА" ******** анимированное*************************************
function say_error_animated($head, $body) {

echo "<script>";
echo '$("';
echo"<div align='left' id='error_message'>";
echo "<div class='ui-widget' style='width: 90%; max-width:1200px; margin: 20px auto; padding: 10px;'><div class='ui-state-error ui-corner-all' style='width: 90%; max-width:1200px; margin: 0px auto; padding: 10 .7em;'><p><span class='ui-icon ui-icon-alert' style='float: left; margin-right: .3em;'></span><strong>";
echo $head;
echo "</strong>";
echo $body;
echo'</p></div></div></div>").appendTo("#place_to_message");';
echo "$('#error_message').hide();";
echo "$('#error_message')";
echo " .fadeIn(3000,";
echo " function(){})";
echo " .fadeOut(6000, ";
echo " function(){";
echo " $(this).remove();";
echo " });";
echo "</script>";

return true;
}

// *************************Получение данных партнера*************************************
function get_data_affeliate($id,$data) {
$ResultQuery=mysql_query ("SELECT
$data
FROM
affeliates
WHERE
id_user='
$id'");

return mysql_result($ResultQuery,0,$data);
}

//-----------------------------функция проверки корректности введенного email на уровне формата---------------------------------------
function is_email($email) {
if (isset($email))
if(filter_var($email, FILTER_VALIDATE_EMAIL))
return true;
else
return
false;
}




Ну а это страница регистрации: _register.php


<?php
require_once 'config.php';
require_once 'functions.php';

$user = new stdClass(); // Создаём объект
foreach( $_REQUEST as $key=>$val ) $user->$key = sanitize($val); //получаем переменные

if (strlen($user->login)<5) {
say_error_animated("Ошибка: ", "Логин меньше 5 символов!");
exit();
}

if (strlen($user->password)<5) {
say_error_animated("Ошибка: ", "Пароль меньше 5 символов!");
exit();
}

if (!is_email($user->email)) {
say_error_animated("Ошибка: ", "Email введен не верно!");
exit();
}

if (strlen($user->firstname)<2) {
say_error_animated("Ошибка: ", "Имя меньше 2 символов!");
exit();
}

if (strlen($user->lastname)<2) {
say_error_animated("Ошибка: ", "Фамилия меньше 2 символов!");
exit();
}

if (strlen($user->city)<2) {
say_error_animated("Ошибка: ", "Город меньше 2 символов!");
exit();
}

$sql="SELECT
*
FROM
users
WHERE
(login='
$user->login') OR (email='$user->email')";

$result = mysql_query($sql);

if (mysql_num_rows($result)){
say_error_animated("Ошибка: ", "Такой партнер уже зарегистрирован!");
exit();
}

$user->password=md5($user->password);

$sql="INSERT INTO
users
VALUES(
NULL,
'
$user->login',
'
$user->password',
'
$user->email',
'Партнер'
)"
;
$result = mysql_query($sql) or die(say_error_animated("Ошибка: ", mysql_error()));

$sql="SELECT
*
FROM
users
WHERE
(login='
$user->login') AND (email='$user->email')";

$result = mysql_query($sql);
$user->id_user=mysql_result($result ,0,'id');

$sql="INSERT INTO
affeliates
VALUES(
NULL,
'
$user->id_user',
'
$user->firstname',
'
$user->lastname',
'
$user->city',
'
$user->url',
'
$user->description_site',
'
$user->subscribers'
)"
;
$result = mysql_query($sql) or die(say_error_animated("Ошибка: ", mysql_error()));

if ($result)
alert("Внимание! ",$user->firstname.", Вы успешно зарегистрированы!<br> Используйте свой логин и пароль для входа в партнерскую программу: <a href='index.php?p=login'><u>Войти.</u></a>");



Это страница авторизации: authorization.php



<?php
session_start(); //обязательно в самом начале

require_once('config.php');
require_once('functions.php');

$level = "level";
$url_success = "/engine/";

if (isset($_GET['accesscheck'])) $_SESSION['PrevUrl'] = $_GET['accesscheck'];

//обработка отправки данных из формы
if (isset($_POST['login'])) {

//получаем из формы
$login= sanitize($_POST['login']);
$password=md5(sanitize($_POST['password']));


//создаем защищенный запрос для поиска логина и пароля в БД
$query=sprintf(
"SELECT
login, password, level
FROM
users
WHERE
login=%s AND password=%s"
,
GetSQLValueString($login, "text"),
GetSQLValueString($password, "text")
);


$result = mysql_query($query) or die(mysql_error()); //делаем запрос к БД
$count = mysql_num_rows($result); //получаем количество найденных пользователей


//Если найден пользователь, т.е. есть такая пара логин пароль

if ($count===1) {


// для совместимости с версиями PHP проверяем версию и только потом обновляем сессию
if (PHP_VERSION >= 5.1) session_regenerate_id(true); else session_regenerate_id(); //и запускаем сессию

$_SESSION['MM_Username'] = $login; //записываем данные в сессию

$ResultQuery = mysql_query ("SELECT * FROM `users` WHERE (login='$login') ");
while($Result=mysql_fetch_array($ResultQuery)){
$level=$Result[4];
}


$_SESSION['MM_UserGroup'] = $level; //записываем данные в сессию

if (isset($_SESSION['PrevUrl'])) //и если установлена переменная сессии
$url_success = $_SESSION['PrevUrl'];//получаем адрес админки

header("Location: " . $url_success ); //переадресовываем в админку

} else //если такого пользователя нет, то выводим ошибку!
// echo "<div id='error_message'><div align='left' class='ui-widget' style='width: 90%; max-width:1200px; margin: 20px auto; padding: 10px;'><div class='ui-state-error ui-corner-all' style='width: 90%; max-width:1200px; margin: 0px auto; padding: 10 .7em;'><p><span class='ui-icon ui-icon-alert' style='float: left; margin-right: .3em;'></span><strong>Ошибка: </strong>Неправильно введена пара логин/пароль. </p></div></div></div>";

say_error("Ошибка: ","Неправильно введена пара логин/пароль.");

}




Вот из этого хочу создать форму регистрации и авторизации как описсал в теме!!!
Быстрый ответ:

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