فرمان ارسال رشته POST به يه فايل php

commiran

Member
سلام.
توي php فرماني هست كه يه سري رشته رو بديم و بعد اونا رو ارسال كنه به يك آدرس. خروجي اون رو هم بده.
مثل كاري كه Ajax انجام ميده. اگر ممكنه منو راهنميي كنيد.

ممنون:)
 

I.NoBody

Active Member
اگه مستقيماً مي خواي با PHP كار كني، CURL رو مطالعه كن.
البته مي توني يه فرم با inputهاي hidden بسازي و همه مقادير رو توش بذاري و بعدش اون فرم رو submit كني. اونوقت خروجي گرفتنت يكم سخت ميشه.
 

commiran

Member
نه ببنيد. مثلا يه صفحه هستش غير از سايت خودمون هست كه با فرستادن دو پارامتر POST مثلا txtNum و txtText يه SMS ميفرسته. حالا ما ميخواهيم كسي نفهمه كه ما به اين سايت دوتا پارامتر POST كرديم و علاوه بر اون خروجي رو هم بگيريم. اگه نگيريم هم اشكالي نداره.

راهي هست؟
 

jalilvand

Member
سلام

سلام
HTML:
<script type="text/javascript" language="javascript">
   var http_request = false;
   function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('myspan').innerHTML = result;  // result natije'eeye ke oon safhe dorost mikone. mitooni nazarish
			// myspan ham id ghesmaty mesle td ya tr ya div ya harchi ke mikhay nataej toosh neshoon dade beshe          
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
   
   function get(obj) {
      var poststr = "domain=" + encodeURI( document.getElementById("txtNum").value ) +
					"&org=" + encodeURI( document.getElementById("txtText").value );
      makePOSTRequest('http://salam.com/send.php', poststr); // addrese oon jaee ke mikhay behesh befresty
   }
</script>


<div id=myspan></div>
 

I.NoBody

Active Member
ميشه اين كارو كرد.
همونطور كه گفتم CURL رو مطالعه كن.
من قبلاً بارها اين كارو كردم.
الآن 2 ساله كه ديگه اين كارو نكردم و يادم نمياد.
ولي توي manual مربوط به PHP مي توني CURL رو مطالعه كني، و متغير ها رو بفرستي به اون آدرس مورد نظر و خروجي رو به صورت يه فايل بخون.
 

I.NoBody

Active Member
عزيزم من همه كدهاي قديميم، توي يه هارد بود كه سوخت و سي دي بكاپم هم گم شد.(آخر بدشانسي) وگرنه برات مي داشتمش.
راهنمايي:
فرض كن به جاي متد POST ميخواي از متد GET استفاده كني.
فرض كن صفحه مربوطه هم اسمش هست: http://www.oxygenhost.net
اين صفحه يه متغير GET ميگيره به نام lang
شما با اسن دستور، اون صفحه رو ميخوني :
کد:
$fp=fopen('http://www.oxygenhost.net/?lang=fa','r');
و بقيه اش هم كه كار با فايل هست.

حالا وقتي مي خواي از متد POST استفاده كني، ديگه نمي توني متغيرها رو توي آدرس فايل set كني.
بايد با استفاده از دستورات CURL اين متغيرها رو ست كني و آدرس فايل مربوطه رو مثل همون مثال فوق بدي.
 

جدیدترین ارسال ها

بالا