На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS

Дорогие друзья! Поздравляем вас с Новым 2025 годом!

Всем удачи, успеха и благополучия!

msm.ru
! Положения
1. Раздел "Готовые движки" предназначен для поиска и обсуждения готовых веб-решений.
2. Ответы с предложением разработать свой собственный движок будут удаляться без предупреждения.
  
    > phpBB: автоматическая регистрация , не для СПАМа !!!
      Привет всем !!!

      В последнее время меня заинтересовала возможность проведения автоматической регистрации на форумах сабжевого типа. Открыв profile.php мы видим примерно следующее:
      ExpandedWrap disabled
        <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

      Не регистрируется :blink: Почему ? :wall:
        Цитата bur80 @
        не для СПАМа
        А тогда зачем?
          Цитата SiMM @
          Цитата bur80 @
          не для СПАМа
          А тогда зачем?

          Для самообразования ! :yes:
            hint:
            Цитата bur80 @
            <form action="profile.php" enctype="multipart/form-data" method="post">

            http://detail.phpclub.ru/article/http_request
              Цитата SiMM @
              hint:
              Цитата bur80 @
              <form action="profile.php" enctype="multipart/form-data" method="post">

              http://detail.phpclub.ru/article/http_request

              Ссылка не работает. Вопрос всё ещё актуален.
                У тебя есть доступ к БД, где лежат таблички phpBB? Если есть, то можно регить пользователя добавляя запись в табличку {prefix}users (вроде).
                А вообще, у меня где-то есть такая регистрация - добавлениев в табличку. могу скинуть, пр необходимости
                  Цитата Rom@nych @
                  У тебя есть доступ к БД, где лежат таблички phpBB? Если есть, то можно регить пользователя добавляя запись в табличку {prefix}users (вроде).
                  А вообще, у меня где-то есть такая регистрация - добавлениев в табличку. могу скинуть, пр необходимости

                  Мне нужно передать скрипту данные, то есть сэмулировать заполнение и отправку пользователем полей формы. Знаю, что ответ где-то рядом но не могу его найти :wall:
                    Цитата bur80 @
                    Ссылка не работает. Вопрос всё ещё актуален.
                    Так её надо было не сейчас, а два месяца назад смотреть.
                    http://phpclub.ru/detail/article/http_request
                      Цитата SiMM @
                      Цитата bur80 @
                      Ссылка не работает. Вопрос всё ещё актуален.
                      Так её надо было не сейчас, а два месяца назад смотреть.
                      http://phpclub.ru/detail/article/http_request

                      Прочитал, но практических примеров в оригинальной статье, к сожалению, нету. Можно попросить простой примерчик применительно к первому сообщению в теме ? :rolleyes:

                      Добавлено
                      ExpandedWrap disabled
                        $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);

                      не работает <_<
                        На сколько помню, надо так:
                        ExpandedWrap disabled
                          $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);
                        Сообщение отредактировано: Rom@nych -
                          Rom@nych, не работает нифига :(
                            Что пишет?
                              Цитата Rom@nych @
                              Что пишет?

                              Абсолютно ничего не пишет. Щас ещё один простенький вариантик попробую...

                              Добавлено
                              Не работает, блин. <_<
                                Код в студию!
                                  Цитата Rom@nych @
                                  Код в студию!

                                  view.php:
                                  ExpandedWrap disabled
                                    <?
                                     
                                    if (($user<>"") and ($email<>"")) {
                                     
                                    $time = date("H:i:s");
                                     
                                    $s = "$time: ok";
                                     
                                    $fp = fopen("fl.txt", "a+");
                                    fputs($fp, $s);
                                     
                                    fclose($fp);
                                    }
                                     
                                    ?>


                                  p.php
                                  ExpandedWrap disabled
                                    <?
                                     
                                    $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);
                                     
                                    ?>

                                  :unsure:
                                    ExpandedWrap disabled
                                      <?
                                       
                                      $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);
                                       
                                      ?>
                                    Сообщение отредактировано: Rom@nych -
                                      Rom@nych, при успешном выполнении скрипта должен создаваться файл fl.txt, а он не создаётся. Значит не работает скрипт передачи данных методом POST.
                                      Сообщение отредактировано: bur80 -
                                        Ты добавил в код эту срочку?
                                        ExpandedWrap disabled
                                          fflush($fp);
                                          Забыл сказать, что скрипты выложены по адресу: fpay.ru/br/p1.php и fpay.ru/br/view.php

                                          -юсртыхэю
                                          Цитата Rom@nych @
                                          Ты добавил в код эту срочку?
                                          ExpandedWrap disabled
                                            fflush($fp);

                                          Да, я полностью скопировал приведённый выше код.
                                            Хм. Так, должно работать
                                            ExpandedWrap disabled
                                              <?
                                               
                                              $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);
                                               
                                              ?>
                                            Сообщение отредактировано: Rom@nych -
                                              Цитата Rom@nych @
                                              Хм. Так, должно работать
                                              ExpandedWrap disabled
                                                <?
                                                 
                                                $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);
                                                 
                                                ?>

                                              Не работает :( :'( :wacko:

                                              p.s. Если всё нормально, то скрипт view.php генерирует файл fl.txt с текущим временем сервера. Проверить работу скрипта можно запросом типа: fpay.ru/br/view.php?user=bur80&email=bur@mail.ru. Но этого же не происходит. :(
                                              Сообщение отредактировано: bur80 -
                                                а у тебя точно есть права на создания и редактирования этого файла?
                                                  Цитата Rom@nych @
                                                  а у тебя точно есть права на создания и редактирования этого файла?

                                                  Естественно, я же написал выше как это можно проверить, то есть проверить работу скрипта генерирующего файл.
                                                    Давай так:
                                                    ExpandedWrap disabled
                                                      <?
                                                       
                                                      $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);
                                                       
                                                      ?>

                                                    Что выдаст на экран?
                                                    Сообщение отредактировано: Rom@nych -
                                                      Давай так:
                                                      Может надо ещё дописать длину так как она вроде 100% необходима.
                                                      ExpandedWrap disabled
                                                        <?
                                                         
                                                        $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**

                                                      ExpandedWrap disabled
                                                        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 и ещё до тучи всего.
                                                      Сообщение отредактировано: Vilia -
                                                        Читаем вдумчиво RFC касательно HTTP протокола(метод POST) либо используем расширение cURL (http://www.php.net/manual/en/ref.curl.php)
                                                          Цитата Rom@nych @
                                                          Давай так:
                                                          ExpandedWrap disabled
                                                            <?
                                                             
                                                            $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

                                                          :unsure:

                                                          Добавлено
                                                          Vilia, не то. :no:

                                                          -юсртыхэю
                                                          Цитата Anarki @
                                                          Читаем вдумчиво RFC касательно HTTP протокола(метод POST) либо используем расширение cURL (http://www.php.net/manual/en/ref.curl.php)

                                                          Всё это, конечно, хорошо. Можно понятный примерчик касательно моего вопроса попросить ? :huh:
                                                            bur80
                                                            Написал в личку, ибо не хочу, чтобы скрипт тут засветился, а потом его нашли и использовали для спама.
                                                              Спамеры давно прочитали и усвоили man, и используют вовсю curl(1). А то!
                                                                ясно
                                                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                0 пользователей:


                                                                Рейтинг@Mail.ru
                                                                [ Script execution time: 0,0716 ]   [ 15 queries used ]   [ Generated: 3.01.25, 00:27 GMT ]