- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Сделал все как вы описали, работает! :)
Единственное в вашем коде
$filename="setup/settings.txt";
include ("setup/config.php");
// Server's timezone for more accurate data
"timezone" => "Russia/Moscow",
// Cache Data - If you notice anomalies, disable this. You should enable this when you get high hits
"cache" => TRUE,
// Enable mode_rewrite? e.g. user/login instead of index.php?a=user/login
"mod_rewrite" => TRUE,
// Enable Compression? Makes your website faster
"gzip" => TRUE,
);
// Include core.php
include ('Core.php');
?>
Удалил );
Т.е. там нет $config = array(); Это верно?
Это тоже пришлось снести, выдавало ошибку.
// Server's timezone for more accurate data
"timezone" => "Russia/Moscow",
// Cache Data - If you notice anomalies, disable this. You should enable this when you get high hits
"cache" => TRUE,
// Enable mode_rewrite? e.g. user/login instead of index.php?a=user/login
"mod_rewrite" => TRUE,
// Enable Compression? Makes your website faster
"gzip" => TRUE,
Обнаружил неожиданный для меня поворот
Теперь не работает админка :(
Не входит в нее, убрал проверку логина и пароля, админка открылась с пустыми данным, все поля пусты, т.е. она не может подгрузить конфиг файл и/или данные из него.
index.php
session_start();
$filename="settings.txt";
include ('config.php');
include ('encryption.php');
if (isset($_POST["username"]) && !empty($_POST["username"])) {
// this code runs if login request is initiated
if ($_POST['username'] == $admin_username
&& $_POST['password'] == decryptPaswd($admin_password,getEncryptKey())){
// Set session variable
$_SESSION['loggedin'] = 1;
// Redirect to setup page
header("Location: settings.php");
exit;
}
else{
$wrong_credentials=true;
}
}
?>
Я сразу открыл settings.php, где закомментировал проверку авторизации, после чего и обнаружил пустые поля.
session_start();
//if (!(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] != '')) {
//header ("Location: index.php");
//}
$filename="settings.txt";
include ('config.php');
include ('encryption.php');
?>
<!DOCTYPE html>
........................
Видимо надо было раньше об этом упомянуть :(
Все данные сохраняю в settings.txt в закодированном виде.
Сперва надо посмотреть как люди делают, поискать решения, а потом сделать лучше чем люди делают. Если начат изобретать свое не зная современных трендов, стопудово изобретете костотряс (реликтовый велосипед без педалей).
Все данные сохраняйте в файле .php и тогда никто просто так из браузера его не откроет, а от запуска спасает либо банальная проверка на заранее установленную переменную в точке входа, либо нормальное перемещение файла в недоступную для публичного доступа папку.
Второе, какой смысл хранить тексты? Храните данные, вот так например
settings.php
Получаете вот так
Да, инклюда умеет возвращать как функция.
---------- Добавлено 29.07.2015 в 18:15 ----------
На вопрос как записать массив как исходный текст из данных, ответ:
Это же php, а не Си.
---------- Добавлено 29.07.2015 в 18:24 ----------
ЕЩЕ КОД
..........
$zerocatename = $settings['zerocatename'];
Если уже ответили - не пинайте.
и все что было элементами массива - стало переменными.
---------- Добавлено 29.07.2015 в 18:54 ----------
Досмотрел страницы до конца. Отрадно что автор темы пытается побороть типичную лапшу, однако решений не проглядывается.
Скорее всего лапша заимствована с таких цмс как DLE, и следует отметить что в современных рамках ей по-прежнему отведено немало места в жирных статических классах загружаемых безусловно на все случаи жизни. Однако есть понимание что безусловность - зло и с ним борются в том числе развитием моделей реюза и наследования вроде mixin и trait.
Короче говоря у автора темы еще нет опыта структуирования данных, обобщения по признакам, по классификации, по MVC. Без всего этого развитие ПО сайта невозможно. Лапша очень быстро сама себя ограничивает.
---------- Добавлено 29.07.2015 в 18:58 ----------
Да, инвариантом extract() является http://php.net/manual/en/function.compact.php
Сделал все как вы описали, работает! :)
Единственное в вашем коде
Удалил );
Т.е. там нет $config = array(); Это верно?
Это тоже пришлось снести, выдавало ошибку.
Да, правильно
Обнаружил неожиданный для меня поворот
Теперь не работает админка :(
Не входит в нее, убрал проверку логина и пароля, админка открылась с пустыми данным, все поля пусты, т.е. она не может подгрузить конфиг файл и/или данные из него.
Видимо надо было раньше об этом упомянуть :(
Смотрите, вы заменили
$settings = unserialize(base64_decode($infotxt));
на
$config = unserialize(base64_decode($infotxt));
и убрали все ненужные инициализации. У вас в коде
if ($_POST['username'] == $admin_username
&& $_POST['password'] == decryptPaswd($admin_password,getEncryptKey())){
и до того, как изменили код было
$admin_username = $settings['admin_username'];
$admin_password = $settings['admin_password'];
но сейчас эти значения хранятся в массиве $config, следовательно нужно заменить
if ($_POST['username'] == $config['admin_username']
&& $_POST['password'] == decryptPaswd($config['admin_password'],getEncryptKey())){
и тогда должно всё заработать. Так и с другими переменными, если ещё не заменили
---------- Добавлено 29.07.2015 в 19:26 ----------
Короче говоря у автора темы еще нет опыта структуирования данных, обобщения по признакам, по классификации, по MVC. Без всего этого развитие ПО сайта невозможно. Лапша очень быстро сама себя ограничивает.
На лапше набираются опыта ))). Сначала функциональный подход, а потом, когда уже есть некая база, можно браться и за ООП и за MVC
Да, инвариантом extract() является http://php.net/manual/en/function.compact.php
Там были ненужные инициализации переменных, а так да - удобные функции.
Спасибо!
Сделал как вы описали, заработала авторизация но данные в полях все же пусты
session_start();
if (!(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] != '')) {
header ("Location: index.php");
}
$filename="settings.txt";
include ('config.php');
include ('encryption.php');
?>
здесь тоже что-то нужно изменить?
В коде ниже вывод такой id="url" value="<?php echo $url ?>"
Пробовал заменить на {$this->config["url"]} не помогло
У меня есть еще один похожий на предыдущие файл process-settings.php
session_start();
if (!(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] != '')) {
header ("Location: index.php");
}
include('encryption.php');
if (!empty($_POST))
{
$store = array(
'zerocatename' =>$_POST ["zerocatename"],
'zerocatesearch' =>$_POST ["zerocatesearch"],
'zerocatevideos' =>$_POST ["zerocatevideos"],
'zeronumber' =>$_POST ["zeronumber"],
'zerosortingresults' =>$_POST ["zerosortingresults"],
'onecatename' =>$_POST ["onecatename"],
'onecatesearch' =>$_POST ["onecatesearch"],
'onecatevideos' =>$_POST ["onecatevideos"],
'onenumber' =>$_POST ["onenumber"],
'onesortingresults' =>$_POST ["onesortingresults"],
...............
'admin_username' =>$_POST ["admin_username"],
'admin_password' =>encryptPaswd($_POST["admin_password"],getEncryptKey()),
);
// Live Code
$fp = fopen('settings.txt','w');
// For demo only
fwrite($fp,base64_encode(serialize($store)));
try{
//enter code to catch
echo "Saved";
}catch(Exception $ex){
//Process the exception
echo "Error code" . $ex;
}
}
else
{
echo "Landed mistakenly ?";
}
?>
Здесь видимо тоже нужно лишнее убрать, но как я понимаю в админке данные не из-за этого не отображаются?
А $_SESSION изменить, но как не знаю...
Вывод в админке заработал после метода тыка, сделал так
<?php echo $config["url"] ?> это верно?
Спасибо!
p.s. вроде работает )
Пробовал переименовать .txt файл в .php и все ссылки на него, ничего не получилось ) видимо сам код править нужно?
Вывод в админке заработал после метода тыка, сделал так
<?php echo $config["url"] ?> это верно?
Спасибо!
p.s. вроде работает )
Да, хотел вам это и написать.
переменные вида $this->value заменить на $this->config['value'],
а вида $value на $config['value']
Ну, теперь видите, сколько лишних и ненужных переменных инициализировали
$store = array(
Ну здесь вы собираете в массив для записи в файл. тут не надо
А $_SESSION изменить, но как не знаю
Нет необходимости что-то делать с $_SESSION исходя из сделанных изменений
Спасибо! Теперь начну разбирать то с чего все и началось, буду сокращать youtube class, буду пробовать )
Да, возможно, например
// Construct URL
$part = "snippet";
$this->url = "https://www.googleapis.com/youtube/v3/search?videoEmbeddable=true&key={$this->key}&part=$part&order=data&maxResults=5&q={$this->config[$nom.'catevideos']}&type=video";
// Get Data
$data = $this->http(TRUE);
foreach ($data->items as $yt) {
$html .= $this->listQueryVideo($yt);
}
return $html;
}
И заменяете вызовы getonecate..., ...gettwocate на getcates('one'), getcates('two') и т.д
Это актуально сейчас для моего кода?
Спасибо! Теперь начну разбирать то с чего все и началось, буду сокращать youtube class, буду пробовать )
И заменяете вызовы getonecate..., ...gettwocate на getcates('one'), getcates('two') и т.д
Это актуально сейчас для моего кода?
Да. Вы сведёте несколько функций к одной.
Единственное, обратите внимание в методе
protected function getcates($nom){
// Construct URL
$part = "snippet";
$this->url = "https://www.googleapis.com/youtube/v3/search?videoEmbeddable=true&key={$this->key}&part=$part&order=data&maxResults=5&q={$this->config[$nom.'catevideos']}&type=video";
// Get Data
$data = $this->http(TRUE);
foreach ($data->items as $yt) {
$html .= $this->listQueryVideo($yt);
}
return $html;
}
на $this->url и $this->key, как себя поведут и будут ли выскакивать ошибки?
{$this->key} давал ошибку, я заменил на {$this->config["key"]}, верно?
Не могу сообразить где и как изменить это {$this->config[$nom.'catevideos']}
{$this->key} давал ошибку, я заменил на {$this->config["key"]}, верно?
Не могу сообразить где и как изменить это {$this->config[$nom.'catevideos']}
$this->config[$nom.'catevideos'] не надо менять, а вот
$this->url ругаться не будет, поэтому смотрите, получаете вы то, что нужно или нет и если нет, то возможно
придётся заменить $this->url на $this->config["url"];
Просто я не знаю, как вы определяли поля класса и какие там взимосвязи и зависимости
Хорошо.
Я имел ввиду, что не могу понять, как скрипт узнает, что делать с {$this->config[$nom.'catevideos']}
Ведь если я удалю все и оставлю только
// Construct URL
$part = "snippet";
$this->url = "https://www.googleapis.com/youtube/v3/search?videoEmbeddable=true&key={$this->key}&part=$part&order=data&maxResults=5&q={$this->config[$nom.'catevideos']}&type=video";
// Get Data
$data = $this->http(TRUE);
foreach ($data->items as $yt) {
$html .= $this->listQueryVideo($yt);
}
return $html;
}
вряд ли все заработает, видимо что-то нужно изменить.
Т.е. как скрипт узнает что вставить в $nom.' и то, что это значение может быть разным, запутался :(
Попробовал все удалить и оставить код что выше, сайт открывается но содержания нет
Прочел еще раз, видимо нужно изменить все getonecate, gettwocate на getcates('one'), getcates('two') и т.д., попробую. )