<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog @ SIB Visions &#187; php</title>
	<atom:link href="http://blog.sibvisions.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.sibvisions.com</link>
	<description>Blog @ SIB Visions</description>
	<lastBuildDate>Fri, 10 Apr 2026 10:13:07 +0000</lastBuildDate>
		<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Joomla/RSForms post request to Java Servlet</title>
		<link>https://blog.sibvisions.com/2012/11/04/joomlarsforms-post-request-to-java-servlet/</link>
		<comments>https://blog.sibvisions.com/2012/11/04/joomlarsforms-post-request-to-java-servlet/#comments</comments>
		<pubDate>Sun, 04 Nov 2012 20:03:23 +0000</pubDate>
		<dc:creator>mhandsteiner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.sibvisions.com/?p=1678</guid>
		<description><![CDATA[Maybe this information is useful for other Joomla/RSForms users or for developers who want send a post request from php to anywhere  
I had the following configuration in my dev environment:
Joomla together with RSForms (free version)
I love to use this combination because it is easy and just works. With RSForms I created some forms [...]]]></description>
			<content:encoded><![CDATA[<p>Maybe this information is useful for other Joomla/RSForms users or for developers who want send a post request from php to anywhere <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I had the following configuration in my dev environment:</p>
<p>Joomla together with RSForms (free version)</p>
<p>I love to use this combination because it is easy and just works. With RSForms I created some forms like User registration. This tool allows you to send emails to the registered user and it stores the registration automatically in the database. It's really useful.</p>
<p>In my case, the user registration was not real-time because I got an email and had to create a user account manually. This is web 0.1.</p>
<p>Well, I decided to push the whole process to web 2012. My plan was to create a simple Java servlet that creates my user accounts. This servlet should be called from the RSForms component, with a simple POST request. I don't like SOAP overhead, so it was no option for me. Of course, my servlet is a service <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>BTW, I wouldn't change the RSForms component because it should work as it was. The component has a nice feature that allows you to configure custom scripts for loading and processing. </p>
<p>I started with the configuration and added following process script:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$url</span> <span class="sy0">=</span> <span class="st_h">'https://tomcatvm/services/User'</span><span class="sy0">;</span><br />
&nbsp;<br />
<span class="re0">$ch</span> <span class="sy0">=</span> <a href="http://www.php.net/curl_init"><span class="kw3">curl_init</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/curl_setopt"><span class="kw3">curl_setopt</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="sy0">,</span> CURLOPT_URL<span class="sy0">,</span> <span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/curl_setopt"><span class="kw3">curl_setopt</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> 1<span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/curl_setopt"><span class="kw3">curl_setopt</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="sy0">,</span> CURLOPT_POST<span class="sy0">,</span> 1<span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/curl_setopt"><span class="kw3">curl_setopt</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="sy0">,</span> CURLOPT_CONNECTTIMEOUT<span class="sy0">,</span> 5<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="co1">//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);</span><br />
<span class="co1">//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);</span></p>
<p><span class="re0">$data</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st_h">'language=en'</span><span class="sy0">;</span></p>
<p><span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'form'</span><span class="br0">&#93;</span> <span class="kw1">as</span> <span class="re0">$post</span> <span class="sy0">=&gt;</span> <span class="re0">$value</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/is_array"><span class="kw3">is_array</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$value</span> <span class="kw1">as</span> <span class="re0">$post2</span> <span class="sy0">=&gt;</span> <span class="re0">$value2</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$post</span><span class="sy0">.</span><span class="st_h">'[]='</span><span class="sy0">.</span><a href="http://www.php.net/urlencode"><span class="kw3">urlencode</span></a><span class="br0">&#40;</span><span class="re0">$value2</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$data</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$post</span><span class="sy0">.</span><span class="st_h">'='</span><span class="sy0">.</span><a href="http://www.php.net/urlencode"><span class="kw3">urlencode</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><a href="http://www.php.net/curl_setopt"><span class="kw3">curl_setopt</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="sy0">,</span> CURLOPT_POSTFIELDS<span class="sy0">,</span> <a href="http://www.php.net/implode"><span class="kw3">implode</span></a><span class="br0">&#40;</span><span class="st_h">'&amp;'</span><span class="sy0">,</span> <span class="re0">$data</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp;<br />
<span class="re0">$data</span> <span class="sy0">=</span> <a href="http://www.php.net/curl_exec"><span class="kw3">curl_exec</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/curl_errno"><span class="kw3">curl_errno</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; JUtility<span class="sy0">::</span><span class="me2">sendMail</span><span class="br0">&#40;</span><span class="re0">$form</span><span class="sy0">-&gt;</span><span class="me1">emailfrom</span><span class="sy0">,</span><span class="re0">$form</span><span class="sy0">-&gt;</span><span class="me1">emailfromname</span><span class="sy0">,</span><br />
&nbsp; &nbsp; <span class="st_h">'support@sibvisions.com'</span><span class="sy0">,</span><span class="st_h">'Service error'</span><span class="sy0">,</span><br />
&nbsp; &nbsp; <span class="st_h">'Service call failed! ('</span><span class="sy0">.</span><a href="http://www.php.net/curl_error"><span class="kw3">curl_error</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">')'</span><span class="sy0">,</span><span class="re0">$form</span><span class="sy0">-&gt;</span><span class="me1">emailmode</span><span class="sy0">,</span><span class="kw4">null</span><span class="sy0">,</span><span class="kw4">null</span><span class="sy0">,</span><span class="kw4">null</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><a href="http://www.php.net/curl_close"><span class="kw3">curl_close</span></a><span class="br0">&#40;</span><span class="re0">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>The code is written in php, but it is not rocket science. It simply sends a post request to the configured URL. The important thing is that all form parameters were used as parameters for the request, because the service needs the entered values!</p>
<p>That's all for Joomla/RSForms. During development I thought that the process script will be executed only once per form but that was not true. It was executed after loading and everytime when the user submits the form. If the forms had validation errors, the process script was executed more than once (with and without valid inputs).</p>
<p>I changed the php script a little bit and moved the process execution after the validation. It depends on your RSForms version, but in my case the original script (<joomla>/plugins/content/mosforme.php) looks like: </p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="sy0">...</span><br />
<a href="http://www.php.net/eval"><span class="kw3">eval</span></a><span class="br0">&#40;</span><span class="re0">$form</span><span class="sy0">-&gt;</span><span class="me1">script_process</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$processform</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="sy0">...</span></div>
</div>
<p>and the new script:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$processform</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="sy0">...</span><br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st_h">'formmsg'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="sy0">...</span><br />
&nbsp; &nbsp; <span class="co1">// store it in the db</span><br />
&nbsp; &nbsp; <span class="sy0">...</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/eval"><span class="kw3">eval</span></a><span class="br0">&#40;</span><span class="re0">$form</span><span class="sy0">-&gt;</span><span class="me1">script_process</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="sy0">....</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>But it is also possible to use the original script without modification.</p>
<p>The other side was the servlet... It's to simple to show you the whole source, only a snippet:</p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;">@Override<br />
<span class="kw1">public</span> <span class="kw4">void</span> doPost<span class="br0">&#40;</span>HttpServletRequest pRequest, HttpServletResponse pResponse<span class="br0">&#41;</span> <span class="kw1">throws</span> ServletException<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw3">String</span> sParamFirstName<span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw3">String</span> sParamLastName<span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw3">String</span> sParamEmail<span class="sy0">;</span></p>
<p>&nbsp; &nbsp; <span class="kw1">try</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sParamFirstName <span class="sy0">=</span> getParameter<span class="br0">&#40;</span>pRequest, <span class="st0">&quot;firstname&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sParamLastName &nbsp;<span class="sy0">=</span> getParameter<span class="br0">&#40;</span>pRequest, <span class="st0">&quot;lastname&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sParamEmail &nbsp; &nbsp; <span class="sy0">=</span> getParameter<span class="br0">&#40;</span>pRequest, <span class="st0">&quot;email&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sParamLanguage &nbsp;<span class="sy0">=</span> getParameter<span class="br0">&#40;</span>pRequest, <span class="st0">&quot;language&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; ...</div>
</div>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2012/11/04/joomlarsforms-post-request-to-java-servlet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
