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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2013, 23:24   #1
Notan1310
Форумчанин
 
Регистрация: 01.01.2012
Сообщений: 118
По умолчанию Проблема с localhost

Доброго времени суток. Проблема заключается в следующем. Есть проект который 100% рабочий. При запуске его на локале не проходит дальше формы авторизаций. Приходиться работать с проектом сразу на хосте. Вот кусочек кода который как мне кажется как то не так обрабатывется а точнее самое начало проекта тесть авторизация. Все проавильно настроил. Подскажите в какую сторону копать. Каталоги вроде все на chmod 777, Только если в php.ini что то подкрутить
PHP код:
require_once($PATHTOINDEX.'core/dbConnect.php');    //Подключаем базу данных
require_once($PATHTOINDEX.'core/user.php');        // подключаем класс пользователя


$USER = new user();

if(
strpos($_SERVER['REQUEST_URI'], '/dSystem/') !== FALSE)
    
$PAGE['uriFirstPart'] = '/dSystem/';
else
    
$PAGE['uriFirstPart'] = '/';

//если логинимся
if (isset($_POST['auth_name'])) { 
    if(
$USER->authorization($_POST['auth_name'], $_POST['auth_pass']) === TRUE) {
        
//перенаправление в зависимости от типа пользователя

        
if($_SESSION['user_type'] == 'client')
            
header('Location: http://'.$_SERVER['HTTP_HOST'].$PAGE['uriFirstPart'].'client');
        else
            
header('Location: http://'.$_SERVER['HTTP_HOST'].$PAGE['uriFirstPart'].'manager');            
        exit;
    }
    else {
        
$error['title'] = 'Неверные логин или пароль.';
        
$error['solve'] = 'Проверьте не нажата ли клавиша CAPSLOCK, выбран ли нужный язык ввода.';
        
$ERRORS[] = $error;
    }
}

// если нажали выход
if (isset($_GET['action']) AND $_GET['action'] == 'logout') { 
  
session_start();
  
session_destroy();
  
header("Location: http://".$_SERVER['HTTP_HOST'].$PAGE['uriFirstPart']);
  exit;
}

// если есть сессия
if(isset($_REQUEST[session_name()]))
    
session_start();
elseif(
$_SERVER['REQUEST_URI'] !== $PAGE['uriFirstPart']) {
    
header("Location: http://".$_SERVER['HTTP_HOST'].$PAGE['uriFirstPart']);
    exit;
}
    

if (isset(
$_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) { // если уже авторизован
    
if($_SESSION['user_type'] == 'client' AND strpos($_SERVER['REQUEST_URI'], '/client/') === FALSE) {
        
header('Location: http://'.$_SERVER['HTTP_HOST'].$PAGE['uriFirstPart'].'client');
        exit;
    }
    elseif(
$_SESSION['user_type'] != 'client' AND strpos($_SERVER['REQUEST_URI'], '/manager/') === FALSE) {
        
header('Location: http://'.$_SERVER['HTTP_HOST'].$PAGE['uriFirstPart'].'manager');
        exit;
    }
}
elseif(
$_SERVER['REQUEST_URI'] !== $PAGE['uriFirstPart']) {
    
session_destroy();
    
header("Location: http://".$_SERVER['HTTP_HOST'].$PAGE['uriFirstPart']);
    exit;
}
?> 
Notan1310 вне форума Ответить с цитированием
Старый 13.05.2013, 00:06   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Ошибки какие пишет?
dr.Chas вне форума Ответить с цитированием
Старый 13.05.2013, 00:21   #3
Notan1310
Форумчанин
 
Регистрация: 01.01.2012
Сообщений: 118
По умолчанию

В том то и дело error_reporting(0); Выставлял в E_ALL. Далее делал такой ход

ini_set("display_errors","1");
ini_set("display_startup_errors","1 ");
ini_set('error_reporting', E_ALL);

Блин ну нет ошибок. Просто форма авторизаций не пропускает дальше, а дальше либо клиентская область, либо область менеджера(админа). Блин работать толком не могу начать. Может быть в php.ini нужно что-то скорректировать. Я просто из ума выжил из-за этой мелочи.
Notan1310 вне форума Ответить с цитированием
Старый 13.05.2013, 11:05   #4
SL1M_DOGG
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 96
Счастье

а на локалке запускаете через какой нибудь denwer?
SL1M_DOGG вне форума Ответить с цитированием
Старый 13.05.2013, 12:25   #5
Notan1310
Форумчанин
 
Регистрация: 01.01.2012
Сообщений: 118
По умолчанию

Нет. Стоит на Linux Ubuntu. PHP + MySql + Apache и все. На моем хостинге запускается с теми же настройками. А на локале блин не прходит авторизацию хоть и все правильно. Догадки либо что то с сессиями либо , что то еще. Устанавливал Jomla, WorldPress, Wiki, .... и еще какие то все работали!!!! Без проблем. Че за ерунда б....ть
Notan1310 вне форума Ответить с цитированием
Старый 13.05.2013, 12:42   #6
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от Notan1310 Посмотреть сообщение
Нет. Стоит на Linux Ubuntu. PHP + MySql + Apache и все. На моем хостинге запускается с теми же настройками. А на локале блин не прходит авторизацию хоть и все правильно. Догадки либо что то с сессиями либо , что то еще. Устанавливал Jomla, WorldPress, Wiki, .... и еще какие то все работали!!!! Без проблем. Че за ерунда б....ть
Ну а что вам выдает, заново форму авторизации? Версия php какая? Что у вас в параметр php.ini
Код:
variables_order = "GPCS"
Стоит?
dr.Chas вне форума Ответить с цитированием
Старый 13.05.2013, 12:50   #7
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Дебажить не пробовали? Ну там посмотреть как, что и где запускается. Проверить где оно останавливает свою работу. Ну типичные вещи, которые программисты делают, когда что-то не работает.

Где форма авторизации?
Код $USER->authorization() в студию.


P.S. Не хотелось вот так взять и всё это расчистить от повторяемого кода? Ну чтоб хотя бы самому разобраться что там, куда и где? Смотреть больно
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 13.05.2013, 12:58   #8
Notan1310
Форумчанин
 
Регистрация: 01.01.2012
Сообщений: 118
По умолчанию

PHP Version - 5.3.10-1ubuntu3.6

Цитата:
Ну а что вам выдает, заново форму авторизации? Версия php какая? Что у вас в параметр php.ini
Код:


variables_order = "GPCS"

Стоит?
variables_order = "GPCS" стоит или я неправильно вас понял?

Цитата:
Ну а что вам выдает, заново форму авторизации?
Просто остается на странице. Если логин пароль неправильный то выскакивает алерт запрещено . А в моей ситуаций все правильно, сообщение не выскакивает. просто остается на тойже странице авторизаций.
Notan1310 вне форума Ответить с цитированием
Старый 13.05.2013, 13:05   #9
Notan1310
Форумчанин
 
Регистрация: 01.01.2012
Сообщений: 118
По умолчанию

Цитата:
Где форма авторизации?
Код $USER->authorization() в студию.
Вот прошу. Что значит дебажить? Это делается через какой то софт или термин который мне не знаком но который делаю всегда?)))))

