Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Авторегистратор на сайтах при помощи HTML
 
 автор: pavluxa09   (14.11.2009 в 14:09)   письмо автору
 
 

Здравствуйте. Помогите сделать авторегистратор на сайтах при помощи HTML и JAVASCRIPT.
Обьясняю принцип работы:

На HTML страничке есть куча IFRAME в каждом IFRAME есть форма которая уже заполнена данными (невидимая). JavaScript должен отправить все данные из форм (в каждом из IFRAME) при этом чтоб REFERER была ссылка куда отсылается форма.

Как только посетитель заходит на эту HTML страницу в каждом IFRAME отправляется формачка в которой заменяется REFERER место текущего сайта на сайт куда отсылается форма.

Цель: Авторегистратор без помощи PHP (CURL).

Пожалуйста помогите. Заранее спасибо.

  Ответить  
 
 автор: mihdan   (15.11.2009 в 01:07)   письмо автору
 
   для: pavluxa09   (14.11.2009 в 14:09)
 

Как вы предлагаете реферер подставить без отправки соответствующего заголовка?

  Ответить  
 
 автор: pavluxa09   (15.11.2009 в 17:55)   письмо автору
 
   для: mihdan   (15.11.2009 в 01:07)
 

Яж и справшиваю как через JAVASCRIPT вместе с формой отправить соответсвующий заголовок?

  Ответить  
 
 автор: АЯ   (16.11.2009 в 10:52)   письмо автору
 
   для: pavluxa09   (15.11.2009 в 17:55)
 

HTTP-заголовок средствами JS изменить нельзя.

Но можно сделать иначе.

1. Для браузера MSIE:
Загружается HTA-страница, в которой есть ифрейм.
В ифрейм загружается именно та страница, реферрер от которой надо получить.
По окончании загрузки в ифрейм (событие ONLOAD на теге <IFRAME>) innerHTML тега <BODY> загруженной страницы полностью переписывается - на странице создаётся нужная вам форма, которая затем сабмитится. В результате вы имеете сабмит формы с нужным вам реферрером в заголовке. Ифреймов с разными SRC (==нужные вам реферреры) на одной HTA-странице может быть множество.

2. В браузере FF можно сделать аналогичное, используя навеску Greasemonkey.

  Ответить  
 
 автор: pavluxa09   (16.11.2009 в 14:41)   письмо автору
 
   для: АЯ   (16.11.2009 в 10:52)
 

Ох мама мия. А примерчик можно? :)

  Ответить  
 
 автор: АЯ   (16.11.2009 в 15:48)   письмо автору
 
   для: pavluxa09   (16.11.2009 в 14:41)
 

Нет, нельзя.

  Ответить  
 
 автор: pavluxa09   (16.11.2009 в 15:57)   письмо автору
 
   для: АЯ   (16.11.2009 в 15:48)
 

Ну пожалуйста :(

  Ответить  
 
 автор: АЯ   (16.11.2009 в 16:00)   письмо автору
 
   для: pavluxa09   (16.11.2009 в 15:57)
 

Авторегистрация - зло.

Авторегистрация в руках неумного человека (неспособного сделать простейший код по полностью разжёванной схеме) - зло вдвойне.

  Ответить  
 
 автор: pavluxa09   (16.11.2009 в 16:02)   письмо автору
 
   для: АЯ   (16.11.2009 в 16:00)
 

Так авторегистрация нужна не для зла. А чтоб пользовать по сто раз не вводил одни и теже данные в поддоменах сайта. Ну пожалуйста :'(

Вы супер пупер мега крупер программист помогите пожалуйста...

  Ответить  
 
 автор: pavluxa09   (16.11.2009 в 16:16)   письмо автору
 
   для: pavluxa09   (16.11.2009 в 16:02)
 

У меня получилось так:

<html>
<head>
 <title></title>
</head>
<body id="body">
<iframe src="http://site" width="100" height="100" onLoad="document.getElementById('body').innerHTML = '<form action=http://site method=post><input name=42 type=submit value=&#196;&#238;&#225;&#224;&#226;&#232;&#242;&#252;></form>';"></iframe>
</body>
</html>


Но оно почемуто не работает, почему?

  Ответить  
 
 автор: coloboc66   (16.11.2009 в 17:15)   письмо автору
 
   для: pavluxa09   (16.11.2009 в 16:16)
 

Не знаю, почему не работает, но самую последнюю точку с запятой нужно убрать, и onload писать маленькими буквами.

  Ответить  
 
 автор: АЯ   (16.11.2009 в 23:21)   письмо автору
 
   для: pavluxa09   (16.11.2009 в 16:16)
 

К объекту <body> в любом браузере можно обратиться так - document.body.

Но "некоторые" делают следующее:
1. сначала присваивают тегу <BODY> какой-то id - <body id="body">
2. потом к этому объекту обращаются так - document.getElementById ('body').

Зачем, спрашивается?
У меня есть единственное объяснение: видимо, эти "некоторые" по сути своей - журналисты/газетчики, которые получают гонорар в зависимости от количества букв в статье. Чем больше буковок, тем больше вознаграждение :-)
Может быть, я неправ?

