Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 13:50   #1
Graer0k
Новичок
Джуниор
 
Регистрация: 13.01.2011
Сообщений: 4
По умолчанию web в консоли? реально?

реально ли сделать следущее:
Есть веб сервер apache2+php.
на нем лежит index.php некоторым кодом.
Реально сделать чтобы Консольное приложение подключалось как браузер?
Graer0k вне форума Ответить с цитированием
Старый 13.01.2011, 14:08   #2
Ecosasha
Форумчанин
 
Регистрация: 22.05.2009
Сообщений: 248
По умолчанию

Консольное приложение - это же как я понял просто приложение без визуальной формы.
А что конктретно хотите делать? Зачем это.

Если, например, на дельфи делать, то как вариант, сделать динамическое создание компонентов Indy и подключиться к странице и скачать ее, и потом уже делать что хочешь. Можно и другими средствами, все зависит от целей и задач.
Ecosasha вне форума Ответить с цитированием
Старый 13.01.2011, 14:19   #3
Graer0k
Новичок
Джуниор
 
Регистрация: 13.01.2011
Сообщений: 4
По умолчанию

Мне надо чтобы сервер выполнил скрипт php. К примеру он узнает с какова я ip зашел на сайт, он его в бд записывает. А мненадо чтобы не через браузер а через консоль
Graer0k вне форума Ответить с цитированием
Старый 13.01.2011, 14:23   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

на сокетах ...пример
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.01.2011, 14:24   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Мне надо чтобы сервер выполнил скрипт php. К примеру он узнает с какова я ip зашел на сайт, он его в бд записывает. А мненадо чтобы не через браузер а через консоль
А вы что, думаете, что он не запишет IP, если вы зайдете с консоли? IP - он общий для компа.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.01.2011, 14:32   #6
Graer0k
Новичок
Джуниор
 
Регистрация: 13.01.2011
Сообщений: 4
По умолчанию

raxp
Спс!


Да не суть запишет или нет. Мне надо чтобы он зашел. С консоли)
Graer0k вне форума Ответить с цитированием
Старый 13.01.2011, 14:47   #7
Ecosasha
Форумчанин
 
Регистрация: 22.05.2009
Сообщений: 248
По умолчанию

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

Вот, например, если мы решили делать это с помощью Indy, то код будет примерно такой:
Код:
uses idHttp;
var
  idhttp1: TidHttp;
  Str: TStringList;
  fs: TFileStream;
begin
  {создаем компонент}
        idhttp1:=TidHttp.Create(self);
   {позволяем кукиес}
     idHttp1.AllowCookies:=true;
   {позволяем автопереход на другую страницу, если такой есть на странице}
        idHttp1.HandleRedirects:=true;
   {указываем порт}
        idHttp1.Port:=80;
        {здесь ставим прокси, если надо}
        IdHTTP1.ProxyParams.ProxyServer:='127.29.30.01';
        IdHTTP1.ProxyParams.ProxyPort:=8080;
        IdHTTP1.ProxyParams.ProxyUsername:='';
        IdHTTP1.ProxyParams.ProxyPassword:='';

        {создвем переменную для параметров}
        Str:=TStringList.Create;
        Str.Clear;

        {устанавливаем header заголовок также там refer - с какой страницы ссылка на следующую страницу}
        idHttp1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)';
        idHttp1.Request.AcceptLanguage := 'ru';
        idHttp1.Response.KeepAlive := true;


        idHttp1.Request.Referer:='mysite.ru'; //
        {текущий сайт}



        {код сохранения файла со страницы}
        try
          fs:=tfilestream.create('file.png',fmcreate);
          idhttp1.get('http://site.ru',fs);
        finally
          fs.free;
        end;

        {заполняем параметры}
        Str.Add('param1='+'MYLogin'); //указываем параметры для запроса
        Str.Add('param2='+'MYParol');

         {отображаем результат в мемо}
        MemoComments.Text:=IdHTTP1.Post('Здесь указываем страницу с запросом', Str);

       idHttp1.Free;
       Str.Free;
end;
В целом, примерно, так, более подробно лучше почитать в разделе "Работа с сетью в Delphi" на нашем форуме, также там и найдете и литературу.
Но, если разбираетесь, то в целом вышеуказанного кода думаю при должной доработке вполне достаточно.

Последний раз редактировалось Ecosasha; 13.01.2011 в 15:03. Причина: не забываем освобождать созданные динамически компоненты, кусок кода выдрал из одного проекта, поэтому что-то заменил коммен.
Ecosasha вне форума Ответить с цитированием
Старый 13.01.2011, 15:24   #8
Graer0k
Новичок
Джуниор
 
Регистрация: 13.01.2011
Сообщений: 4
По умолчанию

Всё что мне надо было:
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  Windows,
  MMSystem,idHttp;

var
t,mmTimer: integer;
    idhttp1: TidHttp;

//обработчик таймера
procedure mmTimerProc(TimerID,Msg: Uint; dwUser,dw1,dw2: DWORD); pascal;
begin
  idhttp1.Get('http://xxx');

end;

begin
  idhttp1:=TidHttp.Create(nil);
 idhttp1.HandleRedirects:=true;
 idhttp1.Get('http://xxx');

  t:=30000; //интервал в мс
  //включить таймер
  mmTimer:=TimeSetEvent(t,0,@mmTimerProc,0,TIME_PERIODIC);
  readln;
end.
Graer0k вне форума Ответить с цитированием
Старый 13.01.2011, 15:32   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...чем не понравился пример на API?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.01.2011, 15:53   #10
Ecosasha
Форумчанин
 
Регистрация: 22.05.2009
Сообщений: 248
По умолчанию

Вот интересно, а на API при работе с сокетами переадресация нормально проходит?
То есть, то за что в Indy отвечает => idhttp1.HandleRedirects:=true; ?
Ecosasha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуются WEB-программисты и WEB-дизайнеры. terra21 Фриланс 2 24.06.2008 04:10