За последние 24 часа нас посетил 22601 программист и 1203 робота. Сейчас ищут 711 программистов ...

<title>Заголовок</title>

Тема в разделе "PHP для новичков", создана пользователем MixazZz, 11 май 2022.

  1. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    54
    Симпатии:
    1
    я не могу связать таблицы в БД. пишет ошибку. Может это из за R::frozen()
    скажи пожалуйста, ты говорил вот так делать инфу о страницах https://disk.yandex.ru/i/tSTWvuJzqQx5LQ
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Тему перечитайте.

    Можно, конечно, сравнивать по url/path, но это какой-то Архиварикс получится. У нас такое только на паркинге используется. И то там какая-то мин. оптимизация есть: ведущий слеш url'ов не хранится в БД, доступ к внутряку может блокироваться без попытки выполнить доп. запрос к БД (там внутряк хранится в доп. таблице, а главная описывается в основной таблице – таблице хостов). В теме я писал про slug (не поняли, что это такое, посмотрите в поисковике), а не про url. Это означает, что можно даже не пытаться делать хотя бы один запрос к БД, если вы ожидаете получить только однокомпонентный путь, а получаете многокомпонентный.

    В простой модели любой путь первоначально делится на две части: первый компонент и «остаток», например 'a' и 'b/c'. И первый запрос к БД выполняется почти всегда (хотя никто не запрещает использовать какой-то фильтр, чтобы не пытаться делать запрос к БД при некорректном формате пути, например с левыми символами, или некорректном формате всего url'а). А потом уже по типу категории определяется, должен ли входящий путь быть однокомпонентным или нет. Тип 0 указывает на то, что путь должен быть однокомпонентным. Например для g09.ru/page указан тип 0, так что при запросе g09.ru/page/1 фронт-контроллер не будет даже пытаться запускать контроллер, а сразу вернет 404-ую.
     
  3. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    54
    Симпатии:
    1
    Ребята подскажите, пишу аля "файловый менеджер" создаю папку в папке все норм. Но когда пытаюсь создать третью папку в папке. То получаю ошибку
    Код (Text):
    1. Warning: require_once(.fnc/functions.php): Failed to open stream: No such file or directory in C:\OpenServer\domains\test\one_folder\uyuyuy\index.php on line 2
    PHP:
    1. function new_file($path)
    2. {
    3.     if ($_SERVER['REQUEST_METHOD'] && isset($_POST['new_file'])) {
    4.         file_put_contents($_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'] . $path, '');
    5.         header("Location: {$_SERVER['REQUEST_URI']}");
    6.     }
    7. }
    8.  
    9. function new_folder($name)
    10. {
    11.     if ($_SERVER['REQUEST_METHOD'] && isset($_POST['new_folder'])) {
    12.         mkdir($_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'] . $name);
    13.         $text = file_get_contents('fnc/scan.txt', FALSE, NULL, 0);
    14.         file_put_contents($_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'] . $name . '/index.php', $text);
    15.         header("Location: {$_SERVER['REQUEST_URI']}");
    16.     }
    17. }
    вот функции при помощи которых я создаю папки и файлы. Я понимаю, что вы ничего не поняли, но а вдруг. Я просто сформулировать не могу так как опыта нет.
    --- Добавлено ---
    Как прописывать путь к файлу с функциями если иерархия будет большая?
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Абс. путь используй. Типа PATH.'.fnc/functions.php', где в PATH – абс. база.

    Это полнейшая хрень. Забудь про индексные файлы. Используй единую точку входа. Когда файл с кодом не будет кочевать вместе с данными, PATH можно определить не через DOCUMENT_ROOT, а через местоположение самих программных файлов при помощи магической константы, что норм., например:
    PHP:
    1. define('PATH',__DIR__.'/mods/');
    --- Добавлено ---
    И код нужно держать вне просматриваемой области корневого каталога (или вообще вне корневого каталога), тогда будет не нужно извращаться с сокрытием папок/файлов при помощи точки.
     
    #29 miketomlin, 16 май 2022
    Последнее редактирование: 16 май 2022