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 :: Добавить к ссылке GET переменные
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Здравствуйте!
Помогите, пожалуйста.
Есть сайт на Joomla.
В тексте статьи есть ссылка (на каждой странице своя ссылка), к которой нужно пристыковать значения из переменных после &.
Эта ссылка в конце имеет вид comment.php?dlid=400 . Кусок "comment.php?dlid=" одинаковый, меняется только число (400 в примере). Число может быть и 45004.
Как найти ссылку, которая заканчивается на comment.php?dlid=400 и добавить к ней значение из переменной $а после &аlfa=, $b после &beta=, $c после &ceta=
$а = "ааааааа";
$b = "bbbbbb";
$c = "cccccc";
Чтоб получилось так comment.php?dlid=400&аlfa=ааааааа&beta=bbbbbb&ceta=cccccc
preg_replace для этого использовать?
как правильно составить регулярное выражение, чтобы находить нужную ссылку и добавлять к ней переменные?
Извините, если непонятно объясняю - мозги уже пухнут. Вроде бы все просто должно быть, но в регулярных выражениях не силен.
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Задача стоит в том, чтобы передать через ссылку на следующую страницу несколько переменных.
А именно нужно передать значение из <title></title>, из meta name="description", а также src из изображения, которое в тексте имеет код <img src="images/stories/users/64/1600.jpg" border="0" alt="Альтернативный текст" title="Тайтл текст" />
Так как в Тайтле, Дескрипшине и src встречаются разные символы, то их нужно зашифровать через функцию urlencode(); как я понял.
Вот что у меня вышло:
$imgsrc=urlencode("images/stories/users/64/1600.jpg");//зашифрованный src изображения
$perem="&title=".$newtitle."&description=".$descrip."&imgsrc=".$imgsrc;//то, что нужно добавить к ссылке
Только как найти images/stories/users/64/1600.jpg , если у них у всех одинакова часть "images/stories/users/" и заканчивается этот кусок перед знаком " (тот, что идет после .jpg)
Вот как найти этот кусок images/stories/users/64/1600.jpg - помогите, пожалуйста, составить правильное регулярное выражение, чтоб поместить его в переменную.
И как потом содержимое $perem пристыковать к ссылке comment.php?dlid=400 ?
ams
Отправлено: 05 Декабря, 2012 - 23:22:05
Посетитель
Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010
Помог: 13 раз(а)
#images\/stories\/users[^\.]+\.jpg|png|gif#
Но я думаю, что тебе будет лучше в сессии это передавать...
lustoff
Отправлено: 05 Декабря, 2012 - 23:31:36
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
ams пишет:
#images\/stories\/users[^\.]+\.jpg|png|gif#
Но я думаю, что тебе будет лучше в сессии это передавать...
Спасибо за выражение! Завтра буду пробовать...
А передавать через сессии это как? Нужно, наверное, было еще сразу сказать, что передавать переменные нужно на другой сайт. Сессии в этом случае подходят? (для меня еще более темный лес).
ams
Отправлено: 07 Декабря, 2012 - 11:08:33
Посетитель
Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
ams пишет:
Если на другой сайт, то сессии не подойдут. Тогда нужно исп. cURL, сокеты или еще ченить
Посмотри http://php.net/manual/ru/book.curl.php
Спасибо, посмотрел... Темный лес для меня
Могу же я просто передать переменные через GET?
Что выяснил:
1) Нужно их шифровать через urlencode();
2) Потом дешифровать, пока не нашел чем (не искал, потому что пока не передал еще ).
3) Для безопасности на другом сайте проверить с какого сайта был переход, как описано тут http://forum.php.su/topic.php?fo...1&topic=3713 . Если с моего сайта, то использовать переменные, если с какого-то другого то подставлять какие-либо дефолтные значения. Можно как-то подделать $_SERVER['HTTP_REFERER']?
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Ну тут все просто
Если 2 сайта Вашых то тогда определим следуещее:
1 сайт - сайт с которого идет запрос
2 сайтс - сайт на какой идет запрос
Действие на первом:
Отдно условие - должен бить curl
формируете параметры запроса и оправляете GET запрос
Какие гетб пост не важно - ето зависит какая логика на втором.
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
ams пишет:
Тогда нужно исп. cURL
esterio пишет:
Отдно условие - должен бить curl
Блин, что ж это за зверь такой ? Придется изучать, ссылку мне дали...
А если просто найти нужную в тексте ссылку регуляркой и добавить к ней переменные через & вот так
comment.php?dlid=400&аlfa=ааааааа&beta=bbbbbb&ceta=cccccc
Пользователь кликает по этой ссылке - переменные уходят на второй сайт. Там принимаются эти переменные и пользователю показывается нужный результат. Так сработает?
esterio
Отправлено: 08 Декабря, 2012 - 12:01:17
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Если я вас правильно понял, то нет, если У вас форма которая ссилаиться на 2 сайт, то он туда перейдет и заодно уйдет с вашего сайта. Я надеюсь Вы не хотите красть пароли))))
lustoff
Отправлено: 08 Декабря, 2012 - 14:15:27
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
esterio пишет:
Если я вас правильно понял, то нет, если У вас форма которая ссилаиться на 2 сайт, то он туда перейдет и заодно уйдет с вашего сайта. Я надеюсь Вы не хотите красть пароли))))
Красть ничего не собираюсь
Сайты оба мои. Форма не используется. Просто в тексте есть ссылка, которая будет переделываться при помощи preg_replace(); (будут добавляться переменные). А это все делаю, чтоб не делать в ручном режиме. Второй сайт на поддомене. Там идет страничка с прямой ссылкой для скачивания файла. Вот чтобы эту страничку хорошо оформить для конкретного пользователя, хочу передавать переменные методом GET.
lustoff
Отправлено: 09 Декабря, 2012 - 13:29:26
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
ams пишет:
#images\/stories\/users[^\.]+\.jpg|png|gif#
Пробовал использовать эту регулярку - не получается у меня.
Удалось найти другим способом нужное изображение
Все бы хорошо, только оно как элемент массива идет - в браузере показывает как Array ( [0] => images/stories/users/64/1408.jpg ), и никак не могу разобраться, как его сделать обычной строкой.
Также нашел ссылку (даже вспомнил, что их может быть больше чем одна на странице, и к каждой нужно пристыковать переменные (хорошо, что одни и те же переменные к каждой ссылке ))
А дальше что делать? Моя фантазия иссякла. (Добавление)
Чувствую, что это то, что мне нужно (похожий пример). Вроде ищет все совпадения по регулярке и добавляет к каждому нужные элементы.
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
lustoff пишет:
Пробовал использовать эту регулярку - не получается у меня.
Извините, ams, все работает! Это у меня руки не оттуда.
Так. То, что нужно пристыковать к ссылке, наконец попало в одну переменную! Ура! Этап 1 выполнен
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Помогите, пожалуйста, найти ссылки в тексте comment.php?dlid=256 comment.php?dlid=257 comment.php?dlid=258 comment.php?dlid=259 (может быть и одна ссылка в тексте такая) и пристыковать к каждой содержимое переменной $perem - не получается у меня методом тыка.
lustoff
Отправлено: 11 Декабря, 2012 - 08:24:49
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2012
Все ссылки получаются вида comment.php?dlid=256&title=....&decription=..... comment.php?dlid=256&title=....&decription=..... comment.php?dlid=256&title=....&decription=.....
короче, одинаковые все
А ну понятно, нужно в строку
На локальной машине браузер тупит 30 сек. а потом выдает Fatal error: Maximum execution time of 30 seconds exceeded . Что не так? (Добавление)
Кажется, нашел я свою ошибку
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.