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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2014, 14:46   #1
tretyak
Новичок
Джуниор
 
Регистрация: 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

доступ к файлам я имею, если нужно что-то отредактировать в них, я могу. НО подскажите что именно!
tretyak вне форума Ответить с цитированием
Старый 16.09.2014, 14:56   #2
tretyak
Новичок
Джуниор
 
Регистрация: 16.09.2014
Сообщений: 9
По умолчанию

Попробовал зайти с телефона, все работает. с компа же в любом браузере выдает вот это. в чем может быть дело?
tretyak вне форума Ответить с цитированием
Старый 16.09.2014, 15:05   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от tretyak Посмотреть сообщение
Warning: Cannot modify header information - headers already sent
Решение проблемы "Cannot add header information - headers already sent"
Без знания элементарных основ PHP решить вряд ли получится.
Шансы на помощь могут возрасти, если будет показан код файла euphoriastore.ru/engine/Auth.php.
Andkorol вне форума Ответить с цитированием
Старый 16.09.2014, 15:08   #4
tretyak
Новичок
Джуниор
 
Регистрация: 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');
}
tretyak вне форума Ответить с цитированием
Старый 16.09.2014, 15:09   #5
tretyak
Новичок
Джуниор
 
Регистрация: 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;
}
}
tretyak вне форума Ответить с цитированием
Старый 16.09.2014, 15:43   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

а - /engine/Url.php где???
а первое это предупреждение .... что нет индекса... можно отключить предупреждения и не обращать внимания
ADSoft вне форума Ответить с цитированием
Старый 16.09.2014, 16:32   #7
tretyak
Новичок
Джуниор
 
Регистрация: 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);
}
}
tretyak вне форума Ответить с цитированием
Старый 16.09.2014, 16:51   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

панятна..... ошибка не в приведенных файлах ))) а в днк того кто это дело применял)))
скорее всего в каком то index.php есть вывод на екран раньше чем посыл header.... а так низя.... и ссылку вверху выдали - надо почитать почему))))
ну и .... Без знания элементарных основ PHP решить вряд ли получится.
ADSoft вне форума Ответить с цитированием
Старый 16.09.2014, 18:35   #9
tretyak
Новичок
Джуниор
 
Регистрация: 16.09.2014
Сообщений: 9
По умолчанию

Тогда вопрос (может он и глупый из-за неосведомленности), а почему тогда с браузера телефона все нормально работает?
tretyak вне форума Ответить с цитированием
Старый 16.09.2014, 18:55   #10
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

ну мы тут не телепаты.. как вариант для мобилы мобильная версия подключается
ADSoft вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно Сергей Человек Фриланс 3 06.07.2009 19:30
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! VisTBacK Помощь студентам 6 19.09.2008 13:44