PHP код:
public function authorization($login$password) {
        
$login mysql_escape_string($login);
        
$password mysql_escape_string($password);
        
$query "SELECT * FROM $this->dbUsers WHERE login='$login' AND password='$password'";
        
$r mysql_query($query) or trigger_error(mysql_error().$query);
        if (
$row mysql_fetch_assoc($r)) { //если пользователь есть

            // записываем данные пользователя во внутренние переменные
            
$this->loadUserData($row['id']);

            
session_start();
            
$_SESSION['user_id'] = $row['id'];
            
$_SESSION['user_type'] = $row['type'];
            
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
            
            
//установка прав пользователя в зависимости от его типа
            
$rights = array();
            if(
$_SESSION['user_type'] == 'administrator'){
                
$rights[] = 'editOrderDeliveryTime';
                
$rights[] = 'editOrderStatus';
                
$rights[] = 'closeOrder';
                
$rights[] = 'createUser';
                
$rights[] = 'editUser';
                
$rights[] = 'editCustomerInfo';
                
$rights[] = 'viewNew';
                
$rights[] = 'viewOrderBills';
                
$rights[] = 'editOrderBills';
                
$rights[] = 'viewDealerBills';        
            }
            elseif(
$_SESSION['user_type'] == 'cashier'){
                
$rights[] = 'editOrderStatus';
                
$rights[] = 'closeOrder';
                
$rights[] = 'viewOrderBills';
                
$rights[] = 'editOrderBills';
            }
            elseif(
$_SESSION['user_type'] == 'purchasingManager'){
            
            }
            elseif(
$_SESSION['user_type'] == 'operationsDirector'){
                
$rights[] = 'editOrderStatus';
                
$rights[] = 'closeOrder';
                
$rights[] = 'createUser';
                
$rights[] = 'editUser';
            }
            elseif(
$_SESSION['user_type'] == 'director'){
                
$rights[] = 'editOrderStatus';
                
$rights[] = 'closeOrder';
                
$rights[] = 'createUser';
                
$rights[] = 'editUser';
            }
            elseif(
$_SESSION['user_type'] == 'salesManager'){
                
$rights[] = 'editOrderStatus';
                
$rights[] = 'closeOrder';
                
$rights[] = 'createUser';
                
$rights[] = 'editUser';
            }
            elseif(
$_SESSION['user_type'] == 'client'){
                
$rights[] = 'editCustomerInfo';
            }
            
$_SESSION['user_rights'] = $rights;
            
$_SESSION['additionalRights'] = unserialize($row['additionalrights']);
            
            return 
TRUE;
        }
        else
            return 
FALSE;
    } 
Notan1310 вне форума Ответить с цитированием
Старый 13.05.2013, 14:38   #10
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Проверьте какие параметры передаются в $USER->autorization
Принимает ли эта функция действительно то, что вы ввели или туда передаётся пустота. И вообще вызывается ли этот метод когда вы передаёте логин и пароль. Проверьте именно на практике.
Также проверьте работают ли нормально сессии.
Моё мнение, так у вас что-то с настройками сессий в PHP.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
денвер запускается, а localhost не отображается Антон Ос Помощь студентам 11 03.04.2013 22:14
перенос сайта с localhost Олександр17 Свободное общение 13 01.07.2011 19:54
Не работает SESSION на localhost Викдон PHP 0 16.04.2010 11:16
localhost не открывается в Vista Парсифаль Общие вопросы .NET 2 08.01.2010 08:02
Localhost, Denwer vanDJ Общие вопросы Web 11 06.08.2008 19:41