???
Математика на уровне МГУ

Страница 1 из 2 12 КрайняяКрайняя
Показано с 1 по 25 из 54

Тема: PHP-вопрос

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    PHP-вопрос

    В сайте использован вызов содержимого по линку типа "index.php?id=2":
    Код:
    <?php
    if ($id=="") {
    include ("1.htm");
    } else {
    include ("$id.htm");
    }
    ?>
    Однако, по любому линку вызывается лишь содержимое "1.htm" - но не "2.htm", как в примере вызова наверху.

    Подскажите, пожалуйста, где собака порылась? А то мозги уже перегрелись...

    Спасибо!
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  2. #2
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    надо так писать:
    include ($id.".htm");

  3. #3
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Увы, Илья, не работает.
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  4. #4
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    щас.. минутку..
    Проверю сам

  5. #5
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Уточнение: кручу локально в денвере. Хотя, думаю, не в этом дело...

    Кстати, точка, выделенная красным ($id.".htm") - точно нужна?
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  6. #6
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    Код:
     if (!@$id) 
      {include ("1.htm");
      } 
     else 
      {include ("$id".".htm");
      }
    вот так у меня заработало

  7. #7
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Увы, у меня содержимое "2.htm" так и не вызывается...
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  8. #8
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: PHP-вопрос

    Цитата Сообщение от CoValent Посмотреть сообщение
    Увы, у меня содержимое "2.htm" так и не вызывается...
    Посмотреть настройки PHP, попробовать через $_GET
    Код:
    <?php
    if ($_GET['id']=="") {
    include ("1.htm");
    } else {
    include ("$_GET['id']".".htm");
    }
    ?>
    Крайний раз редактировалось Mirnyi; 19.03.2010 в 17:01.

  9. #9
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Посмотреть настройки PHP, попробовать через $_GET
    Андрей... я в этом дуб дубом. Можешь пошагово?
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  10. #10
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: PHP-вопрос

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Посмотреть настройки PHP, попробовать через $_GET
    Код:
    <?php
    if ($_GET['id']=="") {
    include ("1.htm");
    } else {
    include ("$_GET['id']".".htm");
    }
    ?>
    Вот так
    а разрешать регистрировать глобалы уже считается моветоном, хотя многие старые скрипты без этого не работают

  11. #11
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Вот так
    а разрешать регистрировать глобалы уже считается моветоном, хотя многие старые скрипты без этого не работают
    А вот этот вариант не работает, ругается на строчку
    Код:
    include ("$_GET['id']".".htm");
    через
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in Z:\home\mysite\www\index.php on line 7
    Потому что глобальную исправили?
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  12. #12
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: PHP-вопрос

    Цитата Сообщение от CoValent Посмотреть сообщение
    А вот этот вариант не работает, ругается на строчку
    Код:
    include ("$_GET['id']".".htm");
    через

    Потому что глобальную исправили?
    Нет. Тут действительно где-то в синтаксисе косяк
    Что-то с кавычками.
    Попробуй так
    Код:
    include ($_GET['id'].".htm");

  13. #13
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    ...Попробуй так...
    О, это решение заработало! Спасибо, Андрей!
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  14. #14
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: PHP-вопрос

    Цитата Сообщение от CoValent Посмотреть сообщение
    О, это решение заработало! Спасибо, Андрей!
    А ещё лучше
    Код:
    <?php
    if (isset($_GET['id'])) {
    include ($_GET['id'].".htm");
    } else {
    include ("1.htm");
    }
    ?>

  15. #15
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    Цитата Сообщение от CoValent Посмотреть сообщение
    А вот этот вариант не работает, ругается на строчку
    Код:
    include ("$_GET['id']".".htm");
    через

    Потому что глобальную исправили?
    Нет, то, что глобалы разрешены - на работу $_GET отражаться не должно.
    Скорее всего, ошибка происходит, когда вызываешь файл без параметра id, типа http://localhost/index.php
    А http://localhost/index.php?id=1 должно работать нормально

  16. #16
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Вот так
    а разрешать регистрировать глобалы уже считается моветоном, хотя многие старые скрипты без этого не работают

    Ну, на всех хостах, с которыми я работал, разрешены глобалы.
    Хотя с точки зрения безопасности их лучше запретить

  17. #17
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    ну вот я залил на хост, работает:
    http://berossi.by/i.php

    там лежит три файла 1.htm, 2.htm, 3.htm

  18. #18
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Цитата Сообщение от ilya_rad Посмотреть сообщение
    ну вот я залил на хост, работает:
    http://berossi.by/i.php

    там лежит три файла 1.htm, 2.htm, 3.htm
    Можешь их в аттач сюда засунуть?
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  19. #19
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    Да, засовываю все файлы
    Вложения Вложения
    • Тип файла: rar 1.rar (488 байт, Просмотров: 29)

  20. #20
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    А, да, php.ini посмотри на предмет
    register_globals = On

  21. #21
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    У меня локально не срабатывает.
    Цитата Сообщение от ilya_rad Посмотреть сообщение
    А, да, php.ini посмотри на предмет
    register_globals = On
    Пошёл искать...
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  22. #22
    Пилот Аватар для ilya_rad
    Регистрация
    12.09.2005
    Адрес
    РБ, г. Бобруйск
    Возраст
    49
    Сообщений
    2,896

    Ответ: PHP-вопрос

    если лень искать, то можно через GET.
    дописать самой первой строкой $id=$_GET["id"];

  23. #23
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Ура, заработало! Спасибо, Илья: нашёл в php.ini строчку и исправил!
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

  24. #24
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: PHP-вопрос

    А можно ещё и вот так:
    /^\d+$/ - любое целое число без лишних символов (включая 0)
    или
    /^[0-9]+$/ -тоже самое



    Я теперь тоже по-китайски умею

  25. #25
    Добрый хозяин Аватар для CoValent
    Регистрация
    01.11.1997
    Адрес
    Москва, Россия
    Возраст
    57
    Сообщений
    19,336
    Images
    34

    Ответ: PHP-вопрос

    Так, краткое описание моей задачи и вывод:

    1. Есть статическая оболочка сайта-визитки, подгружаемая через 3 вызова include (грубо - "статически шапка", "статически подвал" и "динамически контент").
    2. Контент в HTML, причём имя файла значимое, а не цифровое.
    3. Исходя из вышеперечисленных условий, а также возможности инъекции черехз вызов "чего попало" любые решения этой задачи, как цифровые, так и списковые, к сожалению, абсолютно неинтересны.

    Ибо проще создать кучу контента с двумя статическими вызовами оболочки.

    Большое спасибо всем, кто потратил своё время и просветил о нежелательности использования динамического вызова!
    Валентин "CoValent" Логинов

    Errare humanum est, ignoscere divinum (с) Marcus Tullius Cicero



    Правила тут, термины тут, модераторы тут.

Страница 1 из 2 12 КрайняяКрайняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •