Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.135.249.119] |
|
Сообщ.
#1
,
|
|
|
Привет всем !!!
В последнее время меня заинтересовала возможность проведения автоматической регистрации на форумах сабжевого типа. Открыв profile.php мы видим примерно следующее: <form action="profile.php" enctype="multipart/form-data" method="post"> ... <input type=text name=new_password> <input type=text name=password_confirm> <input type=text name=username> <input type=text name=email> ... </form> Итак, получается что имена всех необходимых для регистрации полей у нас есть. По логике нужно просто скрипту profile.php передать четыре значения после чего должна пройти регистрация. Передаю так: Цитата http://mysite.ru/profile.php?username=test&new_password=123456&password_confirm=123456&email=test@mail.ru Не регистрируется Почему ? |
Сообщ.
#2
,
|
|
|
Цитата bur80 @ А тогда зачем? не для СПАМа |
Сообщ.
#3
,
|
|
|
Цитата SiMM @ Цитата bur80 @ А тогда зачем?не для СПАМа Для самообразования ! |
Сообщ.
#4
,
|
|
|
hint:
Цитата bur80 @ <form action="profile.php" enctype="multipart/form-data" method="post"> http://detail.phpclub.ru/article/http_request |
Сообщ.
#5
,
|
|
|
Цитата SiMM @ hint: Цитата bur80 @ <form action="profile.php" enctype="multipart/form-data" method="post"> http://detail.phpclub.ru/article/http_request Ссылка не работает. Вопрос всё ещё актуален. |
Сообщ.
#6
,
|
|
|
У тебя есть доступ к БД, где лежат таблички phpBB? Если есть, то можно регить пользователя добавляя запись в табличку {prefix}users (вроде).
А вообще, у меня где-то есть такая регистрация - добавлениев в табличку. могу скинуть, пр необходимости |
Сообщ.
#7
,
|
|
|
Цитата Rom@nych @ У тебя есть доступ к БД, где лежат таблички phpBB? Если есть, то можно регить пользователя добавляя запись в табличку {prefix}users (вроде). А вообще, у меня где-то есть такая регистрация - добавлениев в табличку. могу скинуть, пр необходимости Мне нужно передать скрипту данные, то есть сэмулировать заполнение и отправку пользователем полей формы. Знаю, что ответ где-то рядом но не могу его найти |
Сообщ.
#8
,
|
|
|
Цитата bur80 @ Так её надо было не сейчас, а два месяца назад смотреть.Ссылка не работает. Вопрос всё ещё актуален. http://phpclub.ru/detail/article/http_request |
Сообщ.
#9
,
|
|
|
Цитата SiMM @ Цитата bur80 @ Так её надо было не сейчас, а два месяца назад смотреть.Ссылка не работает. Вопрос всё ещё актуален. http://phpclub.ru/detail/article/http_request Прочитал, но практических примеров в оригинальной статье, к сожалению, нету. Можно попросить простой примерчик применительно к первому сообщению в теме ? Добавлено $fp = fsockopen ("www.mysite.com", 80, $errno, $errstr, 30); fputs($fp, "POST http://www.mysite.com/form.php?user=bur80&pas1=123456&pas2=123456&email=ba22@yandex.ru HTTP/1.0 r\n"); fclose($fp); не работает |
Сообщ.
#10
,
|
|
|
На сколько помню, надо так:
$fp = fsockopen ("www.mysite.com", 80, $errno, $errstr, 30); fputs($fp, "POST http://www.mysite.com/form.php HTTP/1.1 \r\n" . "Host: mysite.com\r\n\r\n" . "user=bur80&pas1=123456&pas2=123456&email=ba22@yandex.ru"); fclose($fp); |
Сообщ.
#11
,
|
|
|
Rom@nych, не работает нифига
|
Сообщ.
#12
,
|
|
|
Что пишет?
|
Сообщ.
#13
,
|
|
|
Цитата Rom@nych @ Что пишет? Абсолютно ничего не пишет. Щас ещё один простенький вариантик попробую... Добавлено Не работает, блин. |
Сообщ.
#14
,
|
|
|
Код в студию!
|
Сообщ.
#15
,
|
|
|
Цитата Rom@nych @ Код в студию! view.php: <? if (($user<>"") and ($email<>"")) { $time = date("H:i:s"); $s = "$time: ok"; $fp = fopen("fl.txt", "a+"); fputs($fp, $s); fclose($fp); } ?> p.php <? $fp = fsockopen ("10.0.0.110", 80, $errno, $errstr, 30); fputs($fp, "POST http://10.0.0.110/view.php HTTP/1.0 \r\n" . "Host: 10.0.0.110\r\n\r\n" . "user=br80&email=b22@yandex.ru"); fclose($fp); ?> |
Сообщ.
#16
,
|
|
|
<? $fp = fsockopen ("10.0.0.110", 80, $errno, $errstr, 30); fputs($fp, "POST http://10.0.0.110/view.php HTTP/1.0 \r\n" . "Host: 10.0.0.110\r\n\r\n" . "user=br80&email=b22@yandex.ru"); fflush($fp); fclose($fp); ?> |
Сообщ.
#17
,
|
|
|
Rom@nych, при успешном выполнении скрипта должен создаваться файл fl.txt, а он не создаётся. Значит не работает скрипт передачи данных методом POST.
|
Сообщ.
#18
,
|
|
|
Ты добавил в код эту срочку?
fflush($fp); |
Сообщ.
#19
,
|
|
|
Забыл сказать, что скрипты выложены по адресу: fpay.ru/br/p1.php и fpay.ru/br/view.php
-юсртыхэю Цитата Rom@nych @ Ты добавил в код эту срочку? fflush($fp); Да, я полностью скопировал приведённый выше код. |
Сообщ.
#20
,
|
|
|
Хм. Так, должно работать
<? $fp = fsockopen ("fpay.ru", 80, $errno, $errstr, 30); fputs($fp, "POST /br/view.php HTTP/1.1 \r\n" . "Host: fpay.ru\r\n\r\n" . "user=br80&email=b22@yandex.ru"); fflush($fp); fclose($fp); ?> |
Сообщ.
#21
,
|
|
|
Цитата Rom@nych @ Хм. Так, должно работать <? $fp = fsockopen ("fpay.ru", 80, $errno, $errstr, 30); fputs($fp, "POST /br/view.php HTTP/1.1 \r\n" . "Host: fpay.ru\r\n\r\n" . "user=br80&email=b22@yandex.ru"); fflush($fp); fclose($fp); ?> Не работает p.s. Если всё нормально, то скрипт view.php генерирует файл fl.txt с текущим временем сервера. Проверить работу скрипта можно запросом типа: fpay.ru/br/view.php?user=bur80&email=bur@mail.ru. Но этого же не происходит. |
Сообщ.
#22
,
|
|
|
а у тебя точно есть права на создания и редактирования этого файла?
|
Сообщ.
#23
,
|
|
|
Цитата Rom@nych @ а у тебя точно есть права на создания и редактирования этого файла? Естественно, я же написал выше как это можно проверить, то есть проверить работу скрипта генерирующего файл. |
Сообщ.
#24
,
|
|
|
Давай так:
<? $fp = fsockopen ("fpay.ru", 80, $errno, $errstr, 30); fputs($fp, "POST /br/view.php HTTP/1.1 \r\n" . "Host: fpay.ru\r\n\r\n" . "user=br80&email=b22@yandex.ru"); fflush($fp); while ($s = fgets($fp, 1024)) { print $s; } fclose($fp); ?> Что выдаст на экран? |
Сообщ.
#25
,
|
|
|
Давай так:
Может надо ещё дописать длину так как она вроде 100% необходима. <? $fp = fsockopen ("fpay.ru", 80, $errno, $errstr, 30); fputs($fp, "POST /br/view.php HTTP/1.1 \r\n" . "Host: fpay.ru\r\n". "content-length: 29\r\n\r\n" . "user=br80&email=b22@yandex.ru"); fflush($fp); while ($s = fgets($fp, 1024)) { print $s; } fclose($fp); ?> Что выдаст на экран? Тут ещё добавлю код (только на яве) что я добавлял в запрос для того чтобы 100% удовлятворять RFC13** import java.net.*; import java.io.*; import java.util.Random; import java.security.*; public class Transfer { public final String SEPARATOR = "\r\n"; public Transfer(String adress, int port) { //..... } public void send(String request) { //..... } public String recieve () throws Exception { //...... } public String addRFCInfo(String name, String value) { return (name + ": " + value + this.SEPARATOR); } public String addGetHead(String request, Object[] get_data) throws Exception { request += "?"; //Добавление Get параметров if (Common.getSessID () != null) { request += URLEncoder.encode ("sessid", "UTF-8") + "=" + URLEncoder.encode (Common.getSessID (), "UTF-8"); if (get_data != null) request += "&"; } for (int i = 0; i < get_data.length / 2; i++) { if (2 * i + 2 == get_data.length) { request += URLEncoder.encode (get_data[2 * i].toString (), "UTF-8") + "=" + URLEncoder.encode (get_data[2 * i + 1].toString (), "UTF-8"); } else { request += URLEncoder.encode (get_data[2 * i].toString (), "UTF-8") + "=" + URLEncoder.encode (get_data[2 * i + 1].toString (), "UTF-8") + "&"; } } request += " HTTP/1.1" + this.SEPARATOR; request += addRFCInfo("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.52 [en]"); request += addRFCInfo("Host", Common.getAdress () + ":" + Common.getPort ()); request += addRFCInfo("Accept", "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"); request += addRFCInfo("Accept-Language", "ru;q=1.0,en;q=0.9"); request += addRFCInfo("Accept-Charset", "windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1"); request += addRFCInfo("Accept-Encoding", "deflate, gzip, x-gzip, identity, *;q=0"); //request += addRFCInfo("Connection", "Keep-Alive"); request += addRFCInfo("Connection", "close"); return request; } public void doPostRequest(String file, Object[] get_data, Object[] post_data) { try { String request = "POST /" + file; //Добавляем шапку(как раз что тебе и надо) request = addGetHead(request, get_data); String postRequest = ""; for (int i = 0; i < post_data.length / 2; i++) { postRequest += boundary + this.SEPARATOR; postRequest += "Content-Disposition: form-data; name=\"" + post_data[2 * i] + "\"" + this.SEPARATOR + this.SEPARATOR; postRequest += post_data[2 * i + 1].toString () + this.SEPARATOR; } request += addRFCInfo("Content-Length", "" + postRequest.length ()); request += addRFCInfo("Content-Type", "multipart/form-data; boundary=" + boundary.substring (2, boundary.length ())); request += this.SEPARATOR; request += postRequest; if (m_debug) System.out.println (request); this.send (request); } catch (Exception e) { e.printStackTrace (); } } } Вот тако вот формируется, если хочешь напиши мыло, пошлю сам проект для Idea, но он требует ещё серверной части, и довольно сложен. А вообще в PHP можно поставить модуль CURL можешь его где то там скачать(я находил) так вот в нем реализован http, ftp и ещё до тучи всего. |
Сообщ.
#26
,
|
|
|
Читаем вдумчиво RFC касательно HTTP протокола(метод POST) либо используем расширение cURL (http://www.php.net/manual/en/ref.curl.php)
|
Сообщ.
#27
,
|
|
|
Цитата Rom@nych @ Давай так: <? $fp = fsockopen ("fpay.ru", 80, $errno, $errstr, 30); fputs($fp, "POST /br/view.php HTTP/1.1 \r\n" . "Host: fpay.ru\r\n\r\n" . "user=br80&email=b22@yandex.ru"); fflush($fp); while ($s = fgets($fp, 1024)) { print $s; } fclose($fp); ?> Что выдаст на экран? http://fpay.ru/t.php Цитата HTTP/1.1 404 Not Found Date: Thu, 01 Sep 2005 15:42:08 GMT Server: Apache/2.0.54 (Unix) PHP/4.3.11 Content-Length: 327 Content-Type: text/html; charset=iso-8859-1 Not Found The requested URL /br/view.php was not found on this server. Apache/2.0.54 (Unix) PHP/4.3.11 Server at fpay.ru Port 80 Добавлено Vilia, не то. -юсртыхэю Цитата Anarki @ Читаем вдумчиво RFC касательно HTTP протокола(метод POST) либо используем расширение cURL (http://www.php.net/manual/en/ref.curl.php) Всё это, конечно, хорошо. Можно понятный примерчик касательно моего вопроса попросить ? |
Сообщ.
#28
,
|
|
|
bur80
Написал в личку, ибо не хочу, чтобы скрипт тут засветился, а потом его нашли и использовали для спама. |
Сообщ.
#29
,
|
|
|
Спамеры давно прочитали и усвоили man, и используют вовсю curl(1). А то!
|
Сообщ.
#30
,
|
|
|
ясно
|