kostyanet

Рейтинг
45
Регистрация
03.06.2015
Должность
design
Интересы
design
designer

По той же теории на форумы ходят обмениваться идеями. У вас такая идея чтобы других идей не рассматривать, но чтобы все работало как у людей, а не через одно место. Так вот надо слушать и понимать что люди советуют, их идеи, и не жалеть своих, вымученных потом и кровью, и тогда будет работать не хуже чем у людей, а то и получше.

Никогда браузер не откроет файл из папки закрытой для публичного доступа, а серверный скрипт откроет запросто, потому что у него права другие. Если никак нельзя закрыть файл по правам, то остается только проверять как он открывается - опосредованно или непосредственно. Последний способ самый древний, дубовый и универсальный.

---------- Добавлено 02.08.2015 в 20:26 ----------

Хорошо, задам вопрос: зачем вы переписываете вручную все что пришло в массиве $_POST в другой массив?

По безопасности. Я сам как-то потратил целый день пытаясь разобраться в этом деле и могу выдать сводку.

1. фундаментальный способ - держать все данные в папке выше публичного доступа. Например на сервере у вас такая структура

..

cgi

conf

docs

log

php

stat

сайт лежит в docs или там в httpdocs или это может быть конкретно www папка. Только она определена как корневая для сайта, остальных просто нет для браузера. Но для скрипта, например index.php - который запущен из docs - папка php доступна.

Реализация этого способа может упереться в тупого хостера или тупой тариф.

2. положить в специальную папку ниже уровнем файл .htaccess со строчкой

Deny from all

3. проверять заведомую глобальную переменную

Так вот все 3 способа подразумевают наличие точки входа, то есть технологию когда все и любые запросы идут через единственный публичный файл - index.php

Больше ни одного файла, ну вообще ни одного кроме там картинок, стилей и жаба-скриптов - то есть статики - в публичном доступе нет.

1. index.php имеет права доступа к папке выше уровнем - к dirname(__FILE__).'../../php/'

2. index.php имеет права доступа к папке ниже уровнем, которая закрыта от любых внешних воздействий на уровне сервера

3. index.php определят ту самую глобальную переменную, которую затем все скрипты проверяют.

Smirnof:
$store = array(
'zerocatename' =>$_POST ["zerocatename"],
'zerocatesearch' =>$_POST ["zerocatesearch"],
'zerocatevideos' =>$_POST ["zerocatevideos"],
'zeronumber' =>$_POST ["zeronumber"],

Похоже неоперабельный случай.

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

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

Ищите по словам js presentation или там web presentation Найдете с десяток готовых рамок в которые вам только сценарий впихнуть, на мета-языке или еще как-то.

Сначала надо кому-то вписывать данные в заказ - все эти получили, осмотрели, ждем детали, паяем детали, запаяли, крутим болты... то есть АСУ ТП - тогда показать что вписано не проблема.

Erick Flatcher:
Нашел примерный простой код, но в PHP не разбираюсь

Это не php, это js. JS не может выдавать роботу контент.

SergTel:
что яндексовая выдача не адекватна для зарубежных пользователей

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

Кроме того что вы называете лендингом - то есть посадочной полосой - им не является. Слияние в национальном сознании произошло по форме - лендинг тоже одна страница как и single page application. То есть по признаку у швейной машины есть колесо, сделан вывод - значит она автомобиль.

Сравните смысл в оригинале https://en.wikipedia.org/wiki/Landing_page и его понимание на русском.

Одностраничники в которые напихано все что должно быть нормально структуировано на обычном сайте, конечно же не продают и не могут продавать.

Лендинг - наоборот - фокусируется на продукте, углубляет потребность начатую рекламным объявлением.

На одностраничике полно интерфейсов.

В лендинге интерфейса вообще не должно быть, максимум - кнопка купить.

---------- Добавлено 29.07.2015 в 19:28 ----------

ЗЫ Прежде чем захотите оспаривать, попытайтесь все-таки понять в чем разница и что для чего предназначено.

Smirnof:
Все данные сохраняю в settings.txt в закодированном виде.

Сперва надо посмотреть как люди делают, поискать решения, а потом сделать лучше чем люди делают. Если начат изобретать свое не зная современных трендов, стопудово изобретете костотряс (реликтовый велосипед без педалей).

Все данные сохраняйте в файле .php и тогда никто просто так из браузера его не откроет, а от запуска спасает либо банальная проверка на заранее установленную переменную в точке входа, либо нормальное перемещение файла в недоступную для публичного доступа папку.

Второе, какой смысл хранить тексты? Храните данные, вот так например

settings.php


<?php
return array('foo'=>1,'bar'=2,'baz'=>array());

Получаете вот так


$this->settings = include(CONFIG_PATH.'/settings.php');

Да, инклюда умеет возвращать как функция.

---------- Добавлено 29.07.2015 в 18:15 ----------

На вопрос как записать массив как исходный текст из данных, ответ:


file_put_contents(CONFIG_PATH.'/settings.php,'<?php return '.var_export($this->config,true).';');

Это же php, а не Си.

---------- Добавлено 29.07.2015 в 18:24 ----------

Smirnof:
ЕЩЕ КОД
..........
$zerocatename = $settings['zerocatename'];

Если уже ответили - не пинайте.

extract($settings)

и все что было элементами массива - стало переменными.

---------- Добавлено 29.07.2015 в 18:54 ----------

Досмотрел страницы до конца. Отрадно что автор темы пытается побороть типичную лапшу, однако решений не проглядывается.

Скорее всего лапша заимствована с таких цмс как DLE, и следует отметить что в современных рамках ей по-прежнему отведено немало места в жирных статических классах загружаемых безусловно на все случаи жизни. Однако есть понимание что безусловность - зло и с ним борются в том числе развитием моделей реюза и наследования вроде mixin и trait.

Короче говоря у автора темы еще нет опыта структуирования данных, обобщения по признакам, по классификации, по MVC. Без всего этого развитие ПО сайта невозможно. Лапша очень быстро сама себя ограничивает.

---------- Добавлено 29.07.2015 в 18:58 ----------

Да, инвариантом extract() является http://php.net/manual/en/function.compact.php

Marvello:
Я открыл в роботс системные папки, проверил через вебмстер всем гуглботам сайт доступен

Что за системные папки такие? Обычно в системные папки при всем вашем желании никто кроме серверного скрипта попасть не может.

Движок может проявлять заботу и не отдавать файлы клиентских скриптов и стилей увидев что страница запрошена роботом. То есть ссылка у вас есть, но двиг говорит фигвам, типа, и так можно индексировать. Это предположение.

Всего: 913