Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Белый лист при обращении к MySQL-функциям
 
 автор: Ivanio   (26.01.2006 в 21:06)   письмо автору
 
 

Здравствуйте.
Во пишу админку для своего же движка.

вот код главной страницы админки, которая отвечает за: проверку если ты залогинен, если нет то выводит форму для логина, если да то выводит меню.
никак не могу понять почему резуьтат выполнения этого скрипта - белый лист




<?php

#####################################
define("INDEX_CODE"true);
#####################################
require_once("config_main.php");
require_once(
"lang/lang-".$config['lang'].".php");
require_once(
"config_db.php");
require_once(
"func_main.php");

### Определяем если уже админ ###
session_start();
if((isset(
$_SESSION['login'])) AND (isset($_SESSION['password'])))
{
    
$login trim($_SESSION['login']);
    
$password trim($_SESSION['password']);
    
$ath mysql_query("SELECT * FROM ".$prefix."admins WHERE admins_login = '".$login."' LIMIT 1;");
    if(!
$ath)
    {
        
$message "Произошла ошибка при работе с БД";
        
error($config,$message);
        die();
    }
    
$ath2 mysql_fetch_array($ath);
    if(
mysql_num_rows($ath) > 0)
    {
       
       
$password1 $ath2['admins_password'];
       
// Сравниваем пароль из БД с тем, что из сессии
       
if (md5($password) == $password1)
       {
           
define("ADMIN_TRUE"true);
       }
       else
       {
           
//выводим форму входа в админ. панель
           
include_once("header.php");
           
theme_LoginAdmin();
           include_once(
"footer.php");
           die();
       }
    }
}

###################

if(defined("ADMIN_TRUE"))
{
    if((isset(
$_GET['mod'])) AND ($_GET['mod'] != ""))
    {
        
$mod trim($_GET['mod']);
        
$mod htmlspecialchars(stripslashes($mod));
        if(
$mod == "logout"//осуществляем выход из админки
        
{
            unset(
$_SESSION['login']);
            unset(
$_SESSION['password']);
            
session_destroy();
            
redirect("index.php");
            die();
        }
        
$modpath "admin_panel/".$mod."/index.php";
        if(
file_exists($modpath))
        {
            include_once(
$modpath);
        }
        else
        {
            
error("Такой страницы не существует");
        }
    }
    if((!isset(
$_GET['mod'])))
    {
        
//выводим главное меню админ. панели
        
$mods_list "";
        
$handle=opendir("admin_panel/");
        while(
$file readdir($handle))
        {
            if((!
ereg("[.]",$file)))
            {
                
$mods_list .= "$file ";
            }
        }
        
closedir($handle);
        
$mods_list explode(" "$mods_list);
        
sort($mods_list);
        include_once(
"header.php");
        echo(
"<table>");
        for(
$i=0$i sizeof($mods_list); $i++)
        {
            echo(
"<tr>");
            if(
file_exists("admin_panel/".$mods_list[$i]."/link.php"))
            {
                include_once(
"admin_panel/".$mods_list[$i]."/link.php");
            }
            echo(
"</tr>");
        }
        echo(
"<tr><td><a href='cpanel.php?mod=logout'>"._LOGOUT."</a></td></tr>");
        echo(
"</table>");
        include_once(
"footer.php");
    }
}

?>




спасибо.

   
 
 автор: Boss   (27.01.2006 в 08:57)   письмо автору
 
   для: Ivanio   (26.01.2006 в 21:06)
 

sql запрос неправильный.


    $ath = mysql_query("SELECT * FROM admins WHERE admins_login = '".$login."' LIMIT 1;"); 

   
 
 автор: Ivanio   (27.01.2006 в 12:12)   письмо автору
 
   для: Boss   (27.01.2006 в 08:57)
 

а что в нем неправильного? ".$prefix." ?

   
 
 автор: Boss   (27.01.2006 в 14:19)   письмо автору
 
   для: Ivanio   (27.01.2006 в 12:12)
 

Ну мне кажется запрос неправильный и возращает empty значение.
Стуктуру таблицы, и эти 2 файла в апач приложите.... поглядим.

   
 
 автор: cheops   (27.01.2006 в 13:23)   письмо автору
 
   для: Ivanio   (26.01.2006 в 21:06)
 

А другие скрипты, которые используют MySQL нормально работают?

   
 
 автор: Ivanio   (27.01.2006 в 13:29)   письмо автору
 
   для: cheops   (27.01.2006 в 13:23)
 

да, вот например галерея которую тоже я напсал работает нормально на томже сервере. urban-street.ru/foto

   
 
 автор: Ivanio   (28.01.2006 в 19:32)   письмо автору
 
   для: Ivanio   (26.01.2006 в 21:06)
 

Я вышел из этого положения немного переписав аутентификацию.


<?php

//-------Определяем, если АДМИН--------
session_start();
if(isset(
$_SESSION['login']) AND isset($_SESSION['password']))
{
    
$login $_SESSION['login'];
    
$password $_SESSION['password'];
    
is_admin($prefix,$login,$password);
}
else
{
    
define("ADMIN_TRUE"false);
}
#######
if(ADMIN_TRUE == false#если не аутентифицирован, то выводим форму входа
{
    include_once(
"header.php");
?>
    <form action=auth.php method=post>
    <input type="hidden" name="op" value="login">
    Логин : <input type=text name=login><br>
    Пароль : <input type=password name=password><br>
    <input type=submit value=Войти>
    </form>
<?
    
include_once("footer.php");
    die();
}
#######

//-------Администрируем------------
if(ADMIN_TRUE == true)
{
    
//выводим админ панель и все эти дела
}
?>


функция is_admin()

<?php

function is_admin($prefix,$login,$password)
{
    
$ath mysql_query("SELECT * FROM ".$prefix."admins WHERE admins_login = '".$login."';");
    if(
$ath)
    {
        
$ath2 mysql_fetch_array($ath);
        
// Получаем пароль
        
$password1 $ath2['admins_password'];
        
// Сравниваем пароль из базы данных и введённый посетителем
        
if (md5($password) != $password1)
        {
            unset(
$_SESSION['login']);
            unset(
$_SESSION['password']);
            
session_destroy();
            
define("ADMIN_TRUE"false);
        }
        if (
md5($password) == $password1)
        {
            
define("ADMIN_TRUE"true);
        }
    }
    else
    {
        
$text "Произошла ошибка при запросе на аутентификацию в БД";
        
error($config,$text);
        die();
    }
}

?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования