<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>PHP for Microsoft AJAX Library</title><link>http://www.codeplex.com/phpmsajax/Project/ProjectRss.aspx</link><description>A small set of PHP files to support using the Microsoft AJAX Library with PHP web applications.  The current release supports creating web service proxies in PHP code such that the Microsoft AJAX L...</description><item><title>Patch Uploaded</title><link>http://www.codeplex.com/phpmsajax/SourceControl/PatchList.aspx</link><description>
&lt;p&gt;&lt;a href='/UserAccount/UserProfile.aspx?UserName=dherbst'&gt;dherbst&lt;/a&gt; has uploaded a patch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;This patches MSAjaxService.php when using MicrosoftAjaxLibrary 3.5.  There seems to have been a breaking change from the earlier msajaxlibrary which did not put the result data into the &amp;#34;d&amp;#34; property of the returned json object.  &lt;br /&gt;&lt;br /&gt;The fix is line 87 to add the array wrapper&amp;#58;&lt;br /&gt;&lt;br /&gt;            echo json_encode&amp;#40; array&amp;#40;&amp;#34;d&amp;#34;&amp;#61;&amp;#62;&amp;#36;returnValue&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This should fix iss &amp;#35;4997 for you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please let me know if you have any questions.&lt;/p&gt;</description><author>dherbst</author><pubDate>Mon, 07 Jan 2008 13:27:59 GMT</pubDate><guid isPermaLink="false">Patch Uploaded 20080107012759P</guid></item><item><title>COMMENTED ISSUE: b has no properties</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=4997</link><description>Trying your hello example creates &amp;#34;b has no properties&amp;#34; error in MicrosoftAjax.js line 5.&lt;br /&gt;When changing script source from MicrosoftAjax.js to MicrosoftAjax.debug.js is says&amp;#58;&lt;br /&gt;Chyba&amp;#58; &amp;#91;Exception... &amp;#34;&amp;#39;Sys.Net.WebServiceFailedException&amp;#58; Sys.Net.WebServiceFailedException&amp;#58; The server method &amp;#39;SayHello&amp;#39; returned invalid data. The &amp;#39;d&amp;#39; property is missing from the JSON wrapper.&amp;#39; when calling method&amp;#58; &amp;#91;nsIOnReadyStateChangeHandler&amp;#58;&amp;#58;handleEvent&amp;#93;&amp;#34;  nsresult&amp;#58; &amp;#34;0x8057001c &amp;#40;NS_ERROR_XPC_JS_THREW_JS_OBJECT&amp;#41;&amp;#34;  location&amp;#58; &amp;#34;&amp;#60;unknown&amp;#62;&amp;#34;  data&amp;#58; no&amp;#93;&lt;br /&gt;&lt;br /&gt;Using PHP PHP 5.2.5, Apache 2.2.6, Windows XP Pro, FireFox 2.0.0.11&lt;br /&gt;Comments: ** Comment from web user: Dzonny ** &lt;p&gt;And getting undefined also in IE&lt;/p&gt;</description><author>Dzonny</author><pubDate>Sun, 06 Jan 2008 13:47:30 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: b has no properties 20080106014730P</guid></item><item><title>COMMENTED ISSUE: b has no properties</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=4997</link><description>Trying your hello example creates &amp;#34;b has no properties&amp;#34; error in MicrosoftAjax.js line 5.&lt;br /&gt;When changing script source from MicrosoftAjax.js to MicrosoftAjax.debug.js is says&amp;#58;&lt;br /&gt;Chyba&amp;#58; &amp;#91;Exception... &amp;#34;&amp;#39;Sys.Net.WebServiceFailedException&amp;#58; Sys.Net.WebServiceFailedException&amp;#58; The server method &amp;#39;SayHello&amp;#39; returned invalid data. The &amp;#39;d&amp;#39; property is missing from the JSON wrapper.&amp;#39; when calling method&amp;#58; &amp;#91;nsIOnReadyStateChangeHandler&amp;#58;&amp;#58;handleEvent&amp;#93;&amp;#34;  nsresult&amp;#58; &amp;#34;0x8057001c &amp;#40;NS_ERROR_XPC_JS_THREW_JS_OBJECT&amp;#41;&amp;#34;  location&amp;#58; &amp;#34;&amp;#60;unknown&amp;#62;&amp;#34;  data&amp;#58; no&amp;#93;&lt;br /&gt;&lt;br /&gt;Using PHP PHP 5.2.5, Apache 2.2.6, Windows XP Pro, FireFox 2.0.0.11&lt;br /&gt;Comments: ** Comment from web user: Dzonny ** &lt;p&gt;.... and exception when using MicrosoftAjax.debug.js&amp;#58;&lt;br /&gt;Chyba&amp;#58; &amp;#91;Exception... &amp;#34;&amp;#39;Sys.Net.WebServiceFailedException&amp;#58; Sys.Net.WebServiceFailedException&amp;#58; The server method &amp;#39;SayHello&amp;#39; returned invalid data. The &amp;#39;d&amp;#39; property is missing from the JSON wrapper.&amp;#39; when calling method&amp;#58; &amp;#91;nsIOnReadyStateChangeHandler&amp;#58;&amp;#58;handleEvent&amp;#93;&amp;#34;  nsresult&amp;#58; &amp;#34;0x8057001c &amp;#40;NS_ERROR_XPC_JS_THREW_JS_OBJECT&amp;#41;&amp;#34;  location&amp;#58; &amp;#34;&amp;#60;unknown&amp;#62;&amp;#34;  data&amp;#58; no&amp;#93;&lt;/p&gt;</description><author>Dzonny</author><pubDate>Sun, 06 Jan 2008 12:21:22 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: b has no properties 20080106122122P</guid></item><item><title>COMMENTED ISSUE: b has no properties</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=4997</link><description>Trying your hello example creates &amp;#34;b has no properties&amp;#34; error in MicrosoftAjax.js line 5.&lt;br /&gt;When changing script source from MicrosoftAjax.js to MicrosoftAjax.debug.js is says&amp;#58;&lt;br /&gt;Chyba&amp;#58; &amp;#91;Exception... &amp;#34;&amp;#39;Sys.Net.WebServiceFailedException&amp;#58; Sys.Net.WebServiceFailedException&amp;#58; The server method &amp;#39;SayHello&amp;#39; returned invalid data. The &amp;#39;d&amp;#39; property is missing from the JSON wrapper.&amp;#39; when calling method&amp;#58; &amp;#91;nsIOnReadyStateChangeHandler&amp;#58;&amp;#58;handleEvent&amp;#93;&amp;#34;  nsresult&amp;#58; &amp;#34;0x8057001c &amp;#40;NS_ERROR_XPC_JS_THREW_JS_OBJECT&amp;#41;&amp;#34;  location&amp;#58; &amp;#34;&amp;#60;unknown&amp;#62;&amp;#34;  data&amp;#58; no&amp;#93;&lt;br /&gt;&lt;br /&gt;Using PHP PHP 5.2.5, Apache 2.2.6, Windows XP Pro, FireFox 2.0.0.11&lt;br /&gt;Comments: ** Comment from web user: Dzonny ** &lt;p&gt;There was a problem with your PHP code and my very strict PHP settings. It generated a notice&amp;#58;&lt;br /&gt;&amp;#60;br &amp;#47;&amp;#62;&lt;br /&gt;&amp;#60;b&amp;#62;Notice&amp;#60;&amp;#47;b&amp;#62;&amp;#58;  Undefined index&amp;#58;  HTTP_CONTENT_TYPE in &amp;#60;b&amp;#62;C&amp;#58;&amp;#92;Program Files&amp;#92;Apache Software Foundation&amp;#92;Apache2.2&amp;#92;htdocs&amp;#92;filestore&amp;#92;phpmsajax&amp;#92;MSAjaxService.php&amp;#60;&amp;#47;b&amp;#62; on line &amp;#60;b&amp;#62;60&amp;#60;&amp;#47;b&amp;#62;&amp;#60;br &amp;#47;&amp;#62;&lt;br /&gt;So, I&amp;#39;ve altered the line 60 from&lt;br /&gt;if &amp;#40;&amp;#40;strpos&amp;#40;&amp;#36;_SERVER&amp;#91;&amp;#39;HTTP_CONTENT_TYPE&amp;#39;&amp;#93;, &amp;#39;application&amp;#47;json&amp;#39;&amp;#41; &amp;#33;&amp;#61;&amp;#61; 0&amp;#41; &amp;#38;&amp;#38; &amp;#40;strpos&amp;#40;&amp;#36;_SERVER&amp;#91;&amp;#39;CONTENT_TYPE&amp;#39;&amp;#93;, &amp;#39;application&amp;#47;json&amp;#39;&amp;#41; &amp;#33;&amp;#61;&amp;#61; 0&amp;#41;&amp;#41;&lt;br /&gt;to&lt;br /&gt;if &amp;#40;&amp;#40;strpos&amp;#40;&amp;#64;&amp;#36;_SERVER&amp;#91;&amp;#39;HTTP_CONTENT_TYPE&amp;#39;&amp;#93;, &amp;#39;application&amp;#47;json&amp;#39;&amp;#41; &amp;#33;&amp;#61;&amp;#61; 0&amp;#41; &amp;#38;&amp;#38; &amp;#40;strpos&amp;#40;&amp;#64;&amp;#36;_SERVER&amp;#91;&amp;#39;CONTENT_TYPE&amp;#39;&amp;#93;, &amp;#39;application&amp;#47;json&amp;#39;&amp;#41; &amp;#33;&amp;#61;&amp;#61; 0&amp;#41;&amp;#41;&lt;/p&gt;&lt;p&gt;now I&amp;#168;m getting undefined instead fo hello message &amp;#58;-&amp;#40;&lt;/p&gt;</description><author>Dzonny</author><pubDate>Sun, 06 Jan 2008 12:19:40 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: b has no properties 20080106121940P</guid></item><item><title>CREATED ISSUE: b has no properties</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=4997</link><description>Trying your hello example creates &amp;#34;b has no properties&amp;#34; error in MicrosoftAjax.js line 5.&lt;br /&gt;When changing script source from MicrosoftAjax.js to MicrosoftAjax.debug.js is says&amp;#58;&lt;br /&gt;Chyba&amp;#58; &amp;#91;Exception... &amp;#34;&amp;#39;Sys.Net.WebServiceFailedException&amp;#58; Sys.Net.WebServiceFailedException&amp;#58; The server method &amp;#39;SayHello&amp;#39; returned invalid data. The &amp;#39;d&amp;#39; property is missing from the JSON wrapper.&amp;#39; when calling method&amp;#58; &amp;#91;nsIOnReadyStateChangeHandler&amp;#58;&amp;#58;handleEvent&amp;#93;&amp;#34;  nsresult&amp;#58; &amp;#34;0x8057001c &amp;#40;NS_ERROR_XPC_JS_THREW_JS_OBJECT&amp;#41;&amp;#34;  location&amp;#58; &amp;#34;&amp;#60;unknown&amp;#62;&amp;#34;  data&amp;#58; no&amp;#93;&lt;br /&gt;&lt;br /&gt;Using PHP PHP 5.2.5, Apache 2.2.6, Windows XP Pro, FireFox 2.0.0.11&lt;br /&gt;</description><author>Dzonny</author><pubDate>Sun, 06 Jan 2008 11:48:19 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: b has no properties 20080106114819A</guid></item><item><title>Project License Changed</title><link>http://www.codeplex.com/phpmsajax/Project/License.aspx?LicenseHistoryId=7104</link><description>Microsoft Public License &amp;#40;Ms-PL&amp;#41;&amp;#13;&amp;#10;&amp;#13;&amp;#10;This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.&amp;#13;&amp;#10;&amp;#13;&amp;#10;1. Definitions&amp;#13;&amp;#10;&amp;#13;&amp;#10;The terms &amp;#34;reproduce,&amp;#34; &amp;#34;reproduction,&amp;#34; &amp;#34;derivative works,&amp;#34; and &amp;#34;distribution&amp;#34; have the same meaning here as under U.S. copyright law.&amp;#13;&amp;#10;&amp;#13;&amp;#10;A &amp;#34;contribution&amp;#34; is the original software, or any additions or changes to the software.&amp;#13;&amp;#10;&amp;#13;&amp;#10;A &amp;#34;contributor&amp;#34; is any person that distributes its contribution under this license.&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#34;Licensed patents&amp;#34; are a contributor&amp;#39;s patent claims that read directly on its contribution.&amp;#13;&amp;#10;&amp;#13;&amp;#10;2. Grant of Rights&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#40;A&amp;#41; Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#40;B&amp;#41; Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and&amp;#47;or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.&amp;#13;&amp;#10;&amp;#13;&amp;#10;3. Conditions and Limitations&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#40;A&amp;#41; No Trademark License- This license does not grant you rights to use any contributors&amp;#39; name, logo, or trademarks.&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#40;B&amp;#41; If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#40;C&amp;#41; If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#40;D&amp;#41; If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#40;E&amp;#41; The software is licensed &amp;#34;as-is.&amp;#34; You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.</description><author></author><pubDate>Fri, 30 Nov 2007 19:53:11 GMT</pubDate><guid isPermaLink="false">Project License Changed 20071130075311P</guid></item><item><title>COMMENTED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=415</link><description>Here is the correct way to solve it:

if ((isset($_SERVER['HTTP_CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['HTTP_CONTENT_TYPE'], 'application/json') !== 0) 
  || (isset($_SERVER['CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== 0))
{
  header('HTTP/1.0 500 Internal Server Error');
  throw new Exception('Wrong content-type, should be application/json');
} Comments: ** Comment from web user: bencornwell ** &lt;p&gt;actually - that should be&lt;/p&gt;&lt;p&gt;if&amp;#40; array_key_exists&amp;#40; &amp;#39;CONTENT_TYPE&amp;#39;, &amp;#36;_SERVER &amp;#41; &amp;#41; &amp;#123; &amp;#47;&amp;#47;do something &amp;#125; &lt;/p&gt;&lt;p&gt;Standard argument ordering isn&amp;#39;t one of PHP&amp;#39;s strong points &amp;#59;&amp;#41;&lt;/p&gt;</description><author>bencornwell</author><pubDate>Mon, 25 Jun 2007 13:40:08 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue 20070625014008P</guid></item><item><title>COMMENTED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=415</link><description>Here is the correct way to solve it:

if ((isset($_SERVER['HTTP_CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['HTTP_CONTENT_TYPE'], 'application/json') !== 0) 
  || (isset($_SERVER['CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== 0))
{
  header('HTTP/1.0 500 Internal Server Error');
  throw new Exception('Wrong content-type, should be application/json');
} Comments: ** Comment from web user: bencornwell ** &lt;p&gt;Hi Steve - just caught your presentation at ReMIX07 and thought I&amp;#39;d check out the phpmsajax project. &lt;/p&gt;&lt;p&gt;I hit the issue described above - it&amp;#39;s actually a PHP5 -&amp;#62; PHP4 legacy issue. PHP5 &amp;#40;strict mode&amp;#41; will generate an error if the array index you&amp;#39;re trying to access doesn&amp;#39;t exist, while PHP4 &amp;#40;or PHP5 running a more forgiving error_reporting&amp;#40;&amp;#41; setting&amp;#41; won&amp;#39;t. &lt;/p&gt;&lt;p&gt;Further, the isset&amp;#40;&amp;#41; probably isn&amp;#39;t the best way to test this condition either - the best way I&amp;#39;ve come across is&amp;#58;  if&amp;#40; array_key_exists&amp;#40; &amp;#36;_SERVER, &amp;#39;CONTENT_TYPE&amp;#39;&amp;#41; &amp;#41; &amp;#123; &amp;#47;&amp;#47;do something &amp;#125;&lt;/p&gt;&lt;p&gt;Happy to submit a patch - just let me know how &amp;#58;&amp;#41;&lt;/p&gt;</description><author>bencornwell</author><pubDate>Mon, 25 Jun 2007 13:33:28 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue 20070625013328P</guid></item><item><title>Project License Changed</title><link>http://www.codeplex.com/phpmsajax/Project/License.aspx?LicenseHistoryId=3432</link><description>Microsoft Permissive License (Ms-PL)

This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.

1. Definitions

The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.

A "contribution" is the original software, or any additions or changes to the software.

A "contributor" is any person that distributes its contribution under this license.

"Licensed patents" are a contributor's patent claims that read directly on its contribution.

2. Grant of Rights

(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.

(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.

3. Conditions and Limitations

(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.

(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.

(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.

(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.

(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.</description><author></author><pubDate>Thu, 31 May 2007 23:32:31 GMT</pubDate><guid isPermaLink="false">Project License Changed 20070531113231P</guid></item><item><title>CREATED ISSUE: solution of how to cast to an arbitrary class</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=1235</link><description>PHP maintains a generic empty class stdClass from which all class are built in PHP. You can use that class to create generic class objects anytime you wish.

&lt;code&gt;
$class = new stdClass();
$class-&gt;randomProperty1 = 'foo';
$class-&gt;randomProperty2 = 'bar';
&lt;/code&gt;

Aditionally, PHP5 supports object cloning. http://us2.php.net/manual/en/language.oop5.cloning.php </description><author>heygrady</author><pubDate>Wed, 25 Apr 2007 21:33:27 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: solution of how to cast to an arbitrary class 20070425093327P</guid></item><item><title>CLOSED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=415</link><description>Here is the correct way to solve it:

if ((isset($_SERVER['HTTP_CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['HTTP_CONTENT_TYPE'], 'application/json') !== 0) 
  || (isset($_SERVER['CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== 0))
{
  header('HTTP/1.0 500 Internal Server Error');
  throw new Exception('Wrong content-type, should be application/json');
} </description><author>SteveMarx</author><pubDate>Wed, 25 Apr 2007 21:08:12 GMT</pubDate><guid isPermaLink="false">CLOSED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue 20070425090812P</guid></item><item><title>COMMENTED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=415</link><description>Here is the correct way to solve it:

if ((isset($_SERVER['HTTP_CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['HTTP_CONTENT_TYPE'], 'application/json') !== 0) 
  || (isset($_SERVER['CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== 0))
{
  header('HTTP/1.0 500 Internal Server Error');
  throw new Exception('Wrong content-type, should be application/json');
} Comments: ** Comment from web user: SteveMarx ** &lt;p&gt;How is that different from what I did&amp;#63;&lt;/p&gt;</description><author>SteveMarx</author><pubDate>Wed, 25 Apr 2007 21:08:11 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue 20070425090811P</guid></item><item><title>CREATED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=415</link><description>Here is the correct way to solve it:

if ((isset($_SERVER['HTTP_CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['HTTP_CONTENT_TYPE'], 'application/json') !== 0) 
  || (isset($_SERVER['CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== 0))
{
  header('HTTP/1.0 500 Internal Server Error');
  throw new Exception('Wrong content-type, should be application/json');
} </description><author>cpradio</author><pubDate>Wed, 25 Apr 2007 21:08:11 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue 20070425090811P</guid></item><item><title>CLOSED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=395</link><description>See the first comment at http://ajaxian.com/archives/php-for-microsoft-ajax-library.  Billy reports that his machine (running PHP5.2) doesn't have this variable. </description><author>SteveMarx</author><pubDate>Wed, 25 Apr 2007 21:07:36 GMT</pubDate><guid isPermaLink="false">CLOSED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist 20070425090736P</guid></item><item><title>CREATED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=395</link><description>See the first comment at http://ajaxian.com/archives/php-for-microsoft-ajax-library.  Billy reports that his machine (running PHP5.2) doesn't have this variable. </description><author>SteveMarx</author><pubDate>Wed, 25 Apr 2007 21:07:34 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist 20070425090734P</guid></item><item><title>NEW POST: Using the ASP.NET AJAX Control Toolkit with PHP.</title><link>http://www.codeplex.com/phpmsajax/Thread/View.aspx?ThreadId=8404</link><description>&lt;div class="wikidoc"&gt;
Has anyone out there successfully used the ASP.NET AJAX Control Toolkit with PHP?&lt;br /&gt; &lt;br /&gt;If so, please post some sample code for the world using any of the controls.  Thanks!&lt;br /&gt;
&lt;/div&gt;</description><author>ockham</author><pubDate>Wed, 21 Mar 2007 00:34:06 GMT</pubDate><guid isPermaLink="false">NEW POST: Using the ASP.NET AJAX Control Toolkit with PHP. 20070321123406A</guid></item><item><title>CREATED ISSUE: solution of how to cast to an arbitrary class</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=996</link><description>PHP maintains a generic empty class stdClass from which all class are built in PHP. You can use that class to create generic class objects anytime you wish.

&lt;code&gt;
$class = new stdClass();
$class-&gt;randomProperty1 = 'foo';
$class-&gt;randomProperty2 = 'bar';
&lt;/code&gt;

Aditionally, PHP5 supports object cloning. http://us2.php.net/manual/en/language.oop5.cloning.php </description><author>heygrady</author><pubDate>Tue, 13 Mar 2007 07:00:26 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: solution of how to cast to an arbitrary class 20070313070026A</guid></item><item><title>CLOSED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue</title><link>http://www.codeplex.com/phpmsajax/WorkItem/View.aspx?WorkItemId=113</link><description>Here is the correct way to solve it:

if ((isset($_SERVER['HTTP_CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['HTTP_CONTENT_TYPE'], 'application/json') !== 0) 
  || (isset($_SERVER['CONTENT_TYPE']) &amp;&amp; strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== 0))
{
  header('HTTP/1.0 500 Internal Server Error');
  throw new Exception('Wrong content-type, should be application/json');
} Comments: Resolved with changeset 2998.</description><author>SteveMarx</author><pubDate>Mon, 05 Mar 2007 07:02:39 GMT</pubDate><guid isPermaLink="false">CLOSED ISSUE: $_SERVER variable HTTP_CONTENT_TYPE doesn't exist -- Still an Issue 20070305070239A</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/phpmsajax/SourceControl/ListDownloadableCommits.aspx</link><description>Run under E_ALL with no warnings, compatibility improvements on IIS &amp;#40;no &amp;#36;_SERVER&amp;#91;&amp;#39;REQUEST_URI&amp;#39;&amp;#93;&amp;#41;, and general code improvements.</description><author>SteveMarx</author><pubDate>Mon, 05 Mar 2007 07:02:38 GMT</pubDate><guid isPermaLink="false">Source code checked in 20070305070238A</guid></item><item><title>Some php code improvement: </title><link>http://www.codeplex.com/phpmsajax/Thread/View.aspx?ThreadId=3933</link><description>PHP uses copy-on-write, so code {{$a = $b;}} doesn't copy any memory. Thus code {{$a = &amp;$b;}} is in fact slower than {{$a = $b;}}. Enlightment is: Don't use reference assignments where not necessary.

PHP construct {{echo}} is very fast. Several {{Response.Write}} were slow in ASP but it doesn't hold for PHP. Code {{$a = ""; $a .= "..."; echo $a;}} is similarly fast, but {{$a = array(); $a[] = "..."; echo implode("", $a);}} is in fact slower because it allocates more than double of memory needed for output (first for array, second for imploded string + overhead costs for array manipulation).</description><author>vrana</author><pubDate>Tue, 13 Feb 2007 10:31:20 GMT</pubDate><guid isPermaLink="false">Some php code improvement:  20070213103120A</guid></item></channel></rss>