<?xml version="1.0" encoding="UTF-8"?>    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
      <channel>
        <title></title>
        <link>https://interactivetools.com/forum/forum-search.php?k=user%3AITI</link>
        <description></description>
        <pubDate>Sat, 18 Apr 2026 18:48:07 -0700</pubDate>
        <language>en-us</language>
        <atom:link href="https://interactivetools.com/forum/forum-search.php?k=user%3AITI&amp;rss=1" rel="self" type="application/rss+xml" />

                <item>
          <title>CMSB command line download</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2245581#post2245581</link>
          <description><![CDATA[<p>I'm wondering if it is possible to download CMSB's "latest" via the command line by including the necessary credentials?</p>
<p>Currently I down load from the IA website to my local machine and then have to upload to my server.  It would be nice to save the initial step.</p>
<p>Thanks</p>
<p>Glen</p>]]></description>
          <pubDate>Thu, 08 Jul 2021 12:17:03 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2245581#post2245581</guid>
        </item>
                <item>
          <title>version warning - why and how to fix this.</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2245464#post2245464</link>
          <description><![CDATA[<p>I installed CMS Builder v3.54 (Build 2280) and got the version warning.</p>
<p>I also checked the 3.55 beta version and it isn't fixed there yet.</p>
<p>The error only applies to MariaDB users not MySQL users.</p>
<p>MariaDB's last version 5 release was 5.5.5. (below the required 5.6 for cmsb 3.54)</p>
<p>Next major version is 10.0 and current version it 10.5.</p>
<p>mysqli()-&gt;server_info returns "<strong>5.5.5-10.5.9-MariaDB</strong>" and after IA's regex is applied we get "<strong>5.5.510.5.9</strong> " and fails because it is still less than 5.6</p>
<p>This is how I fixed it and maybe will give IA an idea on how they want to do it.</p>
<p>File: <strong>cms/lib/menus/admin/general.php </strong> Line: <strong>76</strong></p>
<pre class="language-markup"><code>  ### SHOW OLD PHP/MYSQL WARNINGS
  $currentPhpVersion   = phpversion();
  // $currentMySqlVersion = preg_replace("/[^0-9\.]/", '', mysqli()-&gt;server_info);  // replace chars, not numbers and dots.  Returns: 5.5.510.5.9
  /* gma */
  $cVer = mysqli()-&gt;server_info;
  if(stripos($cVer,"MariaDB") !== false){
    $cVerArr = explode('-',$cVer);
    $currentMySqlVersion = (count($cVerArr) &gt; 2)? $cVerArr[1] : $cVerArr[0]; // returns 10.5.9 or 5.5.65 
  }else {$currentMySqlVersion = preg_replace("/[^0-9\.]/", '', $cVer);}      // else use IA's method
  // echo $cVer." ======== $currentMySqlVersion";</code></pre>
<p>An intermediate solution.  I think IA's final solution will likely have to have 2 versions numbers to compare since MySQL and MariaDB versioning are now out of sync.</p>
<p>Food for thought.</p>]]></description>
          <pubDate>Sat, 27 Mar 2021 17:03:39 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2245464#post2245464</guid>
        </item>
                <item>
          <title>Notice: CMSB v2.65 Beta (Mar 31, 2015)</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2236455#post2236455</link>
          <description><![CDATA[<p>Hi Dave</p>
<p>This is my very old ITIStudios testing server that is about to be retired in a few weeks or so.</p>
<p>It's a win 2000 Advanced server running IIS ( IIS 5 I think?).</p>
<p>The php (v5.2.17) and the mysql (v5.0.51) versions are not compatible with the newer CMSB versions and didn't bother to mention it because it's not a flaw with 2.65</p>
<p>In the php.ini file "Notify" is part of the error reporting and may be excluded on production servers which could be why you haven't see this before.</p>
<p>The error <strong>only</strong> occurs when you login and logout otherwise everything is fine.</p>
<p>That being the case we still don't want to log it as an error when it's not.</p>
<p>As part of the test I added this code at line 104</p>
<p><code>if (isset($_SERVER['QUERY_STRING'])) echo "QUERY_STRING is set"; else echo "QUERY_STRING is not set";</code></p>
<p>Just to clarify:</p>
<p>When the page loads for the first time "it is not set"</p>
<p>After entering the login credentials and click the Login " button "it is not set"</p>
<p>Normal navigations if fine "is set"</p>
<p>When you click the "logoff" link, "it is not set" (but this is really the same as when the page loads for the first time)</p>]]></description>
          <pubDate>Wed, 01 Apr 2015 11:00:23 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2236455#post2236455</guid>
        </item>
                <item>
          <title>Notice: CMSB v2.65 Beta (Mar 31, 2015)</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2236447#post2236447</link>
          <description><![CDATA[<p>Hi Dave</p>
<p>I performed a fresh install of Beta v2.65 this morning and encountered an unnecessary error being logged.</p>
<p>E_NOTICE: Undefined index: QUERY_STRING</p>
<p>xxxxxxxxxxxxxxxxxxxxx\lib\common.php (line 108)</p>
<p>xxxxxxxxxxxxxxxxx/admin.php</p>
<p>You could just suppress it I suppose but I'm not a big fan of suppressing errors.</p>
<p>Line 108: if (sha1($_SERVER['QUERY_STRING']) == '3831b0376dab413292f03dd30523e749bdd3279e') {</p>
<p>A suggestion:</p>
<p>if (isset($_SERVER['QUERY_STRING']) &amp;&amp; sha1($_SERVER['QUERY_STRING']) == '3831b0376dab413292f03dd30523e749bdd3279e') {</p>]]></description>
          <pubDate>Wed, 01 Apr 2015 07:00:27 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2236447#post2236447</guid>
        </item>
                <item>
          <title>adding language strings to language files</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2229869#post2229869</link>
          <description><![CDATA[<p>Hi IA Team</p>
<p>In "Admin &gt; General Settings", in section "Regional Settings"</p>
<p>Selecting the check box after "Developer Mode" for "Automatically add new language strings to language files" does not initially work as expected.</p>
<p>In order to get it to work for a plugin I'm currently writing, I found that you have to select a language other than "Default" from the drop down "Program Language" list.</p>
<p>To save others a little grief, you might want to add a note, something like what I have shown in red:</p>
<blockquote>
<p>Developer Mode     [ ]     Automatically add new language strings to language files <span style="color:#ff0000;"><strong>[ select a language other than "Default" from the drop down "Program Language" list</strong> <strong>]</strong></span></p>
</blockquote>
<p><span style="color:#ff0000;"><span style="color:#000000;">Also, it will not update the plugin language files if the "Program Language" selection is set back to "Default".</span></span></p>
<p><span style="color:#ff0000;"><span style="color:#000000;">Consider adding a note or two in the "how_to_add_languages.txt" about this which would help to get it working quicker.</span></span></p>
<p><span style="color:#ff0000;"><span style="color:#000000;">I think my suggestions would have saved me some time figuring it out.  </span></span><span style="color:#ff0000;"><span style="color:#000000;">A Nice feature but a little tricky to figure how to use it.</span></span></p>
<p><span style="color:#ff0000;"><span style="color:#000000;">Just a suggestion.</span></span></p>
<p><span style="color:#ff0000;"><span style="color:#000000;">Update:  A better solution might be to allow "Default" to select one of the users installed languages and error message if there aren't any installed.</span></span></p>]]></description>
          <pubDate>Sat, 16 Mar 2013 21:19:06 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2229869#post2229869</guid>
        </item>
                <item>
          <title>Hook Request</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2229723#post2229723</link>
          <description><![CDATA[<p>Thanks Dave.</p>
<p>I was already using the "'menuHidden'" key in the plugin_activate/deactivate hooks which addressed the user input issues.</p>
<p>I was <strong>not</strong> aware of that schema key ''tableHidden'' which addresses my concerns in the section editor, thanks for  bringing that to my attention.  I've tested it and that works perfectly.</p>
<p>I don't think this will need to be a system plugin with the use of the keys mentioned above.</p>
<p><span style="text-decoration:line-through;">After entering the plugin file name in 'Required Plugins'  it didn't do any thing.  But I suspect it would if I required a plugin other than 'itself".  The two keys above do the trick so I won't pursue this.</span></p>
<p>I now understand how the "Required Plugin" works. It adds a little insurance but as with the keys, if the user manually edits the schema file we've lost control anyway.</p>
<p>Thanks for the tips.</p>]]></description>
          <pubDate>Tue, 05 Mar 2013 15:23:34 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2229723#post2229723</guid>
        </item>
                <item>
          <title>Hook Request</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2229721#post2229721</link>
          <description><![CDATA[<p>Hi Dave</p>
<p>Since writing the post, I believe I have found a better and more appropriate solution to my issue.</p>
<p>Basically I want to change the menuNames and set warnings in the interface if the plugin isn't activated. I can't have the end user modifying table data if the plugin isn't active since a lot of the input data is in hidden calculated fields.</p>
<p>I'm just in the process of testing the use of hooks "<strong>plugin_activate</strong> and <strong>plugin_deactivate</strong>".  These appear to be far more appropriate for what I am trying to achieve including the hiding the tables altogether (when not active).</p>
<p>Anyway, with all the code review and investigation I had done, there is no way (that I could find) to do any customization to the "Edit Field" dialog since the call to loadSchema() is just prior to showing the dialog content. I was mainly looking at the schema data not any of the global vars.</p>
<p>So, although it does look like I will need the hook I was asking about I still think it might be a useful hook for some thing else in the future.</p>
<p>My post should be revised to "A good place to add a hook" !</p>
<p>Thanks for getting back to me so quick.</p>]]></description>
          <pubDate>Tue, 05 Mar 2013 14:15:16 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2229721#post2229721</guid>
        </item>
                <item>
          <title>Hook Request</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2229710#post2229710</link>
          <description><![CDATA[<p>Hi IA staff.</p>
<p>I'm creating a new plugin and with the current "Hook" list I am able to modify the "out put" to suit my plugin except in the "Section Editors" &gt; "table" &gt; "Field Editor".</p>
<p>In <strong>lib/database_functions.php</strong>, the <strong><span style="color:#0000ff;">function</span> loadSchema($tableName, $schemaDir = '')</strong> is called prior to the "Field Editor" opening which over rides any plugin modification I have made else where.</p>
<p>Adding a hook in this function would allow for easy modifications to the "Field Editor" dialogue.</p>
<p><code>function loadSchema($tableName, $schemaDir = '') {<br />  global $APP;<br />  // error checking<br />  if (!$tableName)                                       { die(__FUNCTION__ . ": no tableName specified!"); }<br />  if (preg_match('/[^a-zA-Z0-9\-\_\(\)]+/', $tableName)) { die(__FUNCTION__ . ": tableName '" .htmlspecialchars($tableName). "' contains invalid characters!"); }<br /><br />  // get schemapath<br />  $tableNameWithoutPrefix = getTableNameWithoutPrefix($tableName);<br />  if (!$schemaDir) { $schemaFilepath = DATA_DIR . "/schema/$tableNameWithoutPrefix.ini.php"; }<br />  else             { $schemaFilepath = "$schemaDir/". getTableNameWithoutPrefix($tableName) . ".ini.php"; }<br /><br />  // load schema<br />  $schema = array();<br />  if (file_exists($schemaFilepath)) {<br />    $schema = loadStructOrINI($schemaFilepath);<br />  }<br /><br />  // add _tableName (v2.16+)<br />  if ($schema) {<br />    $schema['_tableName'] = $tableNameWithoutPrefix;<br />  }<br /><br /><span style="color:#008000;"><strong>doAction("new_loadSchema_hook",$tableName,$schemaDir);</strong></span><br />  //<br />  return $schema;<br />}</code></p>
<p>As side from solving my plugin issue, it would seem that this is an ideal location for more advance customization due to the existence of the 2nd parameter "<span style="color:#008000;">$schemaDir</span>". </p>
<p>Would you consider adding a "hook" at this location in your next release?</p>
<p>Alternatively, can you suggest a way of intercepting the output to perform modifications?</p>]]></description>
          <pubDate>Tue, 05 Mar 2013 11:13:54 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2229710#post2229710</guid>
        </item>
                <item>
          <title>Destroying Sessions</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2229526#post2229526</link>
          <description><![CDATA[<p>Thanks for sharing Dave.</p>
<p>Actually, your response was so thorough I thought maybe you were feeling a need to be defensive.  That was not my intention and hope you did not interpret my questions or comments in that way.</p>
<p>I turned on the "useThisBetaFeature" and it "did" removed the zero byte sessions.</p>
<p>To you and your team, thanks for the great product.</p>
]]></description>
          <pubDate>Tue, 19 Feb 2013 10:05:21 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2229526#post2229526</guid>
        </item>
                <item>
          <title>Destroying Sessions</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2229508#post2229508</link>
          <description><![CDATA[<blockquote>
<p>We've been battling with PHP sessions for a while. The issues are the various web hosts servers delete them too soon, too late, or not at all. Sometimes multiple websites on the same server use the same /tmp/ folder and erase each others session files when they shouldn't, and in this latest case that you found, sometimes we have developers using other 3rd party apps that use sessions, so we've had to stop destroying the entire session or we risk erasing data used by another web app on the same server.</p>
</blockquote>
<p>The difficulties with other "apps", "plugins" and "servers" makes me want to ask the question:  Are you trying to solve a problem that is "not" a CMSB problem?</p>
<p>The other thing I've noticed is a departure from the separation of CMSB and Plugins. </p>
<p>As a user of CMSB it's my expectation that CMSB will be rock solid and stable <strong>without</strong> any "active" plugins. The current session issue makes we wonder if you are not adhering to any rules with respect to seperation of CMSB from other influences.  </p>
<p>Changes to your stable back end to solve a 3rd party issue I think is fundamentally wrong which, as is in the case of the current issue, has broken the back end.</p>
<p>For example, I've come across code in CMSB to solve/fix issues with your "Website Membership" plugin. Since the code relates to a specific plugin issue it should be in the plugin and accessed via a "Hook".</p>
<p>You as the developer of CMSB can add "hooks" where ever you like to address specific plugin issues for plugins you create.  Thus new versions of CMSB should only consist of new features and fixes in addition to new hooks to your already stable release.  Hooks theoretically will never break the back end.</p>
<p>Does IA have a design philosophy in this regard such as is the case in the philosophy of "separation of church and state" where the state is CMSB and the church is things like servers, apps and plugins?</p>
<p>This philosophy will ensure that CMSB can continue to be improved upon in its all ready feature rich state and remain stable. Specific issues as they relate to plugins can be isolated and worked on with breaking CMSB for those aren't using any particular plugin.</p>
<p>I think CMSB is fabulaous and the ability to perform customization via plugins is out standing. </p>
<p>I am interested in knowing if IA has an official position on the relationship of CMSB to Plugins that I have talked about here. </p>]]></description>
          <pubDate>Mon, 18 Feb 2013 12:17:16 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2229508#post2229508</guid>
        </item>
                <item>
          <title>Destroying Sessions</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2229498#post2229498</link>
          <description><![CDATA[<p>Hi Dave.</p>
<p><strong>Dealing with the second item first:</strong></p>
<blockquote>
<p>  // Load last _REQUEST from _SESSION (current _REQUEST values override old ones)</p>
</blockquote>
<p>Your code update does solve the problem.</p>
<p><strong>As for the first issue:</strong></p>
<blockquote>
<p>function user_logoff($redirectUrl = '') {...</p>
</blockquote>
<p>I am aware of this function and it was here that I discovered you had removed the session destruction.</p>
<p>I have also read in other recent threads you are having problems with zero byte sessions.</p>
<p><code><span style="color:#ff0000;">// 2.52 - clear saved CMS session data</span><br />  <span style="color:#ff0000;">if (isset($_SESSION['lastRequest'])) { unset($_SESSION['lastRequest']); }</span></code></p>
<p>Your update removes the "<span style="color:#ff0000;">'lastRequest'</span>" session data but if no other session data exists it leaves behind a zero byte session which users seem to be having issues with.</p>
<p>Here are couple of suggestions that would help to get rid of the dreaded zero byte sessions.</p>
<p>In addition to your update continue to destroy the session if it is empty :</p>
<p><code>function user_logoff($redirectUrl = '') {<br />  loginCookie_remove();                   // erase login cookie<br />  $GLOBALS['CURRENT_USER'] = false;       // clear user global<br /><br />  <span style="color:#ff0000;">// 2.52 - clear saved CMS session data</span><br /><span style="color:#ff0000;">  if (isset($_SESSION['lastRequest'])) { </span><br /><span style="color:#ff0000;">    unset($_SESSION['lastRequest']); </span><br /><span style="color:#ff0000;">    <span style="color:#008000;">// If the session is empty after removing the CMSB 'lastRequest', then destroy it since there is no apparent value.</span><br /><span style="color:#008000;">    if(!count($_SESSION)) session_destroy();</span></span><br /><span style="color:#ff0000;">  }</span><br /><br />  // redirect/refresh page</code></p>
<p>The other time a zero based session is created is when the login page is loaded.</p>
<p>So if you are not being redirected when you log off, the login screen appears but a zero byte session would also have been created earlier in the procedure. </p>
<p>You could destroy the session at this point as well in lib/admin_functions.php</p>
<p><code>// if no logged in user<br />  if (!$CURRENT_USER) {<br /><br />    // perform login screen maintenance actions - useful place to run common operations<br />    if (!$action) {<br />      createMissingSchemaTablesAndFields(); // create/update missing schemas, etc<br /><br />      // show helpful messages<br />      if (!mysql_count('accounts')) { alert(t("There are no user accounts in the database.")); }<br />    }<br /><br />    // show login screen if user not logged in<br />    <span style="color:#ff0000;">if(!count($_SESSION)) session_destroy();</span>  // destroy the newly created empty session<br />    showInterface('login.php', false);<br />    exit;<br />  }</code></p>
<p>If a user/visitor arrives at the login page for what ever reason a session will not exist until authenticated.</p>
<p>I've tested this in ver. 2.51 and my suggestions seem to work without any issues. </p>]]></description>
          <pubDate>Sun, 17 Feb 2013 18:03:01 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2229498#post2229498</guid>
        </item>
                <item>
          <title>Destroying Sessions</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2229488#post2229488</link>
          <description><![CDATA[<p>In the more recent versions of CMSB it appears on "logoff" as you are no longer destroying the session?</p>
<p>While working on a new set of tables I clicked on a field label to change the sort order and unbenounced to me this change was stored in the session.</p>
<p>Later I decided to rename the field in the Section Editor  and discovered I could no longer access the table view due to this error "<span style="color:#ff0000;">Can't sortBy 'acl_con'. Not a valid field!</span>"</p>
<p>After a lot of screwing around I was able to figure out how to correct it:</p>
<ol><li>Login to the server and physically delete the session but that only works if you have access to the server.</li>
<li>Return to the Section Editor and rename it back to the original name.</li>
</ol><p>A person can go nuts trying to figure out how to rename a field if they don't realize they have set it as the sorting field in the table view.</p>
<p>Initially I thought logging out and back in would correct the problem which of course didn't work until I discovered it was due to the session.</p>
<p>This raises the question "why aren't sessions being destroyed"?</p>
<p>It is my opinion that if the user logs out that the session should be destroyed.</p>
<p>If it is desirable for a particular application or plugin to retain criteria that this be stored in the users cookie which can be added to the session at next login if required.</p>
<p>It appears to me that you may be crossing the line between session and cookie usage!</p>
<p>My main issue is that I don't believe a session should exist if the user "logs out".</p>
<p>And storing information that can disable the interface will likely become more problematic without some means of destroying the session.  You might want to consider a link in the admin section to destroy current session although I'm not sure that will solve the problem if the user isn't aware of the cause.</p>]]></description>
          <pubDate>Sun, 17 Feb 2013 11:04:54 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2229488#post2229488</guid>
        </item>
                <item>
          <title>New Beta Forum - Help us test!</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2218889#post2218889</link>
          <description><![CDATA[<blockquote>
<p>ITI/Glen: Thanks for your feedback. When you say you don't want to see a "user reply/counter" do you mean a specifically user titles (Newbie, Regular, Expert) based on post counts? Or showing post counts at all? Right now we don't have any plans for user titles (I don't get them either). We want to keep the base release simple, but make the aggregate data available for developers to do whatever they want with, basically creating a really solid framework that can be built on. So in theory people could add it if they really like it. If we do something like that in the future I'd be curious to check out how stackoverflow.com, slashdot, and others do it, I think there's some much more modern approaches than just post counts for titles.</p>
</blockquote>
<p>I guess what I'm really saying is "anything that rewards a member based on the number of post he/she makes should be discouraged".  Members posting to anything and everything just to reach that next milestone results in all those useless "replies to posts" that I was ranting about.  I'm sure you're right in that there is a more modern approach to classifying members.</p>
<p>Thanks for listening</p>]]></description>
          <pubDate>Thu, 20 Dec 2012 15:46:08 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2218889#post2218889</guid>
        </item>
                <item>
          <title>CMSB v. 2.50 possible bug</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2218783#post2218783</link>
          <description><![CDATA[Thank you Kevin<br /><br />I see now that I wasn't completely removing the reference correctly.  Much appreciated.]]></description>
          <pubDate>Wed, 12 Dec 2012 14:08:44 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2218783#post2218783</guid>
        </item>
                <item>
          <title>CMSB v. 2.50 possible bug</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2218773#post2218773</link>
          <description><![CDATA[When creating a new Editor of menu type &quot;multi&quot;, by default you have Title and Content fields.<br />If you rename the table field `title` to something else an error will occur when you try to open the menu item or save a record if you get that far.<br />eg:  getRecords(table_name): Unknown field 'title' in filenameFields or titleField options!<br /><br />To correct it, I simply opened the corresponding schema *.ini.php file and commented out the &quot;filenameFields&quot; line.<br />eg:  //'_filenameFields' =&gt; 'title',<br /><br />Is this a bug, or is there some special reason why the table field &quot;title&quot; should exist?<br />I other words, are there consequences to renaming the &quot;title&quot; field?<br /><br />Update: I noticed after a few saves, the ini field var gets added back in as: '_filenameFields' =&gt; '',   // ie an emtpy value.]]></description>
          <pubDate>Wed, 12 Dec 2012 10:50:26 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2218773#post2218773</guid>
        </item>
                <item>
          <title>New Beta Forum - Help us test!</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2218759#post2218759</link>
          <description><![CDATA[Hi Dave<br /><br />I like the cleanliness of the new format.<br /><br />It would be nice to have a &quot;preview feature&quot; before posting a new item or reply.<br />I did notice however that you can edit your own posting after the fact so that isn't a real problem/issue.<br /><br />A wysiwyg would be nice, particularly for highlighting code.<br /><br />Also, I hope you do NOT implement a user reply/post counter.<br />From my experience in forums there are far to many useless unrelated replies/posts to user questions. <br />eg. &quot;Why do you want to do this or that....&quot; <br />Who gives a rats ass why the guy asking the question wants to do anything.  <br />In a lot of forums the status of the user changes from newbie to novice to pro etc based on the number of post the user has made.<br />Thus a &quot;counter&quot; encourages a user to post to almost anything just to see his status upgraded.<br />These useless types of posts are a waste of research and reading time and certainly don't make the user an expert.<br /><br />With out a counter, maybe (hopefully) there would be less of these useless replies/posts.<br />Granted, some are asking to get a better handle on the problem.<br />It's the quality of a user's response that's important, not how many posts he's made.<br /><br />At any rate, I would like to see you keep it clean and simple.  <br />Well done as is all the work done by you fellows.]]></description>
          <pubDate>Tue, 11 Dec 2012 22:01:31 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2218759#post2218759</guid>
        </item>
                <item>
          <title>Re: [Dave] Strict and Rename errors installing CMSB 2.17</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2218651#post2218651</link>
          <description><![CDATA[Thanks Dave<br /><br />I'm already on your list for beta testers and have the link to download 2.50 so there is no need to email it to me.<br /><br />I will have a look when I have a bit more time.<br />]]></description>
          <pubDate>Wed, 28 Nov 2012 16:54:18 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2218651#post2218651</guid>
        </item>
                <item>
          <title>Re: [Dave] Strict and Rename errors installing CMSB 2.17</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2218636#post2218636</link>
          <description><![CDATA[Hi Dave<br /><blockquote><br />I've updated the code for the next release to use rename_winsafe (and optimized/tested that function).  <br /><br />It only uses the rename() overwrite functionality in common.php, so the quick fix is just to replace rename with rename_winsafe, or alternatively just upgrade PHP to 5.3 or better.<br /><br />Also, note that for the next release of CMSB we're going to be upping the server requirements to PHP 5.2.4+ and MySQL 5.0+, so if you're running lower version then those it might be a good time to upgrade as well.<br /><br /></blockquote><br /><br />I also ran into this issue trying to do a fresh install.<br />Regarding your next release and the minimum requirements.<br />I currently use PHP 5.2.17<br /><br />Replacing &quot;rename&quot; with &quot;rename_winsafe&quot; still produces an error:<br /><b>&quot;rename_winsafe: This is a dev function not ready for use.&quot;</b><br /><br />That said your min requirement of PHP 5.2.4 may not be enough.<br /><br />I got around this issue with this modification:<br /><code>if (!@rename($tempFilepath, $filepath)) { // added @ to suppress the error<br />    if(!copy($tempFilepath,$filepath)){<br />      die(&quot;Error copying $tempFilepath to $filepath: $php_errormsg&quot;);<br />    }<br />    unlink($tempFilepath);<br />    <br />  };</code><br /><br />Maybe this will help others with a slightly out-of-date version of php.<br />]]></description>
          <pubDate>Wed, 28 Nov 2012 14:00:57 -0800</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2218636#post2218636</guid>
        </item>
                <item>
          <title>Re: [Dave] headers_sent() issue with plugins and instant website</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2212794#post2212794</link>
          <description><![CDATA[Hi Dave<br /><br />I added a link to the previous post to have people test to see if they get the error.<br /><br />I did as you requested and added ob_flush().<br />The page failed with the error message.  I refreshed a half dozen times and the error message displayed every time.<br /><br />I've now commented out ob_flush() and reactivated the faulty plugin to see if users from the forums will see the page or the error.<br /><a target="_blank" href="http://www.canadiandomainregistry.ca/cmsDemo/index.php">http://www.canadiandomainregistry.ca/cmsDemo/index.php</a><br />]]></description>
          <pubDate>Wed, 17 Aug 2011 17:36:52 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2212794#post2212794</guid>
        </item>
                <item>
          <title>Re: [Dave] headers_sent() issue with plugins and instant website</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2212791#post2212791</link>
          <description><![CDATA[Hi Dave.<br /><br />The problem with using &quot;die(...)&quot; is that the its the site visitor that is seeing error message.  The site owner or developer will never know about.  Unless the site visitor knows the site owner they are just going to move on to the next site.<br /><br />I only became aware of the problem because the site visitor called me.<br /><br />What's weird is that the page will still display even if the headers_sent() was triggered which reinforces the point that there is no need to stop execution of the script.<br /><br />The initial error was a result of a plugin I had written.  I have a tendency to add white space to the bottom so that I'm look at the code in the middle of the screen.<br /><br />During my testing I added various amounts of new lines to different plugins at different times and my email error message always identified the last line of the file I was testing. Only active plugins generated the error.  So basically the error can be caused by any plugin that has &quot;more than one line&quot; after the closing php tag.<br /><br />I tried generating the errors by accessing the site from my neighbors cable connection, my buddies satellite connection and via W3C's validation scripts which was another form on external access. I could not generate the error.<br /><br />However, during the testing stage I did receive access errors from other IP addresses other than the person who was assisting me from Toronto.  This tells us that it isn't an isolated situation.<br /><br />I'm still of the belief that it has to do with establishing the communication protocols during the request/response/ack stage via their ISP's satellite or possibly some weird ISP's DHCP configuration between them and their clients.<br />After all Telus thinks they know it all and yes they are down east as well.<br /><br />I think you should consider not using die().  Even echo or print would at least allow the page to display.  <br />As for me, I'm going to leave the email notification in place since I do have that tendency to add white space while developing.<br /><br />ps. To help determine whether or not this is a real issue maybe other users of IW could use the email notification and deliberately add a few extra lines to one of their active plugins.<br /><br />pps.  I have created and activated a plugin with extra line feeds. Click to see if your connection displays the error. <br /><a target="_blank" href="http://www.canadiandomainregistry.ca/cmsDemo/index.php">http://www.canadiandomainregistry.ca/cmsDemo/index.php</a><br />The page will either display normally or die() <b>and</b> send me an email.<br />]]></description>
          <pubDate>Wed, 17 Aug 2011 16:25:06 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2212791#post2212791</guid>
        </item>
                <item>
          <title>Re: [ross] headers_sent() issue with plugins and instant website</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2212762#post2212762</link>
          <description><![CDATA[Hi Ross<br /><br />No, I'm not having sporadic messages, I've already diagnosed and solved the problem.<br /><br />The purpose behind my post was/is two fold:<br />1.  To let you fellows at IAT and IW users know of a potential problem.<br />2.  To identify to new and I suppose veteran plugin developers that there is a potential issue/problem when creating/saving a plugin.<br /><br />The second issue is a result of IAT not having any documentation available for new users or newbie plugin developers.<br /><br />You guys nailed it when you created and released CMSB and the plugin's set it apart from any other software I've worked with.<br /><br />Unfortunately IAT's lack of documentation sucks which is why I created my own tutorial on Plugins. I have been writing and updating it for my own benefit and I don't mind sharing it with your community. <br /><br />~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br /><br />If I were to make a suggestion it would be that in a future release of Instant Website, you either remove the headers_sent() or set it to provide the site owner/developer a more meaningful message.  The error message is meaningless to the site visitor and it doesn't even give the visitor a link to report the error to anyone.<br /><br />As it stand the site owner is completely unaware that their site is not available to some visitors. A CMSB user could be using a third party plugin thus generating the error and not know about it.<br /><br />Considering the page displays just fine with the headers_sent() commented out clearly suggest this should be handled in a different manner.<br /><br />Since the issue is part and parcel with how to create plugins I included it in this post.<br /><br />Now, if you could tell me/us why some site visitors trigger the error while others do not, I would be most interested in knowing.<br /><br />In my tests, one site visitor triggers the error every time.  The only thing that I know is that they have a satellite internet connection.  I'm guessing that it's the satellite's request and server's response during the connection protocol that is triggering the error. However, I tested it with a buddy who has a satellite connection and there was no error so I'm really baffled. Got any ideas as to why this is the case?<br /><br />Thanks for taking time to read and respond.<br />]]></description>
          <pubDate>Tue, 16 Aug 2011 21:23:03 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2212762#post2212762</guid>
        </item>
                <item>
          <title>headers_sent() issue with plugins and instant website</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2212733#post2212733</link>
          <description><![CDATA[This issue relates to writing plugins and users who use Interactive Tools Instant Website.<br /><br />This error is hard to reproduce and I haven't been able to do it internally.  I can however with the assistance of a site visitor in the Toronto area.  I can not explain why only some site visitors are affected so its a bit of a mystery.<br /><br />To explain I'll have to use the Instant Website initialization file &quot;website_init.php&quot; which contains the line:<br /><code>// error checking<br />if (headers_sent()) { <br />    die(&quot;You must load &quot; .basename(__FILE__).<br />    &quot; at top of file!  Make sure there are no spaces before it!\n&quot;); <br />}<br />// Note: this is written on a single line (line 11) in website_init.php</code><br /><br /><b>Some</b> website visitors will see the error message and the web page will not be displayed.<br /><br />The reason in my case was that there were active plugins that contained white space (blank lines) after the closing php tag (<span style="color:red">?&gt;</span>)<br /><br />To ensure that the page is always displayed in your &quot;Instant website&quot; you can simply comment out the line with 2 forward slashes.<br /><code>//if (headers_sent()) { die(&quot;You must load &quot; .basename(__FILE__). .....</code><br /><br />What I did to test this issue was to change the &quot;die&quot; to sending an email instead.<br /><code>if(headers_sent($file,$line)) { <br />  $to = $SETTINGS['adminEmail'];<br />  $headers = &quot;From: $to&quot;;<br />  $subject = &quot;Headers Sent on &quot;.$_SERVER['SERVER_NAME'];<br />  $msg = &quot;Headers already sent accessing: &quot;.$_SERVER['SERVER_NAME'].<br />          &quot;\nIn $file, on line $line, from IP: &quot;.$_SERVER['REMOTE_ADDR'];<br />  mail($to,$subject,$msg,$headers);<br />}</code><br />The email contains the line number in the file causing the problem. In Instant website the page still displays so there is no need to &quot;exit&quot;.  I received several emails from different IP address which indicates that this isn't isolated to just a single visitor.<br /><br /><b>Note to New Plugin developers:</b><br />Be sure you do not have any more than 1 blank line after the closing php tag in any of your plugin files.<br /><br />I suspect that the use of headers_sent() in any custom code you create could also trigger this error.<br /><br />I've also include information on this issue on my plugins tutorial page:<br /><a target="_blank" href="http://www.canadiandomainregistry.ca/cmsDocs/cmsPublic/">http://www.canadiandomainregistry.ca/cmsDocs/cmsPublic/</a><br />]]></description>
          <pubDate>Mon, 15 Aug 2011 23:19:12 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2212733#post2212733</guid>
        </item>
                <item>
          <title>Re: [Dave] getUlimitValues() function sending linux commands to windows</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2212732#post2212732</link>
          <description><![CDATA[Hi Dave<br /><br />There are no abnormal server settings.<br /><br />I ran the script independent of CMSB as well as, as a Notice() from within the General Settings page.<br /><br />The results were as one would expect.<br /><br />The error message seems to want to appear around the Data Base Section but not consistently in the same places.<br />Some times beside the button, once as the button text, then as a select item in the Restore Data Base list etc... but I've also had it appear near the top of the page as well.<br /><br />Anyway, adding the redirection &quot;2&gt;&amp;1&quot; does seem to solve the problem.<br />I've tested it as many ways as I can and do not see the error appearing anywhere. <br /><br />I think you have the right solution with the redirection.  The redirection certainly doesn't affect anything since the error message doesn't match any of the regex expressions.<br /><br />I'll leave my system running with the redirection and should the error re-appear I'll let you know but I think it's safe to say you solved it.<br />For those that are experiencing this problem, this is where Dave as put the redirection.<br /><code>// get shell command<br />  if     ($type == 'soft') { $cmd = 'sh -c &quot;ulimit -a -S&quot; <span style="color:red">2&gt;&amp;1</span>'; }<br />  elseif ($type == 'hard') { $cmd = 'sh -c &quot;ulimit -a -H&quot; <span style="color:red">2&gt;&amp;1</span>'; }</code><br /><br />I have another bazar issue but I'll post it as a new item.<br />]]></description>
          <pubDate>Mon, 15 Aug 2011 21:42:36 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2212732#post2212732</guid>
        </item>
                <item>
          <title>Re: [Dave] getUlimitValues() function sending linux commands to windows</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2212666#post2212666</link>
          <description><![CDATA[Hi Dave<br /><blockquote> What PHP version and windows version are you running? </blockquote><br /><br />Operating System: Windows Server 2003 R2 Standard Edition<br />PHP Version:           PHP v5.2.12<br /><br />ps. A lot of times the error text is not visible but I would guess that it appears about 30% of the time and as I mentioned its not always the same place. The last time that it occured before I decided to investigate and fix it was when it showed up in the edit list of the &quot;Restore Backup&quot;<br /><blockquote><br />Select 'sh' is not recognized as an internal or external command, operable program or batch file. Select version to restore</blockquote><br />]]></description>
          <pubDate>Thu, 11 Aug 2011 14:47:19 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2212666#post2212666</guid>
        </item>
                <item>
          <title>getUlimitValues() function sending linux commands to windows</title>
          <link>https://interactivetools.com/forum/forum-posts.php?postNum=2212661#post2212661</link>
          <description><![CDATA[file: <b>lib/menus/admin/actionHandler.php</b><br />function: <b>getUlimitValues()</b><br /><br />When CMSB is installed on Windows the following can appear pretty much any where on the &quot;<b>Admin &gt; General Settings</b>&quot; page:<br /><span style="color:red">'sh' is not recognized as an internal or external command, operable program or batch file.</span><br />This line of text will appear (but not always) anywhere on the page or as the value of input field etc...<br />In some cases the error isn't actually visible but it's enough to prevent some actions like clicking on buttons.<br /><br />Partial snippet:<br /><code>  if ($type == 'soft') { $cmd = 'sh -c &quot;ulimit -a -S&quot;'; }<br />  ...  <br />  // get output<br />  $output = @shell_exec($cmd);</code><br /><br />Since &quot;shell_exec()&quot; is succeeding correctly, suppressing the error with the &quot;@&quot; symbol doesn't work because this isn't a php error.<br />You know its a Linux command so it shouldn't be sent to a Windows interpreter.<br /><br />To correct this could you add some form of platform validation?<br />Here is what I have done to temporarily correct till you fix in the next release :) <br /><code>function getUlimitValues($type = 'soft') {<br />  $maxCpuSeconds     = '';<br />  $memoryLimitKbytes = '';<br />  $maxProcessLimit   = '';<br />  $output            = '';<br /><br />  // get shell command<br />  if     ($type == 'soft') { $cmd = 'sh -c &quot;ulimit -a -S&quot;'; }<br />  elseif ($type == 'hard') { $cmd = 'sh -c &quot;ulimit -a -H&quot;'; }<br />  else                     { die(__FUNCTION__ . &quot;: type must be either hard or soft&quot;); }<br /><br />  <span style="color:green"><b>if(stripos($_SERVER['SERVER_SOFTWARE'],&quot;Microsoft&quot;) === false){</b></span><br />    // get output<br />    $output = @shell_exec($cmd);<br />    // parse output<br />    if (preg_match(&quot;/^(time|cpu time).*?\s(\S*)$/m&quot;, $output, $matches))<br />            { $maxCpuSeconds = $matches[2]; }<br />    if (preg_match(&quot;/^(data|data seg).*?\s(\S*)$/m&quot;, $output, $matches))<br />            { $dataSegLimit  = $matches[2]; }<br />    if (preg_match(&quot;/^(vmemory|virtual mem).*?\s(\S*)$/m&quot;, $output, $matches))<br />            { $vmemoryLimit  = $matches[2]; }<br />    if (preg_match(&quot;/^(concurrency|max user processes).*?\s(\S*)$/m&quot;, $output, $matches))<br />            { $maxProcessLimit  = $matches[2]; }<br />  <br />    if (@$vmemoryLimit &gt; @$dataSegLimit) { $memoryLimitKbytes = @$vmemoryLimit; }<br />    else                                 { $memoryLimitKbytes = @$dataSegLimit; }<br />  <span style="color:green"><b>}</b></span><br />  //<br />  return array($maxCpuSeconds, $memoryLimitKbytes, $maxProcessLimit, $output);<br />}</code><br />]]></description>
          <pubDate>Thu, 11 Aug 2011 11:53:23 -0700</pubDate>
          <guid isPermaLink="true">forum-posts.php?postNum=2212661#post2212661</guid>
        </item>
              </channel>
    </rss>
  