![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
Здравствуйте спецы. Помогите решить задачку. Учусь на курсах и в контрольной работе задали такой вопрос: Есть ссылка типа http://site.com/news.php?add=news335. Эта ссылка находится на 10 000 страниц сайта(ссылка на новость типа), Но домен раз в день меняется и ссылка соответственно становится не рабочей, а руками править на 10 к страниц не реально. Каждый день уже не site.com а site2.com, site3.com и тд. Как организовать в html странице скрипт, который реализует подстановку правильного домена из файла domains.txt в момент нажатия на ссылку, то есть линк типа этого http://<?=$mylink?>/news.php?add=news335), где <?=$mylink?> тот домен который берется из файла domains.txt. Файл должен лежать в корне домена на страницах которого размещен линк. Я в кодинге пока не шарю особо, особенно в js? поэтому попрошу с примерчиками чтобы сразу попробовать. Очень нужна Ваша помосчь.
![]() |
|||
|
||||
webevt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 5.5.2005 Репутация: нет Всего: 3 |
viperson, реализация именно с помощью js? Во-первых, если ссылка на свой же сайт(на котором и скрипт), то можно использовать location.domain. Иначе, с помощью аякса отправлять запрос на этот txt файл, содержащий новое имя домена.
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
А чего - в контрольной работе пофиг на каком языке делать? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
да в принципе всеравно на чем писать. Так как ссылка находится на html странице я предположил что может быть реализовано только на js, хотя можно на странице указать ссылку другого вида если в php делать и связать эту ссылку с пхп скриптом на этом же домене. Я создал параллельно топик в пхп разделе. Я не очень шарю в программировании, поэтому нужна любая реализация, если на js возможно то на нем, а если нет пригодятся любые реализации.
Добавлено @ 23:21 webevt ссылка не на тот же домен. Ссылка находится на страницах моего сайта а ссылается на другой домен. ksnk Вид переменной в домене просто случайный, не важно как будет выглядеть, хоть $domain? важна реализация задачи для html кода, то есть страница на которой линк на другой домен является html Это сообщение отредактировал(а) viperson - 5.1.2009, 23:26 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
А как в точности формулируется задача? Просто, imho, задача должна быть хоть сколько нибудь приближена к реальности, а в реальности 10к страниц новостного сайта не меняются так каждый день. Более того, индекс ссылки новости не меняется никогда. И адрес ссылки всегда один и тот-же именно для того, чтобы ссылка всегда оставалась актуальной, чтобы Вася Пупкин, поместив новость в букмарки в детстве по пьяне, мог в старости, на трезвую голову ее еще раз прочитать...
![]() Можно порешать более разумно, imho, выглядящую задачу - "давайте попроектируем охрененно большой новостной портал с офигенным потоком новостей..." ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
ksnk Все абстрактно в задаче. Не важно что это за сайт, на который ссылка. Просто преподавателям захотелось именно так. Пусть это будет любой другой сайт, а ссылка может выглядеть как угодно. то есть допустим http://blabla.com/viagra.html
![]() Это сообщение отредактировал(а) viperson - 6.1.2009, 00:25 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Угу, а откуда тогда берутся "правила переименования ссылок"?
Вот была ссылка "site1.com/?news=1234", на следующий день она должна стать "site3.ru/?add=2345". через два дня "site5.org/?add=news3456"? Где и как предполагается хранить эти 10000 * `количество новостей на странице` ссылок? Это сообщение отредактировал(а) ksnk - 6.1.2009, 00:06 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
ksnk site1.com/?news=1234", на следующий день она будет "site2.ru/?news=1234". через два дня "site5.org/?news=1234" МЕНЯЕТСЯ ТОЛЬКО ДОМЕН! Если не знаешь как реализовать не пиши бред.
10000 страниц на моем сайте и на каждой из них свои ссылки, Просто надо менять домен а не всю ссылку. то есть изначально я должен иметь ввиду что домен может измениться и сразу в страницу добаить некий скрипт, который будет подтягивать имя домена, чтобы избежать таких ситуаций в будущем, то есть при создании других сайтов под размещение новостей Это сообщение отредактировал(а) viperson - 6.1.2009, 00:26 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
viperson, Угу. Уже немного понятнее
![]() Итого - есть просто файл с одним единственным именем домена, на который нужно заменить один-единственный домен в ссылках при показе всех этих 10000 страниц? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
да ksnk именно так.
Я уже понял как реализовать, но нужна помосчь спецов пхп. Вот есть ссылка http://site.com/news.php?add=news1 В моей html странице mnogonews.html я указываю ее как news.php?add=news1, где news.php - мой пхп скрипт который лежит в корне моего домена, в котором задано правило, что нужно сделать редирект по ссылке news.php?add=news1, только вначале подставить домен вида http://site.com/ перед news.php?add=news1 взяв домен из файла domain.txt. Актуальный домен я сам руками каждый день прописываю в последнем. Пусть даже актуальный домен лежит в самом скрипте news.php - не важно где прописана инфа об актуальном домене, то есть как реализуешь так реализуешь. |
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
файл replaceit.php
Ну раз уж нужно на javaScript'е порешать... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
Данная реализация не работает,я проверял.
Это сообщение отредактировал(а) viperson - 6.1.2009, 15:42 |
|||
|
||||
Hades |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 8.8.2008 Репутация: 2 Всего: 37 |
файл ChangeDomains.js
добавляем в другие(10 000) страницы
|
||||
|
|||||
viperson |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
Мне не совсем понятна данная реализация. Есть 2 домена bla и blabla. В данный момент на всех страницах стоит bla. а ссылка - это не только имя домена , выглядит так: http://bla.com/news.php?add=news1. То есть скрипт должен автоматом сменить http://bla.com/news.php?add=news1 на http://blabla.com/news.php?add=news1 при нажатии на нее. Кроме того на страницах есть ссылки на другие ресурсы и соответственно скрипт не должен применять ни каких правил к другим ссылкам. Это сообщение отредактировал(а) viperson - 6.1.2009, 16:05 |
||||||
|
|||||||
Hades |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 8.8.2008 Репутация: 2 Всего: 37 |
||||
|
||||
viperson |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
нет смысла даже проверять. так как + ко всему на этих же страницах есть другие ссылки вида http://bla.com/news.php?add=news2, http://bla.com/news.php?add=news3 и тд. Я так понимаю что надо основываться на условии: если домен = bla.com заменить на blabla com, то есть нужно менять не ссылку целиком, а только имя домена в ссылке. Это сообщение отредактировал(а) viperson - 6.1.2009, 16:18 |
||||
|
|||||
Hades |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 8.8.2008 Репутация: 2 Всего: 37 |
вы ведь всё ровно меняете домен в ручную, так в чём проблема, что трудно поменять
на
|
||||||
|
|||||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
Я понял он будет работать если на странице только одна ссылка, но, как я уже сказал выше, на странице есть еще другие ссылки вида http://bla.com/news.php?add=news2, http://bla.com/news.php?add=news3, 4, 5, 6 и тд и таких разных ссылок допустим тоже 10 000. Получается, что надо в js перечислить все 10000 ссылок. |
|||
|
||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
Предлагаю рассмотреть другой вариант, когда в теле станицы ссылка выглядит <_a href="news.php?add=news1>news1</a> и <_a href="page.php?add=page1>page1</a> без имени домена и http, если такое возможно. Задача все таже - подставить актуальное имя домена вида _http://blabla.com/, но смена домена должна осуществлятся только в том случае если ссылка начинается с news.php и page.php, так на данной странице есть другие ссылки типа <_a href="oldnews.html">old news</a> которые указывают на домен данной страницы. Как вариант, подойдет условие, что если страница в ссылке начинается с .php, а не .html. Опять же нужна связь с .php или .txt, куда будет прописываться актуальный домен.
|
|||
|
||||
Hades |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 8.8.2008 Репутация: 2 Всего: 37 |
файл ChangeDomains.js
дальше вставляйте свои 10 000 ссылок, только смотрите чтобы браузер не треснул ![]() |
||||
|
|||||
viperson |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
А ты проверял? У меня не пашет, вот посмотри сам http://usethis.info/2/1.html и кодстраницы посмотри, может я чот не так сделал. Даже проверил у 2-х разных хостинг провах Это сообщение отредактировал(а) viperson - 6.1.2009, 22:31 |
||||||
|
|||||||
Hades |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 8.8.2008 Репутация: 2 Всего: 37 |
а на сервере есть такой файл? должен быть в той же папке где и html-страница. если не будет работать попробуйте так
Это сообщение отредактировал(а) Hades - 6.1.2009, 22:40 |
|||
|
||||
viperson |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
Ну конечно есть. Можешь проверить подставив в адрес вместо 1.html ChangeDomains.js, который браузер предложит сразу скачать. Второй вариант проверил, тоже глухо. Это сообщение отредактировал(а) viperson - 7.1.2009, 00:22 |
||||
|
|||||
Hades |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 8.8.2008 Репутация: 2 Всего: 37 |
viperson,
извиняюсь, в место
поставьте
странно у меня работает. Это сообщение отредактировал(а) Hades - 7.1.2009, 00:50 |
||||
|
|||||
viperson |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
Не работает на двух разных хостингах. Можешь ссылку дать страницы на твоем хостинге? |
||||||
|
|||||||
Hades |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 8.8.2008 Репутация: 2 Всего: 37 |
||||
|
||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
1. <script type="text/javascript">
function f(link) { var newDomain = "superpuper"; link.href = "http://www." + newDomain + link.href.substr(link.href.indexOf(".com")); } </script> 2. <script type="text/javascript" src="ChangeDomains.js"></script> Оба варианта работают Это сообщение отредактировал(а) viperson - 7.1.2009, 21:23 |
|||
|
||||
Hades |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 8.8.2008 Репутация: 2 Всего: 37 |
||||
|
||||
viperson |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 5.1.2009 Репутация: нет Всего: -1 |
Да уже все работает, во втором варианте где то ошибся. Создал файл заново и все заработало. Я очень Вам благодарен за решение не легкой(для меня) задачи
![]() Это сообщение отредактировал(а) viperson - 7.1.2009, 21:21 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |