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

Показано с 1 по 25 из 54

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    А ещё лучше...
    Спасибо, Андрей: тоже работает!

    P.S. Блин, как грустно быть ламером в этом лучшем из миров - как работает эта конструкция я уже не понимаю...
    Валентин "CoValent" Логинов

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



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

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

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

    Цитата Сообщение от CoValent Посмотреть сообщение
    Спасибо, Андрей: тоже работает!

    P.S. Блин, как грустно быть ламером в этом лучшем из миров - как работает эта конструкция я уже не понимаю...
    isset($_GET('id')) выдаёт истину, если в запросе есть id=чему-то там.
    А вообще, с точки зрения безопасности
    include с непроверенной переменной из запроса - жуткая дыра.
    Через id можно заинклюдить что хочешь.

    Количество допустимых id должно быть ограничено и через if проверять и направлять на конкретную страницу
    Код:
    <?php
    if (!isset($_GET['id'])) {
    include ("1.htm");
    } else {
    if($_GET['id']=1){
    include("1.htm");
    }
    if($_GET['id']=2){
    include("2.htm");
    }
    ........
    }
    ?>
    Или хотябы проверять, что $_GET['id'] цифра, а не что-нибудь вроде "http://lomaster.com/crack"
    Некрасиво, длинно, но смысл есть.
    Крайний раз редактировалось Mirnyi; 19.03.2010 в 17:53.

  6. #6
    Мастер Аватар для DogEater
    Регистрация
    03.11.2001
    Адрес
    Подмосковье
    Возраст
    52
    Сообщений
    4,442

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

    А можно я тоже кааапельку повыпендриваюсь?
    Код:
    if (isset ($_GET['id']) and preg_match ("/^\d$/",$_GET['id'])){
       include($_GET['id'].".htm");
    }
    else {
       include("1.htm");
    }
    "Прежде чем открыть огонь - оглянись!"
    А.В. Ворожейкин "Сильнее смерти", стр 9.
    "<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
    Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
    © DEDA
    1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64

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

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

    Цитата Сообщение от DogEater Посмотреть сообщение
    А можно я тоже кааапельку повыпендриваюсь?
    Код:
    if (isset ($_GET['id']) and preg_match ("/^\d$/",$_GET['id'])){
       include($_GET['id'].".htm");
    }
    else {
       include("1.htm");
    }

    Я-то по-ламерски. Регулярники для меня - тёмный лес
    Значение набора символов /^\d$/ у меня в голове не помещается

  8. #8
    Мастер Аватар для DogEater
    Регистрация
    03.11.2001
    Адрес
    Подмосковье
    Возраст
    52
    Сообщений
    4,442

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

    Цитата Сообщение от Mirnyi Посмотреть сообщение

    Я-то по-ламерски. Регулярники для меня - тёмный лес
    Значение набора символов /^\d$/ у меня в голове не помещается
    Сразу после начала строки идёт одна цифра, далее следует конец строки.
    Это гарантированная проверка на то, что в переменной только один символ и это есть цифра. После чего уже можно спокойно инклюдить.
    "Прежде чем открыть огонь - оглянись!"
    А.В. Ворожейкин "Сильнее смерти", стр 9.
    "<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
    Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
    © DEDA
    1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64

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

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

    Цитата Сообщение от DogEater Посмотреть сообщение
    Это гарантированная проверка на то, что в переменной только один символ и это есть цифра.

    отвалбашки

  10. #10
    Старший инструктор Аватар для harinalex
    Регистрация
    22.12.2007
    Адрес
    UUEE
    Возраст
    60
    Сообщений
    4,236

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

    Цитата Сообщение от DogEater Посмотреть сообщение
    Сразу после начала строки идёт одна цифра, далее следует конец строки.
    Это гарантированная проверка на то, что в переменной только один символ и это есть цифра. После чего уже можно спокойно инклюдить.
    тогда уж надо предусмотреть и 99.htm (вряд ли там так мало файлов ) . имхо , лучше просто /[0-9]/ или /^[\d]+/
    Крайний раз редактировалось harinalex; 19.03.2010 в 19:25.

Ваши права

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