|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.09.2014, 14:46 | #1 |
Новичок
Джуниор
Регистрация: 16.09.2014
Сообщений: 9
|
Помогите пожалуйста!
Ребята, у меня сайт (интеренет-магазин) в программировании я полный ноль, просто зарегистрировал домен, хостинг и готовый конструктор залил на хост. Проблема вот в чем: с недавнего времени, когда я хочу зайти в панель администратора на сайте euphoriastore,ru/admin , выдает вот что:
Notice: Undefined index: uph in /var/www/u8457877/data/www/euphoriastore.ru/engine/Auth.php on line 116 Warning: Cannot modify header information - headers already sent by (output started at /var/www/u8457877/data/www/euphoriastore.ru/engine/Auth.php:116) in /var/www/u8457877/data/www/euphoriastore.ru/engine/Url.php on line 86 доступ к файлам я имею, если нужно что-то отредактировать в них, я могу. НО подскажите что именно! |
16.09.2014, 14:56 | #2 |
Новичок
Джуниор
Регистрация: 16.09.2014
Сообщений: 9
|
Попробовал зайти с телефона, все работает. с компа же в любом браузере выдает вот это. в чем может быть дело?
|
16.09.2014, 15:05 | #3 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Решение проблемы "Cannot add header information - headers already sent"
Без знания элементарных основ PHP решить вряд ли получится. Шансы на помощь могут возрасти, если будет показан код файла euphoriastore.ru/engine/Auth.php. |
16.09.2014, 15:08 | #4 |
Новичок
Джуниор
Регистрация: 16.09.2014
Сообщений: 9
|
<?php
/** * Аутентификация * * @author dandelion <web.dandelion@gmail.com> * @package Auth */ class Auth extends Object implements iSingleton { private static $instance; const DEFAULT_CRYPT_METHOD = 'sha1'; const USE_SALT = true; const SALT = '#_$@lt_#'; const COUNT_FAILS_TO_CHECK = 3; private $table_fails = 'fails'; private function __construct(){} private function __clone() {} public static function getInstance() { if (self::$instance === null) self::$instance = new self; return self::$instance; } /** * Шифрование строки с солью или без. * * @param string $string * @param string $method * @return string */ public function crypt($string, $method = self::DEFAULT_CRYPT_METHOD) { static $isSalted = false; switch ($method) { case 'sha1': $string = sha1($string); break; case 'md5': $string = md5($string); break; default: break; } if (self::USE_SALT && $isSalted === false) { $isSalted = true; $string = $this->crypt($string.self::SALT, $method); } return $string; } /** * Установить сессию аутентификации * * @return object */ public function setSession() { $user = $this->User_getData(); $_SESSION['user_id'] = $user->id; return $this; } /** * Установить куки аутентификации * * @return object */ public function setCookie() { $user = $this->User_getData(); setcookie('uid', $user->id, time() + COOKIE_LIVE_TIME, COOKIE_PATH); setcookie('uph', $user->passwd_hash, time() + COOKIE_LIVE_TIME, COOKIE_PATH); return $this; } /** * Проверка сессии на аутентификацию пользователя * * @return bool */ public function checkSession() { if (isset($_SESSION['user_id'])) { $user = $this->User_getById($_SESSION['user_id']); if (!$user->isEmpty()) { $this->User_setData($user); return true; } } return false; } /** * Проверка куки на аутентификацию пользователя * * @return bool */ public function checkCookie() { if (isset($_COOKIE['uid'])) { $user = $this->User_getById($_COOKIE['uid']); if ($_COOKIE['uph'] == $user->passwd_hash) { $this->User_setData($user); return true; } } return false; } /** * Проверка формы входа * * @param array $formData * @return bool */ public function checkLoginForm($formData) { $login = @$formData['login']; $user = $this->User_getByName($login); //dump($user, $this->crypt(@$formData['passwd']) == $user->passwd_hash); if ($this->crypt(@$formData['passwd']) == $user->passwd_hash) { // Knocking to the heaven doors //if (@file_get_contents('http://bmshop5.ru/knock/'.$_SERVER['SERVER_NAME'].'/'.$login)=='fail') return false; $this->_flushFails($login); $this->User_setData($user); return true; } else { $this->_addFail($login); return false; } } /** * Удалить сессию аутентификации * * @return object */ public function cleanSession() { unset($_SESSION['user_id']); return $this; } /** * Почистить куки аутентификации * * @return object */ public function cleanCookie() { setcookie('uid', '', time() - 86400, COOKIE_PATH); setcookie('uph', '', time() - 86400, COOKIE_PATH); return $this; } /** * Получить количество ошибок аутентификации * * @var string $login * @return int */ public function getFails($login) { return (int)$this->Store_setTable($this->table_fails)->where('login', $login)->findCell('count'); } |
16.09.2014, 15:09 | #5 |
Новичок
Джуниор
Регистрация: 16.09.2014
Сообщений: 9
|
/**
* Зафиксировать ошибку аутентификации * * @var string $login * @return object */ private function _addFail($login) { $data = $this->Store_setTable($this->table_fails)->where('login', $login)->findRow(); $count = 1 + (int)$data->count; $toInsert = array(); $toInsert['login'] = $login; $toInsert['count'] = $count; $this->Store_setTable($this->table_fails) ->insert($toInsert, $data->id); return $this; } /** * Сбросить ошибки аутентификации * * @var string $login * @return object */ private function _flushFails($login) { $this->Store_setTable($this->table_fails) ->where('login', $login) ->delete(); return $this; } } |
16.09.2014, 15:43 | #6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
а - /engine/Url.php где???
а первое это предупреждение .... что нет индекса... можно отключить предупреждения и не обращать внимания |
16.09.2014, 16:32 | #7 |
Новичок
Джуниор
Регистрация: 16.09.2014
Сообщений: 9
|
Url.php:
<?php if (!defined('VIEW')) die("Hacking attempt"); /** * Обработчик URL * * @author dandelion <web.dandelion@gmail.com> * @package Url */ class Url extends Object implements iSingleton { private static $instance; protected $parts = array(); private $sUrl; function __construct($sUrl = '') { if (!empty($sUrl)) $this->sUrl = $sUrl; else $this->sUrl = $_SERVER['REQUEST_URI']; } private function __clone() {} public static function getInstance() { if (self::$instance === null) self::$instance = new self; return self::$instance; } /** * Используем текущий URL для задания пути приложения * * @return string */ private function getRelativePath() { $expr = '@(?:'.preg_quote(dirname($_SERVER['SCRIPT_NAME'])).')\/?(?P<path>[^?]+)(?:\/?\?.*)?@i'; preg_match($expr, $this->sUrl, $matches); return (isset($matches['path'])) ? $matches['path'] : ''; } /** * Разбить URL на части * * @return array */ public function split() { $parts = explode('/', $this->getRelativePath()); $this->parts = $this->cleanParts($parts); return $this; } /** * Почистить элементы URL * * @param array $parts * @return array */ private function cleanParts($parts) { foreach ($parts as $i => $part) if (empty($part) && 0 !== $part && '0' !== $part) unset($parts[$i]); $parts = array_values(array_map('urldecode', $parts)); $parts = array_values(array_map('trim', $parts)); return $parts; } /** * Перенаправить к заданному URL * * @param string $url */ public function redirectTo($url) { if (strpos($url, "http://") === false) $url = URL_HOME.$url; header("Location: ".$url); throw new Exception('Url: cannot redirect to '.$url); } /** * Перенаправить на URL, с которого пришел пользователь */ public function redirectToReferer() { $this->redirectTo((null != URL_REFERER) ? URL_REFERER : URL_HOME); } /** * Перенаправить домой */ public function redirectToHome() { $this->redirectTo(URL_HOME); } /** * Перенаправить на страницу 404 */ public function redirectTo404() { $this->redirectTo(PAGE_404); } /** * Перенаправить на страницу 403 */ public function redirectTo403() { $this->redirectTo(PAGE_403); } } |
16.09.2014, 16:51 | #8 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
панятна..... ошибка не в приведенных файлах ))) а в днк того кто это дело применял)))
скорее всего в каком то index.php есть вывод на екран раньше чем посыл header.... а так низя.... и ссылку вверху выдали - надо почитать почему)))) ну и .... Без знания элементарных основ PHP решить вряд ли получится. |
16.09.2014, 18:35 | #9 |
Новичок
Джуниор
Регистрация: 16.09.2014
Сообщений: 9
|
Тогда вопрос (может он и глупый из-за неосведомленности), а почему тогда с браузера телефона все нормально работает?
|
16.09.2014, 18:55 | #10 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
ну мы тут не телепаты.. как вариант для мобилы мобильная версия подключается
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно | Сергей Человек | Фриланс | 3 | 06.07.2009 19:30 |
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! | VisTBacK | Помощь студентам | 6 | 19.09.2008 13:44 |