Болтливый registration php lang. Меняем ссылку страницы регистрации пользователей
Хак "Меняем ссылку страницы регистрации пользователей" разработан для 11.1 версии движка. Такая реализация полезна, если веб-мастер хочет уменьшить нагрузку на сайта при интенсивном спаме страницы регистрации, которую могут использовать для создания спам-пользователей. Защититься от этого можно этим хаком или хорошей капчей.
Вместо слова "название вашей страницы" используйте любое другое слово (оно должно быть уникальным для вашего сайта).
2. Открыть: engine/init.php
Найти: $tpl->set("{registration-link}", $PHP_SELF . "?do=register");
Заменить на: $tpl->set("{registration-link}", $PHP_SELF . "?do={$config["register"]}");
3. Открыть: engine/engine.php
Найти: case "register" :
Заменить на: case $config["register"] :
Найти: elseif ($do == "register") $nam_e = $lang["title_register"];
Заменить на: elseif ($do == $config["register"]) $nam_e = $lang["title_register"];
4. Открыть: engine/modules/static.php
Найти: if($_GET["page"] == "dle-rules-page") if($do != "register") {
Заменить на: if($_GET["page"] == "dle-rules-page") if($do != $config["register"]) {
Найти: $tpl->set("{ACCEPT-DECLINE}", "
Заменить на: $tpl->set("{ACCEPT-DECLINE}", "");
5. Открыть: engine/modules/register.php
Найти: $row["template"] = str_replace("{%validationlink%}", $slink . "index.php?do=register&doaction=validating&id=" . $idlink, $row["template"]);
Заменить на: $row["template"] = str_replace("{%validationlink%}", $slink . "index.php?do={$config["register"]}&doaction=validating&id=" . $idlink, $row["template"]);
Найти:
Заменить на:
Найти: msgbox($lang["all_info"], $lang["confirm_ok"] . "
" . $lang["reg_next"] . "");
Заменить на: msgbox($lang["all_info"], $lang["confirm_ok"] . "
" . $lang["reg_next"] . "");
6. Открыть: templates/Default/login.tpl
Найти старую ссылку и заменить на: {registration-link}
Пример готовой ссылки: Регистрация
7. Открыть: robots.txt
Найти и удалить: Disallow: /*do=register
8. Завершение установки
Если вы снова захотите поменять адрес страницы, то в файле engine/data/config.php найдите и замените строку "register" => "название вашей страницы" на любое другое.
Версия : 11.x в том числе для новой версии
Мне интересно что-то, но я не могу найти хороший, ясный ответ или даже решение этой проблемы:
Мой сайт PHP имеет следующую структуру:
root functions generators helpers scripts style index.Это все папки и один файл php. Функции содержат связные операционные файлы php, связанные с подключением к базе данных, и различные другие операции с базой данных, такие как вставка, удаление, обновление, … Генераторы содержат классы для автоматического создания веб-страниц, чтобы они выглядели одинаково. Помощники – это классы, которые обрабатывают логин, выход из системы, регистрацию и т. Д. Скрипты – это javascript, а стиль – CSS.
В моей папке генераторов есть файл mainGenerator.php, это создает различные части веб-сайта:
Private function generateLogin() { if (!isLoggedIn()) { echo "
Login
"; } else { echo "Welome, " . $_SESSION["user_name"] . "
Log off"; } }Этот фрагмент кода создает окно регистрации на каждой странице или отображает приветственное сообщение, если пользователь уже зарегистрирован. Как вы можете видеть, действие ссылается на «../helpers/login.php», поскольку это относительное расположение логин-помощник с точки зрения этого генератора.
Теперь вот проблема: если я нажму кнопку входа в index.php (http://example.com/ProjectName/index.php), она перенаправит меня на http://example.com/helpers/login.php и говорит, что файл не найден.
Я вижу, в чем проблема: post post видит запрос, поступающий из index.php, и поднимается на один , а затем ищет /helpers/login.php, которого, конечно, не существует.
Исправить может быть изменение действия на
Action="/helpers/login.php"
но это дает мне ту же проблему, если мне нужен доступ к generateLogin () из определенного подкаталога … Как решить эту конкретную проблему, то есть: ссылка на /helpers/login.php остается правильной, независимо от того, где Я пытаюсь получить к нему доступ.
Action="/ProjectName/helpers/login.php"
Предполагая, что ваш корень http: // localhost, указанная выше ссылка должна всегда разрешаться на http: //localhost/ProjectName/helpers/login.php , вызвана ли она из http: //localhost/ProjectName/index.php или http: // локальный / ProjectName / подкаталог / index.php
Если вы не хотите жестко кодировать «ProjectName» во множество разных сценариев, вы можете использовать глобальную переменную и определить ее в файле конфигурации:
хелперы / ConfigOptions.php:
Затем в ваших сценариях включите файл конфигурации и используйте указанную переменную:
index.php:
Include $_SERVER["DOCUMENT_ROOT"] . "/helpers/ConfigOptions.php"; ... echo "