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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2011, 23:27   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию как из delphi задать выполнение php-скрипта на сайте?

Собственно вопрос, есть страница http://www.mysite/file.php

необходимо программно из дельфи выполнить этот php-файл. (как-бы открыть эту страницу фактически не открывая). Просто необходимо получить результат выполнения этой страницы.

В принципе, для выполнения можно банально загрузить в TWebBrowser, однако необходимо, чтобы этот процесс происходил скрыто (в фоновом режиме).

Есть ли какие-то соображения?

Последний раз редактировалось Dux; 28.03.2011 в 00:33.
Dux вне форума Ответить с цитированием
Старый 28.03.2011, 06:17   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

выполнить где, на сервере или на клиенте?
Если на сервере, то посылаете HTTP GET запрос, и сервер сам всё выполнит и вернёт результат.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 28.03.2011, 08:52   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
В принципе, для выполнения можно банально загрузить в TWebBrowser, однако необходимо, чтобы этот процесс происходил скрыто (в фоновом режиме).
Создаёш форму со свойством HIde, кидаеш Idhttp и прописыва от ситлуации Idhttp1.get или Idhttp.post
bulldog5293 вне форума Ответить с цитированием
Старый 28.03.2011, 10:44   #4
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
выполнить где, на сервере или на клиенте?
Если на сервере, то посылаете HTTP GET запрос, и сервер сам всё выполнит и вернёт результат.
На сервере. Если не затруднит, можно примерчик HTTP GET запроса?
Dux вне форума Ответить с цитированием
Старый 28.03.2011, 12:44   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

ну вот простейший код, который посылает запрос и ждёт ответа. Ответ заносится в memo. Ожидание заканчивается по закрытию сокета или если нет новых данных в течение 10 секунд.

Код:
uses
  ScktComp;

procedure TForm1.Button1Click(Sender: TObject);
var
  myClient: TClientSocket;
  req, resp: string;
  tc: Integer;
begin
  Memo1.Lines.Clear();
  //
  with (TClientSocket.Create(nil)) do try
    //
    ClientType := ctBlocking;
    host := 'php.net';
    port := 80;
    //
    Open();
    //
    req := 'GET /docs.php HTTP/1.0'#13#10 +
           'Connection: close'#13#10 +
           #13#10;
    //
    Socket.SendText(req);
    //
    tc := GetTickCount();
    while (Socket.Connected) do begin
      //
      Application.ProcessMessages();
      //
      if (0 < Socket.ReceiveLength) then begin
        //
        resp := Socket.ReceiveText();
        if ('' <> resp) then begin
          //
          tc := GetTickCount();
          Memo1.Text := Memo1.Text + resp;
        end  
        else
          break;
      end
      else begin
        //
        Sleep(10);
        if (GetTickCount() - tc > 10000) then
          break;
      end;
    end;
    //
  finally
    Free();
  end;
end;
Код достаточно примитивный, просто показывает принцип общения с ХТТП сервером. В реальном проекте сокет может работать в ctNonBlocking режиме, с использованием потоков, событий и т.д.

Или можно использовать готовый IdHHTP компонент, как подсказали выше.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двойное выполнение скрипта AJAX Mortimoro JavaScript, Ajax 3 18.01.2011 00:18
Выполнение скрипта после загрузки страницы? Abuhamed JavaScript, Ajax 7 23.12.2010 06:51
Автоматическое выполнение скрипта maksikus PHP 16 04.09.2010 06:13
Выполнение скрипта по расписанию Sparky PHP 7 30.10.2009 16:33
Как вывести результат работы php скрипта eldar Работа с сетью в Delphi 21 08.08.2008 14:16