2009-09-04 4 views
1

мне нужно выполнить следующие действия и нуждается в помощи с № 2 нижеasp.net проблема формы представления

  1. Моего сайта имеет страницу с формой и должно быть записаны в базу данных на моем сайте поданных данные форм ,
  2. После того, как он будет записан в базу данных, те же данные, представленные в форме, должны быть отправлены на страницу, которая обрабатывает ее на другом сайте, так что, если представление формы поступает со страницы на этом другом сайте. Страница, обрабатывающая ее на другом сайте, представляет собой php-страницу.
+0

У вас есть контроль над PHP на другом сайте # 2? – cdmckay

ответ

1

Идеальное решение проблемы заключается в том, что вы создаете веб-службу на сайте php, а ваш код asp.net вызывает веб-службу. http://en.wikipedia.org/wiki/Web_service

Создание веб-сервиса в PHP: http://www.xml.com/pub/a/ws/2004/03/24/phpws.html

Вызов веб-службы в ASP.Net: http://www.codeproject.com/KB/webservices/WebServiceConsumer.aspx

В качестве альтернативы вы можете создать запрос HTTP из вашего ASP.NET для сайта PHP проводки все формы на сайт php.

Вот пример: http://www.netomatix.com/httppostdata.aspx

NB: Вы почти гарантированно столкнуться с проблемами со вторым подходом в средне- и долгосрочной перспективе, я не рекомендую его, если вы не имеете контроль над php-сайт.

1

Это немного неясно, но я предполагаю, что вы пытаетесь сделать «сообщение формы» на другой .php-странице после того, как ваши данные будут записаны в базу данных.

Вы можете больше информации от this wonderful Scott Hanselman article, но вот резюме:

public static string HttpPost(string URI, string Parameters) 
{ 
    System.Net.WebRequest req = System.Net.WebRequest.Create(URI); 
    req.Proxy = new System.Net.WebProxy(ProxyString, true); 
    //Add these, as we're doing a POST 
    req.ContentType = "application/x-www-form-urlencoded"; 
    req.Method = "POST"; 
    //We need to count how many bytes we're sending. Post'ed Faked Forms should be name=value& 
    byte [] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters); 
    req.ContentLength = bytes.Length; 
    System.IO.Stream os = req.GetRequestStream(); 
    os.Write (bytes, 0, bytes.Length); //Push it out there 
    os.Close(); 
    System.Net.WebResponse resp = req.GetResponse(); 
    if (resp== null) return null; 
    System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); 
    return sr.ReadToEnd().Trim(); 
}