Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как работать с регулярными выражениями в php
И все верно, но осталось проверить на наличие формата, если в /?style= не ссылка на стиль .css то покажет default.css а если в конце ссылки есть .css соответственно должен показывать эту ссылку, помогите пожалуйста, как это сделать. (Добавление)
А сам я вот так сделал:
но это не правильно, т.к. нужно проверить конец ссылки , покажите пожалуйста, правильный вариант
esterio
Отправлено: 28 Февраля, 2013 - 15:44:45
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Алексеей пишет:
$_GET[style]
$_GET['style']
Сначала разберитесь с кавичками
Точка в регул. означает любой символ, нужно \.
Вообщем вопрос очень обширный. Нужно читать. Непомню ссилки но на php.net в доке по preg_* есть полное описание регулярок
Алексеей
Отправлено: 28 Февраля, 2013 - 16:06:27
Посетитель
Покинул форум
Сообщений всего: 278
Дата рег-ции: Дек. 2011
Помог: 2 раз(а)
esterio, спасибо. И лучше почитаю в php.net.
Спасибо за внимание.
LShark
Отправлено: 28 Февраля, 2013 - 18:04:38
Частый гость
Покинул форум
Сообщений всего: 240
Дата рег-ции: Нояб. 2012
Помог: 1 раз(а)
1. Имхо расширение .css получать через substr, так как могут подсунуть что то типа vasia.css.txt.php и будет веселье.
2. Если есть $css = $_GET[style]; то зачем потом echo $_GET[style]; ?
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
открою вам серкрет, но просто проверка расширения файла ничего не даст. От идеи имени файла в сылке стоит отказатся.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Алексеей
Отправлено: 28 Февраля, 2013 - 19:13:18
Посетитель
Покинул форум
Сообщений всего: 278
Дата рег-ции: Дек. 2011
Помог: 2 раз(а)
OrmaJever, Вы совершенно правы! И сам я это понял, поэтому думаю создать другой вариант изменение стиля скрипта, благодарю за внимание. LShark, да, я уже выучил и другие варианты на php.net, спасибо, что уделили время!
NoPaper
Отправлено: 28 Февраля, 2013 - 20:10:28
Посетитель
Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012 Откуда: Минск
Помог: 9 раз(а)
LShark пишет:
esterio пишет:
Ваш вариант тоже не лишен проблем
Каких, если не секрет?
Вроде имя файла уже не подменишь "неcss".
Ну разве что придется потмо проверять, есть ли такой файл реально, или нет. Зато на 1 обращение к диску меньше.
При обращении к жесткому диску расширение обходится нулл байтом(%00) , знаками, которые нельзя использовать в имени файла (~), огромным кол-вом слешей, да и это не весь список...
Алексеей, обращение к диску со стороны скрипта будет? Или файл просто загрузится подключенным клиентом(пользователем)? Если второе, то можно не пудрить мозги и просто проверять наличие расширения.
Алексеей
Отправлено: 28 Февраля, 2013 - 22:33:20
Посетитель
Покинул форум
Сообщений всего: 278
Дата рег-ции: Дек. 2011
Помог: 2 раз(а)
NoPaper пишет:
Алексеей, обращение к диску со стороны скрипта будет? Или файл просто загрузится подключенным клиентом(пользователем)? Если второе, то можно не пудрить мозги и просто проверять наличие расширения.
Нет, в 'style' ставится только путь к css файлу со стороны пользователя, т.е. стиль для скрипта пользователь делает сам и настраивает путь к стилю через /?style=$1
Я тут тупанул, так сказать. Это небезопасно!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.