<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Integrated user creation</title>
        <description> I have been developing a system where the visitor is required to log on to use the functionality.
In this system I am using the email address as the user name.
I wanted to add a forum and while creating a user for my system it would make sense to create a user in phorum using the same credentials.
After help from Maurice who pointed me in the direction of a post by KWood I achieved this.
Now because I wanted to do this creation silently and come back to my own code I made a few tweaks.
Here they are if anyone can make use of them.
In my signup routine I have the following code
Language: PHP    if &amp;#40; &amp;#40;$userid = $user-&amp;gt;get_user_id&amp;#40; $_POST&amp;#91;&#039;;email1&#039;;&amp;#93; &amp;#41;&amp;#41; == USER_ERROR_USERNOTEXIST &amp;#41;
    &amp;#123; $sysparms = new run_class&amp;#40;&amp;#41;;
      $user_details&amp;#91;USER_FIRST_NAME&amp;#93; = $_POST&amp;#91;&#039;;fname&#039;;&amp;#93;;  
      $user_details&amp;#91;USER_LAST_NAME&amp;#93; = $_POST&amp;#91;&#039;;lname&#039;;&amp;#93;;  
      $user_details&amp;#91;USER_USERNAME&amp;#93; = $_POST&amp;#91;&#039;;email1&#039;;&amp;#93;;  
      $user_details&amp;#91;USER_PASSWORD&amp;#93; = $_POST&amp;#91;&#039;;pw1&#039;;&amp;#93;;  
      $user_details&amp;#91;USER_AUTHORITY&amp;#93; = USER_NOT_PAID;  
      $user_details&amp;#91;USER_DB_PREFIX&amp;#93; = &amp;#40;$sysparms-&amp;gt;increment_user_prefix&amp;#40;&amp;#41; . &#039;;_&#039;;&amp;#41;;
      $user_details&amp;#91;USER_LANGUAGE&amp;#93; = $_POST&amp;#91;&#039;;language&#039;;&amp;#93;;  
      $user_details&amp;#91;USER_LAST_RUNNO&amp;#93; = USER_DEFAULT_RUN_NUMBER;  
      $user_details&amp;#91;USER_LOGON_STATUS&amp;#93; = USER_LOGGED_OFF;
      $user_details&amp;#91;USER_CREATE_DATE&amp;#93; = strftime&amp;#40; &amp;quot;%Y-%m-%d&amp;quot;, mktime&amp;#40; 0, 0, 0, date&amp;#40; &amp;quot;m&amp;quot; &amp;#41;, date&amp;#40; &amp;quot;d&amp;quot; &amp;#41;, date&amp;#40; &amp;quot;Y&amp;quot; &amp;#41; &amp;#41; &amp;#41;;  
      $user_details&amp;#91;USER_RENEWAL_DATE&amp;#93; = strftime&amp;#40; &amp;quot;%Y-%m-%d&amp;quot;, mktime&amp;#40; 0, 0, 0, &amp;#40;date&amp;#40; &amp;quot;m&amp;quot; &amp;#41;+$licence_period&amp;#41;, date&amp;#40; &amp;quot;d&amp;quot; &amp;#41;, date&amp;#40; &amp;quot;Y&amp;quot; &amp;#41; &amp;#41; &amp;#41;;  
      $user_details&amp;#91;USER_LAST_LOGON&amp;#93; = strftime&amp;#40; &amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;, mktime&amp;#40;&amp;#41; &amp;#41;;  
      $new_user_id = $user-&amp;gt;create_new_user&amp;#40; $user_details &amp;#41;;
&amp;nbsp;
      mkdir&amp;#40; &amp;quot;userfiles/&amp;quot; . $user-&amp;gt;get_user_db_prefix&amp;#40; $new_user_id &amp;#41;, 0755 &amp;#41;;

Now I know what language the user is working on at this stage so I might as well pass this across to phorum so I can put language support in the forum so after my code I placed the following

Language: PHP      foreach&amp;#40; $language_code as $key =&amp;gt; $value &amp;#41;
      &amp;#123; if &amp;#40; $key == $user_details&amp;#91;USER_LANGUAGE&amp;#93; &amp;#41;
        &amp;#123; $phorum_language_file = $value;
          break; 
        &amp;#125;
      &amp;#125;
&amp;nbsp;
      $raw_query = sprintf&amp;#40; &amp;quot;%d][%s][%s %s][%s][%s][%s][%d&amp;quot;, $new_user_id, $user_details&amp;#91;USER_USERNAME&amp;#93;, $user_details&amp;#91;USER_FIRST_NAME&amp;#93;,
        $user_details&amp;#91;USER_LAST_NAME&amp;#93;, $user_details&amp;#91;USER_PASSWORD&amp;#93;, $user_details&amp;#91;USER_USERNAME&amp;#93;, $phorum_language_file, $licence_period &amp;#41;;
      $encoded_query = base64_encode&amp;#40;base64_encode&amp;#40;$raw_query&amp;#41;&amp;#41;;
      header&amp;#40; &amp;quot;Location: phorum/cuser.php?idh=&amp;quot; . $encoded_query &amp;#41;;

That gets me onto the page I have created to create the user.  Note I am passing user credentials across to this routine in an encoded query string.
Once in this routine I check and decode and explode the query string.  I now pick up the exploded values and feed them into the api call.

 Language: PHP  if &amp;#40; !isset&amp;#40;$_REQUEST&amp;#91;&#039;;idh&#039;;&amp;#93;&amp;#41; || empty&amp;#40;$_REQUEST&amp;#91;&#039;;idh&#039;;&amp;#93;&amp;#41; &amp;#41;
  &amp;#123; exit&amp;#40;&amp;#41;; 
  &amp;#125;
&amp;nbsp;
  $idh = $_REQUEST&amp;#91;&#039;;idh&#039;;&amp;#93;;
  $raw_details = base64_decode&amp;#40; base64_decode&amp;#40; $idh &amp;#41; &amp;#41;;
  $user_details = explode&amp;#40; &amp;quot;][&amp;quot;, $raw_details &amp;#41;; 
&amp;nbsp;
  define&amp;#40; &#039;;phorum_page&#039;;, &#039;;create_user&#039;; &amp;#41;;
  global $PHORUM;
  include_once&amp;#40; &#039;;common.php&#039;; &amp;#41;;
&amp;nbsp;
  $current_working_directory = getcwd&amp;#40;&amp;#41;;
&amp;nbsp;
  chdir&amp;#40; &amp;quot;../phorum&amp;quot; &amp;#41;;
&amp;nbsp;
  phorum_api_user_save&amp;#40; array&amp;#40;
    &amp;quot;user_id&amp;quot; =&amp;gt; $user_details&amp;#91;PHORUM_USER_ID&amp;#93;, // or the user id from your main user database
    &amp;quot;username&amp;quot; =&amp;gt; $user_details&amp;#91;PHORUM_USER_NAME&amp;#93;,
    &amp;quot;real_name&amp;quot; =&amp;gt; $user_details&amp;#91;PHORUM_REAL_NAME&amp;#93;,
    &amp;quot;display_name&amp;quot; =&amp;gt; $user_details&amp;#91;PHORUM_REAL_NAME&amp;#93;,
    &amp;quot;password&amp;quot; =&amp;gt; $user_details&amp;#91;PHORUM_PASSWORD&amp;#93;,
    &amp;quot;password_temp&amp;quot; =&amp;gt; $user_details&amp;#91;PHORUM_PASSWORD&amp;#93;,
    &amp;quot;active&amp;quot; =&amp;gt; PHORUM_USER_ACTIVE,
    &amp;quot;admin&amp;quot; =&amp;gt; FALSE,
    &amp;quot;hide_email&amp;quot;=&amp;gt; FALSE,
    &amp;quot;email&amp;quot; =&amp;gt; $user_details&amp;#91;PHORUM_EMAIL&amp;#93;,
    &amp;quot;user_language&amp;quot; =&amp;gt; $user_details&amp;#91;PHORUM_LANGUAGE&amp;#93;
  &amp;#41; &amp;#41;;
&amp;nbsp;
  chdir&amp;#40; $current_working_directory &amp;#41;;
  header&amp;#40; &amp;quot;Location: /signup.php?ur=&amp;quot; . $user_details&amp;#91;PHORUM_USER_ID&amp;#93; . &amp;quot;&amp;amp;lp=&amp;quot; . $user_details&amp;#91;PASSTHRU_LICENCE_PERIOD&amp;#93; &amp;#41;;

When I wrapped up the query string I included the user id from my own code to use as the phorum user ID - just seemed to make sense.
I also included in the string some data I need when I get control back in my own code.  This is passed back in the return header relocation as PASSTHRU_LICENCE_PERIOD.  On the return journey there is nothing sensitive in the so I did not encode it.

