<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Spam+Burger</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Spam+Burger"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Spam_Burger"/>
	<updated>2026-07-28T12:13:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=HTTP_Post_request_to_a_PHP_server&amp;diff=30994</id>
		<title>HTTP Post request to a PHP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=HTTP_Post_request_to_a_PHP_server&amp;diff=30994"/>
		<updated>2007-09-09T22:08:41Z</updated>

		<summary type="html">&lt;p&gt;Spam Burger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
 integer SECRET_NUMBER=123456789;&lt;br /&gt;
 &lt;br /&gt;
 xrequest(string url, list l)&lt;br /&gt;
 {&lt;br /&gt;
     integer i;&lt;br /&gt;
     integer len=llGetListLength(l) &amp;amp; 0xFFFE; // makes the list count even&lt;br /&gt;
     string body;&lt;br /&gt;
 &lt;br /&gt;
    for (i=0;i&amp;lt;len;i+=2)&lt;br /&gt;
    {&lt;br /&gt;
         string varname=llList2String(l,i);&lt;br /&gt;
         string varvalue=llList2String(l,i + 1);&lt;br /&gt;
         if (i&amp;gt;0) body+=&amp;quot;&amp;amp;&amp;quot;;&lt;br /&gt;
         body+=llEscapeURL(varname)+&amp;quot;=&amp;quot;+llEscapeURL(varvalue);&lt;br /&gt;
     }&lt;br /&gt;
     string hash=llMD5String(body,SECRET_NUMBER);&lt;br /&gt;
     http_request_id = llHTTPRequest(url+&amp;quot;?hash=&amp;quot;+hash,[HTTP_METHOD,&amp;quot;POST&amp;quot;,HTTP_MIMETYPE,&amp;quot;application/x-www-form-urlencoded&amp;quot;],body);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
On the server side here is the PHP function which will allow your server to check the securty hash: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php&lt;br /&gt;
  // this function tweak slightly urlencode to make it behave exactly like llEscapeURL in Second Life.&lt;br /&gt;
  function llEscapeURL($s)&lt;br /&gt;
  {&lt;br /&gt;
  	return str_replace(&lt;br /&gt;
  		array(&amp;quot;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;.&amp;quot;,&amp;quot;_&amp;quot;),&lt;br /&gt;
  		array(&amp;quot;%20&amp;quot;,&amp;quot;%2D&amp;quot;,&amp;quot;%2E&amp;quot;,&amp;quot;%5F&amp;quot;),&lt;br /&gt;
  		urlencode($s));&lt;br /&gt;
  }   &lt;br /&gt;
  &lt;br /&gt;
  // this my main SL page XML-RPC page&lt;br /&gt;
  function checkHash()&lt;br /&gt;
  {&lt;br /&gt;
  	global $body;&lt;br /&gt;
  	$hash=$_GET[&amp;quot;hash&amp;quot;];&lt;br /&gt;
  	$body=&amp;quot;&amp;quot;;&lt;br /&gt;
  	$cpt=0;&lt;br /&gt;
  	$SECRET_NUMBER=123456789;&lt;br /&gt;
  	foreach ($_POST as $name =&amp;gt; $value) {&lt;br /&gt;
  		if ($cpt++&amp;gt;0) $body.=&amp;quot;&amp;amp;&amp;quot;;&lt;br /&gt;
  		$body.=llEscapeURL($name).&amp;quot;=&amp;quot;.llEscapeURL($value);&lt;br /&gt;
  	}&lt;br /&gt;
  	$calcHash=md5($body.&#039;:&#039;.$SECRET_NUMBER);&lt;br /&gt;
  	if ($hash!=$calcHash) &lt;br /&gt;
  	{&lt;br /&gt;
  		sleep(2); // slow down the requests&lt;br /&gt;
  		echo &amp;quot;result=FAIL\nMSG=Invalid hash&amp;quot;; + $body=&amp;quot;&amp;quot;; &lt;br /&gt;
  		die;&lt;br /&gt;
  	}&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  checkHash();&lt;br /&gt;
  // You can use the parameters here by simply using $_POST[&amp;quot;parameter_name&amp;quot;] &lt;br /&gt;
  echo &amp;quot;OK&amp;quot;;&lt;br /&gt;
  ?&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spam Burger</name></author>
	</entry>
</feed>