---
Что до конкретного JS-кода, то обращаться к тегу <body> текущей страницы и изменять его innerHTML для данной задачи нет никакой надобности. Изменять innerHTML надо у тега <BODY> страницы, загруженной в <IFRAME> (о чём мною и было написано ранее, но товарищ "Будущий Авторегистратор" не понял).

  Ответить  
 
 автор: pavluxa09   (17.11.2009 в 09:33)   письмо автору
 
   для: АЯ   (16.11.2009 в 23:21)
 

Так обратиться к содержимому iframe нельзя. Даже если ему присвоить id="iframe" и командой document.getElementById('iframe').innerHTML.body.innerHTML не получиться изменить. Или я не прав?

  Ответить  
 
 автор: sim5   (17.11.2009 в 10:10)   письмо автору
 
   для: pavluxa09   (17.11.2009 в 09:33)
 

Для того чтобы пользователь не вводил по 100 раз в поддоменах, совсем не нужен IFRAME. А document.getElementById('iframe').innerHTML.body.innerHTML это ересь, вы хоть сами можете объяснить логику записи этой?

  Ответить  
 
 автор: АЯ   (17.11.2009 в 10:33)   письмо автору
 
   для: pavluxa09   (17.11.2009 в 09:33)
 

Конечно, вы неправы.

К содержимому <IFRAME> обратиться вполне можно.
Разумеется, только после полного окончания загрузки содержимого в этот <IFRAME>:
<iframe name="myFrame" onload="window.frames.myFrame.document.body.innerHTML = 'код_формы'">

А потом - СРАЗУ ЖЕ - можно эту форму автоматически просабмитить.
Но об этом - позже.
После того, как я посмеюсь над вашим сообщением, что у вас браузер выдаёт ошибку "Access denied".

  Ответить  
 
 автор: pavluxa09   (17.11.2009 в 13:55)   письмо автору
 
   для: АЯ   (17.11.2009 в 10:33)
 

У меня браузер не выдаёт ошибку "Access denied". Он выдаёт ошибку: "Разрешение отклонено".
:'( Как исправить? И ещё оно ломает всё. Тоесть на странице показывается токо форма а остальные IFRAME пропали :(

  Ответить  
 
 автор: АЯ   (17.11.2009 в 15:19)   письмо автору
 
   для: pavluxa09   (17.11.2009 в 13:55)
 

>У меня браузер не выдаёт ошибку "Access denied". Он выдаёт ошибку: "Разрешение отклонено".
А вы попробуйте "Access denied" перевести на русский - GoogleTranslate вам в помощь.


>Как исправить?
А не надо ничего исправлять.
Надо внимательно ПЕРЕчитать самое первое моё сообщение в этой ветке.
Первое предложение раздела "1. Для браузера MSIE".
И даже не всё предложение, а лишь первые два его слова.
Там всё объяснено.
Когда ПЕРЕчитаете, тогда и поймёте - почему я знал, что буду над вами смеяться.


>на странице показывается токо форма а остальные IFRAME пропали
Команды "запихивать" на страницу "остальные IFRAME" я вам не давал - вы сначала с одним-единственным IFRAME разберитесь.

  Ответить  
 
 автор: pavluxa09   (17.11.2009 в 15:28)   письмо автору
 
   для: АЯ   (17.11.2009 в 15:19)
 

Я тестирую на браузере Internet Explorer (MSIE).
> Загружается HTA-страница
- Да есть. Я создал файл *.hta и в нём пишу весь код.

