Помощник
|
Ошибка в PHP |
macbeth9
|
Сообщение
#1
|
||
|
|
||
|
|||
ottaviano |
18.6.2010, 14:56;
Ответить: ottaviano
Сообщение
#2
|
|
macbeth9, можно так
[PHP]$_SESSION['access'] = ""; $_SESSION['no_access'] = ""; $_SESSION['sess_login'] = ""; $_SESSION['sess_pass'] = "";[/PHP] только им нужно присвоить какие нибудь значения |
|
|
macbeth9
|
Сообщение
#3
|
|
а какие значения?
|
|
|
ottaviano |
18.6.2010, 15:00;
Ответить: ottaviano
Сообщение
#4
|
|
macbeth9, можно полностью код посмотреть?
|
|
|
macbeth9
|
Сообщение
#5
|
|
[PHP]<?php
session_start(); $_SESSION['access'] = ""; $_SESSION['no_access'] = ""; $_SESSION['sess_login'] = ""; $_SESSION['sess_pass'] = ""; // Насройки $dblocation = "localhost"; // Cервер базы данных $dbname = "";// Имя базы данных $dbuser = ""; // Имя пользователя базы данных $dbpasswd = ""; // Пароль $mail = ""; // e-mail администартора // Устанавливаем соединение с базой данных $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if(!$dbcnx) { echo "<p>Сервер базы данных не доступен...</p>"; exit(); } if(! @mysql_select_db($dbname,$dbcnx) ) { echo "<p>База данных не доступна...</p>"; exit(); } $ip = getenv("REMOTE_ADDR"); $browser = getenv("HTTP_USER_AGENT"); $reff = getenv("HTTP_REFERER"); $_POST['login'] = trim($_POST['login']); $_POST['password'] = trim($_POST['password']); $_POST['login'] = mysql_escape_string($_POST['login']); $_POST['password'] = trim($_POST['password']); $admin = ""; $admin = $_POST['admin']; if(!empty($admin) AND $_POST['login']) { if(empty($_POST['login'])) exit("Введите логин!"); if(empty($_POST['password'])) exit("Введите пароль!"); // Извлекаем логин и пароль из базы данных $query = "SELECT * FROM aut WHERE login='".$_POST['login']."'"; $result = mysql_query($query); if($result) $aut = mysql_fetch_array($result); $login_aut = $aut['login']; $passw_aut = $aut['passw']; if($_SESSION['sess_admin'] != ok) { $sess_login = $_POST['login']; $sess_pass = md5($_POST['password']); } ValidPass($sess_login,$sess_pass,$login_aut,$passw_aut,$ip); } else { if(isset($no_access)) { if($_SESSION['sess_admin'] != ok) { $no_access++; if($no_access == 4) { SendEmail($ip,$browser,$reff,$mail,$access,$HTTP_HOST); exit; } if($no_access < 4) ShowAdmin(); if($no_access > 4) exit; } } else { if($_SESSION['sess_admin'] != ok) { $no_access = 1; ShowAdmin(); } } } function ShowAdmin() { ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Авторизация</title> <style type="text/css"> @import url(css/styles.css); @import url(../css/styles.css); @import url(../../css/styles.css); </style> </head> <body> <table id="content" border="0" cellpadding="0" cellspacing="0"> <tr> <td id="col_c" valign="top"> <div class="mrg"> <div align="center"> <div class="login"> <form method="post"> Логин: <input type="text" name="login" size="20" class="login_pole"><br><br> Пароль: <input type="password" name="password" size="20"><br><br> <input type="submit" name="admin" class="button" value="Войти"> </form></div></div> </div> </td> </tr> <tr> </tr> </table> </body> </html> <?php exit(); } // Функция вывода ошибки function error() { ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Неверные данные авторизации!</title> <style type="text/css"> @import url(css/styles.css); @import url(../css/styles.css); @import url(../../css/styles.css); </style> </head> <body> <table id="content" border="0" cellpadding="0" cellspacing="0"> <tr> <td id="col_c" valign="top"> <div class="mrg"> <script type='text/javascript'> window.alert('Ошибка авторизации. Доступ закрыт!'); window.location.href='<?=$_SERVER['PHP_SELF'] ?>'; </script> </div> </td> </tr> <tr> </tr> </table> </body> </html> <?php exit(); } // Функция проверки логина и пароля function ValidPass($sess_login,$sess_pass,$login_aut,$passw_aut,$ip) { if(($sess_login === $login_aut) && ($sess_pass === $passw_aut)) { $_SESSION['sess_admin'] = "ok"; $_SESSION['login'] = $login_aut; // Запись в лог $query = "INSERT INTO log VALUES (0, '$sess_login', '$ip', NOW())"; mysql_query($query); return array($sess_login,$sess_pass); } else { error(); } } // Отправка сообщений администратору function SendEmail($ip,$browser,$reff,$mail,$access,$server) { $Headers = "Content-Type: text/plain; charset=windows-1251\nFrom: admin@$server\n"; $Headers .= "X-Priority: 1\n"; if(empty($reff)) $Message = "Попытка взлома $server!\n\nПредпринята попытка несанкционированного доступа ".date("d.m.Y г. в G:i:s").".\nДанные о нарушителе:\nip - ".$ip."\nбраузер - ".$browser; else $Message = "Попытка взлома $server!\n\nПредпринята попытка несанкционированного доступа со стороннего сервера ".date("d.m.Y г. в G:i:s").".\nДанные о нарушителе:\nip - ".$ip."\nбраузер - ".$browser."\nсервер - ".$reff; @mail($mail,"Попытка взлома $server!",$Message,$Headers); } ?>[/PHP] |
|
|
ottaviano |
18.6.2010, 15:14;
Ответить: ottaviano
Сообщение
#6
|
|
macbeth9, удали это [PHP]$_SESSION['access'] = "";
$_SESSION['no_access'] = ""; $_SESSION['sess_login'] = ""; $_SESSION['sess_pass'] = ""; [/PHP] и в этом я тоже не вижу необходимости: [PHP]session_register('access','no_access'); session_register('sess_login','sess_pass'); [/PHP] |
|
|
macbeth9
|
Сообщение
#7
|
|
Спасибо за помощь
|
|
|
ZhukV |
18.6.2010, 15:23;
Ответить: ZhukV
Сообщение
#8
|
|
Е нет парни, это не втом дело!!!
Код смотреть не хочу, а вот проблемка такая была. Вот обяснение. Когда ты регистрируеш сесию, и передаеш ей значение, они залетают в глобальную область видимости. Типа: [PHP] $_SESSION["NAME"] = "Zhuk Vitaliy"; echo $NAME; $_SESSION["LOGIN"] = "ZhukV"; echo $LOGIN; //PHP < 4.2.3 [/PHP] Эта ошибка указывает, те, что где-то, была иницыилизация переменных с одинм и тем же именим, и что может быть в этом ошибка. Типа: [PHP] $NAME = "ZhukV"; $_SESION["NAME"] = "ZhukV"; [/PHP] Короче, чтоб не вылазили такие ошибки, передай в сессию другую назву. Вот к примеру у меня было: [PHP] $POISK = array(/* */); $_SESSION["POISK"] = $POISK; [/PHP] Вылазила ошибка [PHP] $POISK = array(/* */); $_SESSION["APOISK"] = $POISK; [/PHP] Пропала. |
|
|
ottaviano |
18.6.2010, 16:14;
Ответить: ottaviano
Сообщение
#9
|
|
|
ZhukV, действительно так :goodpost:
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3291 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1170 | 24.11.2023, 14:46 автор: alexey |
|
Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP) | 56 | qpPeW | 44765 | 19.7.2023, 10:03 автор: qpPeW |
|
Есть спецы по php/laravel? | 3 | Mixatraider | 1856 | 26.5.2023, 20:48 автор: Mixatraider |
|
Опытный PHP\Python разработчик в поиске интересных задач | 6 | daikzlex | 3360 | 25.5.2023, 13:55 автор: daikzlex |
Текстовая версия | Сейчас: 28.3.2024, 23:43 |