If anyone finds this code snippet useful then I am glad to have helped.

Many thanks to the guys at Phorum for making this such an easy transition.</description>
        <link>https://www.phorum.org/phorum5/read.php?14,153686,153686#msg-153686</link>
        <lastBuildDate>Mon, 18 May 2026 07:53:54 -0400</lastBuildDate>
        <generator>Phorum 5.2.22</generator>
        <item>
            <guid>https://www.phorum.org/phorum5/read.php?14,153686,153686#msg-153686</guid>
            <title>Integrated user creation</title>
            <link>https://www.phorum.org/phorum5/read.php?14,153686,153686#msg-153686</link>
            <description><![CDATA[ I have been developing a system where the visitor is required to log on to use the functionality.<br />
In this system I am using the email address as the user name.<br />
I wanted to add a forum and while creating a user for my system it would make sense to create a user in phorum using the same credentials.<br />
After help from Maurice who pointed me in the direction of a post by KWood I achieved this.<br />
Now because I wanted to do this creation silently and come back to my own code I made a few tweaks.<br />
Here they are if anyone can make use of them.<br />
In my signup routine I have the following code<br />
<pre class="php bbcode_geshi"><div class="head">Language: PHP</div>    <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="br0">&#40;</span><span class="re0">$userid</span> <span class="sy0">=</span> <span class="re0">$user</span><span class="sy0">-&gt;</span><span class="me1">get_user_id</span><span class="br0">&#40;</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">';email1'</span><span class="sy0">;</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">==</span> USER_ERROR_USERNOTEXIST <span class="br0">&#41;</span>
    <span class="br0">&#123;</span> <span class="re0">$sysparms</span> <span class="sy0">=</span> <span class="kw2">new</span> run_class<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_FIRST_NAME<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">';fname'</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_LAST_NAME<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">';lname'</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_USERNAME<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">';email1'</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_PASSWORD<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">';pw1'</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_AUTHORITY<span class="br0">&#93;</span> <span class="sy0">=</span> USER_NOT_PAID<span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_DB_PREFIX<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re0">$sysparms</span><span class="sy0">-&gt;</span><span class="me1">increment_user_prefix</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">';_'</span><span class="sy0">;</span><span class="br0">&#41;</span><span class="sy0">;</span>
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_LANGUAGE<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">';language'</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_LAST_RUNNO<span class="br0">&#93;</span> <span class="sy0">=</span> USER_DEFAULT_RUN_NUMBER<span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_LOGON_STATUS<span class="br0">&#93;</span> <span class="sy0">=</span> USER_LOGGED_OFF<span class="sy0">;</span>
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_CREATE_DATE<span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/strftime"><span class="kw3">strftime</span></a><span class="br0">&#40;</span> <span class="st0">&quot;%Y-%m-<span class="es6">%d</span>&quot;</span><span class="sy0">,</span> <a href="http://www.php.net/mktime"><span class="kw3">mktime</span></a><span class="br0">&#40;</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <a href="http://www.php.net/date"><span class="kw3">date</span></a><span class="br0">&#40;</span> <span class="st0">&quot;m&quot;</span> <span class="br0">&#41;</span><span class="sy0">,</span> <a href="http://www.php.net/date"><span class="kw3">date</span></a><span class="br0">&#40;</span> <span class="st0">&quot;d&quot;</span> <span class="br0">&#41;</span><span class="sy0">,</span> <a href="http://www.php.net/date"><span class="kw3">date</span></a><span class="br0">&#40;</span> <span class="st0">&quot;Y&quot;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_RENEWAL_DATE<span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/strftime"><span class="kw3">strftime</span></a><span class="br0">&#40;</span> <span class="st0">&quot;%Y-%m-<span class="es6">%d</span>&quot;</span><span class="sy0">,</span> <a href="http://www.php.net/mktime"><span class="kw3">mktime</span></a><span class="br0">&#40;</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="br0">&#40;</span><a href="http://www.php.net/date"><span class="kw3">date</span></a><span class="br0">&#40;</span> <span class="st0">&quot;m&quot;</span> <span class="br0">&#41;</span><span class="sy0">+</span><span class="re0">$licence_period</span><span class="br0">&#41;</span><span class="sy0">,</span> <a href="http://www.php.net/date"><span class="kw3">date</span></a><span class="br0">&#40;</span> <span class="st0">&quot;d&quot;</span> <span class="br0">&#41;</span><span class="sy0">,</span> <a href="http://www.php.net/date"><span class="kw3">date</span></a><span class="br0">&#40;</span> <span class="st0">&quot;Y&quot;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>  
      <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_LAST_LOGON<span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/strftime"><span class="kw3">strftime</span></a><span class="br0">&#40;</span> <span class="st0">&quot;%Y-%m-<span class="es6">%d</span> %H:%M:%S&quot;</span><span class="sy0">,</span> <a href="http://www.php.net/mktime"><span class="kw3">mktime</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>  
      <span class="re0">$new_user_id</span> <span class="sy0">=</span> <span class="re0">$user</span><span class="sy0">-&gt;</span><span class="me1">create_new_user</span><span class="br0">&#40;</span> <span class="re0">$user_details</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
      <a href="http://www.php.net/mkdir"><span class="kw3">mkdir</span></a><span class="br0">&#40;</span> <span class="st0">&quot;userfiles/&quot;</span> <span class="sy0">.</span> <span class="re0">$user</span><span class="sy0">-&gt;</span><span class="me1">get_user_db_prefix</span><span class="br0">&#40;</span> <span class="re0">$new_user_id</span> <span class="br0">&#41;</span><span class="sy0">,</span> <span class="nu8">0755</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre>
<br />
Now I know what language the user is working on at this stage so I might as well pass this across to phorum so I can put language support in the forum so after my code I placed the following<br />
<br />
<pre class="php bbcode_geshi"><div class="head">Language: PHP</div>      <span class="kw1">foreach</span><span class="br0">&#40;</span> <span class="re0">$language_code</span> <span class="kw1">as</span> <span class="re0">$key</span> <span class="sy0">=&gt;</span> <span class="re0">$value</span> <span class="br0">&#41;</span>
      <span class="br0">&#123;</span> <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$key</span> <span class="sy0">==</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_LANGUAGE<span class="br0">&#93;</span> <span class="br0">&#41;</span>
        <span class="br0">&#123;</span> <span class="re0">$phorum_language_file</span> <span class="sy0">=</span> <span class="re0">$value</span><span class="sy0">;</span>
          <span class="kw1">break</span><span class="sy0">;</span> 
        <span class="br0">&#125;</span>
      <span class="br0">&#125;</span>
&nbsp;
      <span class="re0">$raw_query</span> <span class="sy0">=</span> <a href="http://www.php.net/sprintf"><span class="kw3">sprintf</span></a><span class="br0">&#40;</span> <span class="st0">&quot;<span class="es6">%d</span>][<span class="es6">%s</span>][<span class="es6">%s</span> <span class="es6">%s</span>][<span class="es6">%s</span>][<span class="es6">%s</span>][<span class="es6">%s</span>][<span class="es6">%d</span>&quot;</span><span class="sy0">,</span> <span class="re0">$new_user_id</span><span class="sy0">,</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_USERNAME<span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_FIRST_NAME<span class="br0">&#93;</span><span class="sy0">,</span>
        <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_LAST_NAME<span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_PASSWORD<span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>USER_USERNAME<span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$phorum_language_file</span><span class="sy0">,</span> <span class="re0">$licence_period</span> <span class="br0">&#41;</span><span class="sy0">;</span>
      <span class="re0">$encoded_query</span> <span class="sy0">=</span> <a href="http://www.php.net/base64_encode"><span class="kw3">base64_encode</span></a><span class="br0">&#40;</span><a href="http://www.php.net/base64_encode"><span class="kw3">base64_encode</span></a><span class="br0">&#40;</span><span class="re0">$raw_query</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
      <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span> <span class="st0">&quot;Location: phorum/cuser.php?idh=&quot;</span> <span class="sy0">.</span> <span class="re0">$encoded_query</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre>
<br />
That gets me onto the page I have created to create the user.  Note I am passing user credentials across to this routine in an encoded query string.<br />
Once in this routine I check and decode and explode the query string.  I now pick up the exploded values and feed them into the api call.<br />
<br />
 <pre class="php bbcode_geshi"><div class="head">Language: PHP</div>  <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="sy0">!</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st_h">';idh'</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="br0">&#41;</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">$_REQUEST</span><span class="br0">&#91;</span><span class="st_h">';idh'</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span>
  <span class="br0">&#123;</span> <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> 
  <span class="br0">&#125;</span>
&nbsp;
  <span class="re0">$idh</span> <span class="sy0">=</span> <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st_h">';idh'</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="sy0">;</span>
  <span class="re0">$raw_details</span> <span class="sy0">=</span> <a href="http://www.php.net/base64_decode"><span class="kw3">base64_decode</span></a><span class="br0">&#40;</span> <a href="http://www.php.net/base64_decode"><span class="kw3">base64_decode</span></a><span class="br0">&#40;</span> <span class="re0">$idh</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$user_details</span> <span class="sy0">=</span> <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span> <span class="st0">&quot;][&quot;</span><span class="sy0">,</span> <span class="re0">$raw_details</span> <span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp;
  <a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span> <span class="st_h">';phorum_page'</span><span class="sy0">;,</span> <span class="st_h">';create_user'</span><span class="sy0">;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="kw2">global</span> <span class="re0">$PHORUM</span><span class="sy0">;</span>
  <span class="kw1">include_once</span><span class="br0">&#40;</span> <span class="st_h">';common.php'</span><span class="sy0">;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
  <span class="re0">$current_working_directory</span> <span class="sy0">=</span> <a href="http://www.php.net/getcwd"><span class="kw3">getcwd</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
  <a href="http://www.php.net/chdir"><span class="kw3">chdir</span></a><span class="br0">&#40;</span> <span class="st0">&quot;../phorum&quot;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
  phorum_api_user_save<span class="br0">&#40;</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span>
    <span class="st0">&quot;user_id&quot;</span> <span class="sy0">=&gt;</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_USER_ID<span class="br0">&#93;</span><span class="sy0">,</span> <span class="co1">// or the user id from your main user database</span>
    <span class="st0">&quot;username&quot;</span> <span class="sy0">=&gt;</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_USER_NAME<span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="st0">&quot;real_name&quot;</span> <span class="sy0">=&gt;</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_REAL_NAME<span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="st0">&quot;display_name&quot;</span> <span class="sy0">=&gt;</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_REAL_NAME<span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="st0">&quot;password&quot;</span> <span class="sy0">=&gt;</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_PASSWORD<span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="st0">&quot;password_temp&quot;</span> <span class="sy0">=&gt;</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_PASSWORD<span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="st0">&quot;active&quot;</span> <span class="sy0">=&gt;</span> PHORUM_USER_ACTIVE<span class="sy0">,</span>
    <span class="st0">&quot;admin&quot;</span> <span class="sy0">=&gt;</span> <span class="kw4">FALSE</span><span class="sy0">,</span>
    <span class="st0">&quot;hide_email&quot;</span><span class="sy0">=&gt;</span> <span class="kw4">FALSE</span><span class="sy0">,</span>
    <span class="st0">&quot;email&quot;</span> <span class="sy0">=&gt;</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_EMAIL<span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="st0">&quot;user_language&quot;</span> <span class="sy0">=&gt;</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_LANGUAGE<span class="br0">&#93;</span>
  <span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
  <a href="http://www.php.net/chdir"><span class="kw3">chdir</span></a><span class="br0">&#40;</span> <span class="re0">$current_working_directory</span> <span class="br0">&#41;</span><span class="sy0">;</span>
  <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span> <span class="st0">&quot;Location: /signup.php?ur=&quot;</span> <span class="sy0">.</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PHORUM_USER_ID<span class="br0">&#93;</span> <span class="sy0">.</span> <span class="st0">&quot;&amp;lp=&quot;</span> <span class="sy0">.</span> <span class="re0">$user_details</span><span class="br0">&#91;</span>PASSTHRU_LICENCE_PERIOD<span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre>
<br />
When I wrapped up the query string I included the user id from my own code to use as the phorum user ID - just seemed to make sense.<br />
I also included in the string some data I need when I get control back in my own code.  This is passed back in the return header relocation as PASSTHRU_LICENCE_PERIOD.  On the return journey there is nothing sensitive in the so I did not encode it.<br />
<br />
If anyone finds this code snippet useful then I am glad to have helped.<br />
<br />
Many thanks to the guys at Phorum for making this such an easy transition.]]></description>
            <dc:creator>shillier</dc:creator>
            <category>Phorum Development</category>
            <pubDate>Thu, 06 Jun 2013 19:55:04 -0400</pubDate>
        </item>
    </channel>
</rss>