Ну оно всё равно не работает :( Ну точнее уже работает. Я сделал так
document.getElementById(id).contentWindow.document.body.innerHTML

Но теперь новая проблемка. Как отправить автоматом эту форму. А точнее как мне достать <body onload> в этом IFRAME?

  Ответить  
 
 автор: АЯ   (17.11.2009 в 15:57)   письмо автору
 
   для: pavluxa09   (17.11.2009 в 15:28)
 

>Я сделал так
document.getElementById(id).contentWindow.document.body.innerHTML


Маладца! "Назло бабушке отморожу уши" называется.
Ну да ладно... можно и так.


>Как отправить автоматом эту форму. А точнее как мне достать <body onload> в этом IFRAME?

"А нафига козе баян?" - в смысле, зачем "доставать" <body onload> в этом IFRAME?
Форма пропишется, т.е. загрузится - а ничего более в <body> и не будет.
Или хотите поместить там фотографию своей любимой девочки, с которой вместе ходили на один горшок в младшей группе детсада?
Сразу после прописывания формы можно её сабмитить:
<iframe name="myFrame" onload="with (window.frames.myFrame.document) {body.innerHTML = 'код_формы'; forms [0].submit ()}">

Только не забудьте в полях формы сразу прописать нужные значения, т.е. не просто <input name="field">, а <input name="field" value="то_что_надо">

  Ответить  
 
 автор: pavluxa09   (17.11.2009 в 16:03)   письмо автору
 
   для: АЯ   (17.11.2009 в 15:57)
 

У меня не совсем так сделано.
function name()
{
document.getElementById(id).contentWindow.document.body.innerHTML = 'Форма';
document.getElementById(id).contentWindow.document.body.forms[0].submit();
}

Тоесть у мя вывод формы в функции тошо там нада ещё проверить куча всего (чтоб по сто раз не отправляло)

Но оно не хочет субмитеть. Как исправить?

  Ответить  
 
 автор: АЯ   (17.11.2009 в 16:27)   письмо автору
 
   для: pavluxa09   (17.11.2009 в 16:03)
 

document.body.forms[0]

  Ответить  
 
 автор: pavluxa09   (17.11.2009 в 16:33)   письмо автору
 
   для: АЯ   (17.11.2009 в 16:27)
 

Дело в том что оно отправляет форму не ту которую я добавил
document.getElementById(id).contentWindow.document.body.innerHTML = 'форма'; тут,
а ту которая уже есть в самом сайте куда указывает IFRAME

  Ответить  
 
 автор: АЯ   (17.11.2009 в 16:40)   письмо автору
 
   для: pavluxa09   (17.11.2009 в 16:33)
 

Вы свою форму не "добавляли".
Свою форму вы записывали ВМЕСТО всего того, что было на исходной странице между тегами <body> и </body>.

Когда "добавляют", то пишут innerHTML += 'код_формы'
Я рекомендовал вам писать innerHTML = 'код_формы' (безо всякого плюса). Тогда ВСЁ и ВСЯ полностью УНИЧТОЖАЕТСЯ (включая любое количество имеющихся там форм) и на странице в <IFRAME> оказывается ТОЛЬКО ваш код_формы.

Или вы снова "по-своему" сделали, но скромно об этом умолчали? :-)

  Ответить  
 
 автор: pavluxa09   (17.11.2009 в 16:43)   письмо автору
 
   для: АЯ   (17.11.2009 в 16:40)
 

ну щас у меня так:
function name()
{
  document.getElementById(id).contentWindow.document.body.innerHTML = 'Моя форма';
   document.getElementById(id).contentWindow.document.forms[0].submit();
}

В результате работы оно тупо обновляет страницу. Почему?
Если убрать код document.getElementById(id).contentWindow.document.forms[0].submit(); то в флейме есть кнопочка которую я вставил и при клики на неё всё нормально. А если повсить этот код то кнопочка даже не успевает показаться и тупо обновляет страницу

Вот код с формочкой моей:
document.getElementById(id).contentWindow.document.body.innerHTML = '<form action="http://'+url+'/register.php" method="POST" name="regform">тут скрытые импуты<input name="new_user" type="submit" value="Отправить" /></form>';

  Ответить  
 
 автор: АЯ   (17.11.2009 в 16:52)   письмо автору
 
   для: pavluxa09   (17.11.2009 в 16:43)
 

Ну... не знаю.
У меня никогда никаких проблем не было.

Ну сделайте тогда с задержкой:
function name()
{
  document.getElementById(id).contentWindow.document.body.innerHTML = 'Моя форма';
   setTimeout ("document.getElementById(id).contentWindow.document.forms[0].submit()", 10);
Хотя это, конечно, бред.


Зачем, кстати, на кнопку сабмита в вашей форме прописывать "Отправить"?
Кто читать-то это будет при автосабмите? :-)
Да и hidden-поля можно оформлять обычными текстовыми инпутами - зачем прятать то, что и так никто никогда не увидит?

  Ответить  
 
 автор: pavluxa09   (17.11.2009 в 16:56)   письмо автору
 
   для: АЯ   (17.11.2009 в 16:52)
 

Ну для экономии :). А как можно отправить форму с заданным ID?

  Ответить  
 
 автор: АЯ   (17.11.2009 в 16:58)   письмо автору
 
   для: pavluxa09   (17.11.2009 в 16:56)
 

document.forms['id_формы'].submit()

  Ответить  
 
 автор: pavluxa09   (17.11.2009 в 17:14)   письмо автору
 
   для: АЯ   (17.11.2009 в 16:58)
 

Всё дошло. Спасибо большое!!! Ты лутший программист на свете!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования