<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Jasny · web development</title>
	<atom:link href="http://www.jasny.net/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasny.net</link>
	<description>Helping you out with PHP &#38; MySQL</description>
	<lastBuildDate>Wed, 25 Jan 2012 21:57:47 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Comment on Simple Single Sign-On for PHP (Ajax compatible) by Gougousis Alexandros</title>
		<link>http://www.jasny.net/articles/simple-single-sign-on-for-php/comment-page-4/#comment-338153</link>
		<dc:creator>Gougousis Alexandros</dc:creator>
		<pubDate>Wed, 25 Jan 2012 21:57:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=168#comment-338153</guid>
		<description>Hi! Nice code! 
I have used it to create an SSO-based application using the Yii Framework. It&#039;s cool!
I would like to ask you one thing. What is the reason of &quot;attaching&quot; to the SSO-Server?
Why not direclty sending the un-logged client to the SSO-Server for logging? 

Anyway,thanks for sharing the code!</description>
		<content:encoded><![CDATA[<p>Hi! Nice code!<br />
I have used it to create an SSO-based application using the Yii Framework. It&#8217;s cool!<br />
I would like to ask you one thing. What is the reason of &#8220;attaching&#8221; to the SSO-Server?<br />
Why not direclty sending the un-logged client to the SSO-Server for logging? </p>
<p>Anyway,thanks for sharing the code!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Single Sign-On for PHP (Ajax compatible) by Sir Đoàn</title>
		<link>http://www.jasny.net/articles/simple-single-sign-on-for-php/comment-page-4/#comment-338152</link>
		<dc:creator>Sir Đoàn</dc:creator>
		<pubDate>Mon, 16 Jan 2012 11:15:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=168#comment-338152</guid>
		<description>Thank you so much for this toturial ^^</description>
		<content:encoded><![CDATA[<p>Thank you so much for this toturial ^^</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Single Sign-On for PHP (Ajax compatible) by Arnold Daniels</title>
		<link>http://www.jasny.net/articles/simple-single-sign-on-for-php/comment-page-4/#comment-338151</link>
		<dc:creator>Arnold Daniels</dc:creator>
		<pubDate>Sat, 14 Jan 2012 22:39:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=168#comment-338151</guid>
		<description>Hi all, the demo&#039;s are currently broken indeed. I need to look at that soon. Also I&#039;ve decided to create a full featured lib from this example, since I&#039;m still getting a lot of response years after writing this article.

Sorry @Gowtham I didn&#039;t reply to you earlier. Since the broker will do the authentication, it can simply send the userid to the SSO server instead of the username/password.</description>
		<content:encoded><![CDATA[<p>Hi all, the demo&#8217;s are currently broken indeed. I need to look at that soon. Also I&#8217;ve decided to create a full featured lib from this example, since I&#8217;m still getting a lot of response years after writing this article.</p>
<p>Sorry @Gowtham I didn&#8217;t reply to you earlier. Since the broker will do the authentication, it can simply send the userid to the SSO server instead of the username/password.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An alternative way of EAV modelling by Arnold Daniels</title>
		<link>http://www.jasny.net/articles/an-alternative-way-of-eav-modeling/comment-page-1/#comment-338150</link>
		<dc:creator>Arnold Daniels</dc:creator>
		<pubDate>Fri, 13 Jan 2012 01:37:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=88#comment-338150</guid>
		<description>Using a full-text index for is another option. You should write an article explaining how you would do that.

Have a look at the results below.

&lt;pre&gt;
mysql&gt; show create table product_property_test;
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
&#124; Table                 &#124; Create Table                                                                                                                                                                                                                                                                                                                                                                                                            &#124;
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
&#124; product_property_test &#124; CREATE TABLE `product_property_test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(10) unsigned NOT NULL,
  `property_id` int(10) unsigned NOT NULL,
  `value` int(11) NOT NULL,
  `text` text,
  PRIMARY KEY (`id`),
  KEY `product_id` (`product_id`,`property_id`),
  KEY `property_id` (`property_id`,`value`)
) ENGINE=InnoDB AUTO_INCREMENT=79187 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC &#124;
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql&gt; SELECT COUNT(*) FROM `product_property_test`;
+----------+
&#124; COUNT(*) &#124;
+----------+
&#124;    47340 &#124;
+----------+
1 row in set (0.04 sec)

mysql&gt; SELECT product_id FROM `product_property_test` WHERE ( property_id =65854 AND value =5493 ) OR ( property_id =65854 AND value =5491 ) OR ( property_id =65863 AND value =5498 ) GROUP BY product_id HAVING COUNT(*) = 3;
+------------+
&#124; product_id &#124;
+------------+
&#124;       9541 &#124;
&#124;      46210 &#124;
&#124;      74013 &#124;
&#124;      88603 &#124;
&#124;      88717 &#124;
&#124;     209541 &#124;
&#124;     246210 &#124;
&#124;     274013 &#124;
&#124;     288603 &#124;
&#124;     288717 &#124;
&#124;     409541 &#124;
&#124;     446210 &#124;
&#124;     474013 &#124;
&#124;     488603 &#124;
&#124;     488717 &#124;
&#124;     609541 &#124;
&#124;     646210 &#124;
&#124;     674013 &#124;
&#124;     688603 &#124;
&#124;     688717 &#124;
&#124;     809541 &#124;
&#124;     846210 &#124;
&#124;     874013 &#124;
&#124;     888603 &#124;
&#124;    1046210 &#124;
&#124;    1246210 &#124;
&#124;    1446210 &#124;
&#124;    1646210 &#124;
+------------+
28 rows in set (0.00 sec)

mysql&gt; EXPLAIN SELECT product_id FROM `product_property_test` WHERE ( property_id =65854 AND value =5493 ) OR ( property_id =65854 AND value =5491 ) OR ( property_id =65863 AND value =5498 ) GROUP BY product_id HAVING COUNT(*) = 3;
+----+-------------+-----------------------+-------+---------------+-------------+---------+------+------+----------------------------------------------+
&#124; id &#124; select_type &#124; table                 &#124; type  &#124; possible_keys &#124; key         &#124; key_len &#124; ref  &#124; rows &#124; Extra                                        &#124;
+----+-------------+-----------------------+-------+---------------+-------------+---------+------+------+----------------------------------------------+
&#124;  1 &#124; SIMPLE      &#124; product_property_test &#124; range &#124; property_id   &#124; property_id &#124; 8       &#124; NULL &#124;  124 &#124; Using where; Using temporary; Using filesort &#124;
+----+-------------+-----------------------+-------+---------------+-------------+---------+------+------+----------------------------------------------+
1 row in set (0.00 sec)
&lt;/pre&gt;

So it&#039;s finding 124 instances of one of the property/value combinations. It needs to create a temp table and do a filesort for the group by and having. Now if that value was a lot bigger, like &gt; 10000, things would start to slow down. Also if you would filter on a large number of properties, the temp table will grow.

Remember that there are a lot of different properties, so one of these properties is only used in a small subset of the product. If let&#039;s say &gt; 5% of the products has a specific property, we should just add a column to the product table.

Now in reality you&#039;d probably not just search using the properties, but filter on fields from the product table as well. This should also limit the number of matching property/value pairs found.

&lt;pre&gt;
SELECT product.* FROM product INNER JOIN product_property_test q ON product.id = q.product_id WHERE product.category_id = 200 AND ( ( property_id =65854 AND value =5493 ) OR ( property_id =65854 AND value =5491 ) OR ( property_id =65863 AND value =5498 ) ) GROUP BY product_id HAVING COUNT(*) = 3
&lt;/pre&gt;

So in practise this will scale well up to a couple million products. If you have more than that you should look at a different solution, like combining Redis and MySQL.

@Jaimie, I hope your questions are hereby answered. I agree that this isn&#039;t the right way to go for all occasions, but it&#039;s definitely useful for the situation as described above. If you want to discuss this further, please come with practical examples of where, why and how problems will arise.</description>
		<content:encoded><![CDATA[<p>Using a full-text index for is another option. You should write an article explaining how you would do that.</p>
<p>Have a look at the results below.</p>
<pre>
mysql> show create table product_property_test;
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table                 | Create Table                                                                                                                                                                                                                                                                                                                                                                                                            |
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| product_property_test | CREATE TABLE `product_property_test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(10) unsigned NOT NULL,
  `property_id` int(10) unsigned NOT NULL,
  `value` int(11) NOT NULL,
  `text` text,
  PRIMARY KEY (`id`),
  KEY `product_id` (`product_id`,`property_id`),
  KEY `property_id` (`property_id`,`value`)
) ENGINE=InnoDB AUTO_INCREMENT=79187 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC |
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT COUNT(*) FROM `product_property_test`;
+----------+
| COUNT(*) |
+----------+
|    47340 |
+----------+
1 row in set (0.04 sec)

mysql> SELECT product_id FROM `product_property_test` WHERE ( property_id =65854 AND value =5493 ) OR ( property_id =65854 AND value =5491 ) OR ( property_id =65863 AND value =5498 ) GROUP BY product_id HAVING COUNT(*) = 3;
+------------+
| product_id |
+------------+
|       9541 |
|      46210 |
|      74013 |
|      88603 |
|      88717 |
|     209541 |
|     246210 |
|     274013 |
|     288603 |
|     288717 |
|     409541 |
|     446210 |
|     474013 |
|     488603 |
|     488717 |
|     609541 |
|     646210 |
|     674013 |
|     688603 |
|     688717 |
|     809541 |
|     846210 |
|     874013 |
|     888603 |
|    1046210 |
|    1246210 |
|    1446210 |
|    1646210 |
+------------+
28 rows in set (0.00 sec)

mysql> EXPLAIN SELECT product_id FROM `product_property_test` WHERE ( property_id =65854 AND value =5493 ) OR ( property_id =65854 AND value =5491 ) OR ( property_id =65863 AND value =5498 ) GROUP BY product_id HAVING COUNT(*) = 3;
+----+-------------+-----------------------+-------+---------------+-------------+---------+------+------+----------------------------------------------+
| id | select_type | table                 | type  | possible_keys | key         | key_len | ref  | rows | Extra                                        |
+----+-------------+-----------------------+-------+---------------+-------------+---------+------+------+----------------------------------------------+
|  1 | SIMPLE      | product_property_test | range | property_id   | property_id | 8       | NULL |  124 | Using where; Using temporary; Using filesort |
+----+-------------+-----------------------+-------+---------------+-------------+---------+------+------+----------------------------------------------+
1 row in set (0.00 sec)
</pre>
<p>So it&#8217;s finding 124 instances of one of the property/value combinations. It needs to create a temp table and do a filesort for the group by and having. Now if that value was a lot bigger, like > 10000, things would start to slow down. Also if you would filter on a large number of properties, the temp table will grow.</p>
<p>Remember that there are a lot of different properties, so one of these properties is only used in a small subset of the product. If let&#8217;s say > 5% of the products has a specific property, we should just add a column to the product table.</p>
<p>Now in reality you&#8217;d probably not just search using the properties, but filter on fields from the product table as well. This should also limit the number of matching property/value pairs found.</p>
<pre>
SELECT product.* FROM product INNER JOIN product_property_test q ON product.id = q.product_id WHERE product.category_id = 200 AND ( ( property_id =65854 AND value =5493 ) OR ( property_id =65854 AND value =5491 ) OR ( property_id =65863 AND value =5498 ) ) GROUP BY product_id HAVING COUNT(*) = 3
</pre>
<p>So in practise this will scale well up to a couple million products. If you have more than that you should look at a different solution, like combining Redis and MySQL.</p>
<p>@Jaimie, I hope your questions are hereby answered. I agree that this isn&#8217;t the right way to go for all occasions, but it&#8217;s definitely useful for the situation as described above. If you want to discuss this further, please come with practical examples of where, why and how problems will arise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An alternative way of EAV modelling by Jaimie Sirovich</title>
		<link>http://www.jasny.net/articles/an-alternative-way-of-eav-modeling/comment-page-1/#comment-338147</link>
		<dc:creator>Jaimie Sirovich</dc:creator>
		<pubDate>Wed, 11 Jan 2012 15:43:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=88#comment-338147</guid>
		<description>@Arnold,

I don&#039;t believe I was flaming (or even worked up), but you&#039;re still pretty far gone and incorrect.  You would probably do better by deconstructing those values into integers and throwing them into a fulltext index.  Just use boolean mode and do +100 +51 +600, etc.

The only thing that bothered me is that you&#039;re recommending people don&#039;t serialize things in a database like it was the word of God and he thinks EAV is better.  It&#039;s really not, and EAV indexes are barely indexes in the traditional sense.  You&#039;re wasting your time esp. if you don&#039;t need an index.

You could use Sphinx if you consider that a storage engine, or you could take the FF approach http://backchannel.org/blog/friendfeed-schemaless-mysql

&lt;em&gt;What you&#039;re doing will not scale for faceted search.&lt;/em&gt;  Stop recommending it to people :)</description>
		<content:encoded><![CDATA[<p>@Arnold,</p>
<p>I don&#8217;t believe I was flaming (or even worked up), but you&#8217;re still pretty far gone and incorrect.  You would probably do better by deconstructing those values into integers and throwing them into a fulltext index.  Just use boolean mode and do +100 +51 +600, etc.</p>
<p>The only thing that bothered me is that you&#8217;re recommending people don&#8217;t serialize things in a database like it was the word of God and he thinks EAV is better.  It&#8217;s really not, and EAV indexes are barely indexes in the traditional sense.  You&#8217;re wasting your time esp. if you don&#8217;t need an index.</p>
<p>You could use Sphinx if you consider that a storage engine, or you could take the FF approach <a href="http://backchannel.org/blog/friendfeed-schemaless-mysql" rel="nofollow">http://backchannel.org/blog/friendfeed-schemaless-mysql</a></p>
<p><em>What you&#8217;re doing will not scale for faceted search.</em>  Stop recommending it to people <img src='http://www.jasny.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An alternative way of EAV modelling by Arnold Daniels</title>
		<link>http://www.jasny.net/articles/an-alternative-way-of-eav-modeling/comment-page-1/#comment-338146</link>
		<dc:creator>Arnold Daniels</dc:creator>
		<pubDate>Wed, 11 Jan 2012 01:15:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=88#comment-338146</guid>
		<description>@Jamie

First of all, I don&#039;t understand why you&#039;re all worked up and flaming on a year old article, but I&#039;ll respond anyway.

The problem space is the following. Let&#039;s say we&#039;re a hardware warehouse. We have a lot of different  products. They have some common properties like a price, but most properties that are specific to that type of hardware. For example a drill has different properties as a door, which is again different from a can of paint.

Let&#039;s say there are 1000 different kind of products, each product has got about 20 properties, which are not all unique. Still there might be something like 10.000 different properties. Creating a table with 10.000 columns is not feasible, not even it they&#039;re virtual.

If we just needed to store and display those properties, just serializing them would be a good solution. But in our case we want to filter on these properties.

If this is the main part of your project and you have the opportunity to move to a document-oriented DB, I would strongly suggest you do so. However, if this is only a small part of your project, moving everything into a doc DB, might just not be worth it. RDBMSs do have some signification advantages.

So, please take this as a given fact. We need to use an RDBMS and we need to store and filter those 10.000 different kind of properties.

A lot of people will just create a table with a varchar property field and a varchar value field. While it might work, that will indeed be very slow. Another common way is to create a table or field per type, but this also has mayor drawbacks as discussed above.

I&#039;m giving a solution where we cast any worth filtering down to an integer. So the idea is basically Java vs C. In Java a variable knows it&#039;s type, while in C a byte is just 8 bits and the meaning of those 8 bits can only be seen in context of the code. The same thing here, whether the integer represents a date, a decimal or a number, can only be seen in context of the code.

So I agree that we&#039;re abusing instead of using MySQL here. This is a very usable and relatively fast solution though. Much more that the other RDBMS alternatives.

I hope this answers your question and leaves you satisfied :)</description>
		<content:encoded><![CDATA[<p>@Jamie</p>
<p>First of all, I don&#8217;t understand why you&#8217;re all worked up and flaming on a year old article, but I&#8217;ll respond anyway.</p>
<p>The problem space is the following. Let&#8217;s say we&#8217;re a hardware warehouse. We have a lot of different  products. They have some common properties like a price, but most properties that are specific to that type of hardware. For example a drill has different properties as a door, which is again different from a can of paint.</p>
<p>Let&#8217;s say there are 1000 different kind of products, each product has got about 20 properties, which are not all unique. Still there might be something like 10.000 different properties. Creating a table with 10.000 columns is not feasible, not even it they&#8217;re virtual.</p>
<p>If we just needed to store and display those properties, just serializing them would be a good solution. But in our case we want to filter on these properties.</p>
<p>If this is the main part of your project and you have the opportunity to move to a document-oriented DB, I would strongly suggest you do so. However, if this is only a small part of your project, moving everything into a doc DB, might just not be worth it. RDBMSs do have some signification advantages.</p>
<p>So, please take this as a given fact. We need to use an RDBMS and we need to store and filter those 10.000 different kind of properties.</p>
<p>A lot of people will just create a table with a varchar property field and a varchar value field. While it might work, that will indeed be very slow. Another common way is to create a table or field per type, but this also has mayor drawbacks as discussed above.</p>
<p>I&#8217;m giving a solution where we cast any worth filtering down to an integer. So the idea is basically Java vs C. In Java a variable knows it&#8217;s type, while in C a byte is just 8 bits and the meaning of those 8 bits can only be seen in context of the code. The same thing here, whether the integer represents a date, a decimal or a number, can only be seen in context of the code.</p>
<p>So I agree that we&#8217;re abusing instead of using MySQL here. This is a very usable and relatively fast solution though. Much more that the other RDBMS alternatives.</p>
<p>I hope this answers your question and leaves you satisfied <img src='http://www.jasny.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An alternative way of EAV modelling by Jaimie Sirovich</title>
		<link>http://www.jasny.net/articles/an-alternative-way-of-eav-modeling/comment-page-1/#comment-338145</link>
		<dc:creator>Jaimie Sirovich</dc:creator>
		<pubDate>Tue, 10 Jan 2012 01:27:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=88#comment-338145</guid>
		<description>@Arnold, Oleg

I don&#039;t get your logic.  Don&#039;t use serialized fields because they&#039;re an anti-pattern, but EAV is OK because it&#039;s quasi-normalized ... but STILL an anti-pattern.

That logic is flawed.  If you don&#039;t need an index, and you&#039;re not terribly interested in atomicity and/or can update the data in place using functions within a lock, it&#039;s just dandy.  If you embed JSON manipulation functions inside a RDBMS you&#039;re fine.  Same for CSV.  I do it all the time.  It&#039;s fine.

In fact, MariaDB has VIRTUAL COLUMNS that are based in a serialized BLOB approach with options to pull it out to a column if you want it indexed.  If not, it&#039;s left as a blob.

Why does the concept of normalization/atomicity change when you go to MongoDB.  MongoDB just supports only one table and uses an imperative language instead of a declarative one.  Nothing changes.  Using MongoDB doesn&#039;t suddenly make not making values atomic correct.  The question is whether you care.  There are no Gods who will smite you.  Just make sure you know what you&#039;re doing.

If you think otherwise, you&#039;re just plain wrong.

EAV is an awful idea invented by people that have no idea what Codd meant.  It&#039;s stupid slow and won&#039;t scale.</description>
		<content:encoded><![CDATA[<p>@Arnold, Oleg</p>
<p>I don&#8217;t get your logic.  Don&#8217;t use serialized fields because they&#8217;re an anti-pattern, but EAV is OK because it&#8217;s quasi-normalized &#8230; but STILL an anti-pattern.</p>
<p>That logic is flawed.  If you don&#8217;t need an index, and you&#8217;re not terribly interested in atomicity and/or can update the data in place using functions within a lock, it&#8217;s just dandy.  If you embed JSON manipulation functions inside a RDBMS you&#8217;re fine.  Same for CSV.  I do it all the time.  It&#8217;s fine.</p>
<p>In fact, MariaDB has VIRTUAL COLUMNS that are based in a serialized BLOB approach with options to pull it out to a column if you want it indexed.  If not, it&#8217;s left as a blob.</p>
<p>Why does the concept of normalization/atomicity change when you go to MongoDB.  MongoDB just supports only one table and uses an imperative language instead of a declarative one.  Nothing changes.  Using MongoDB doesn&#8217;t suddenly make not making values atomic correct.  The question is whether you care.  There are no Gods who will smite you.  Just make sure you know what you&#8217;re doing.</p>
<p>If you think otherwise, you&#8217;re just plain wrong.</p>
<p>EAV is an awful idea invented by people that have no idea what Codd meant.  It&#8217;s stupid slow and won&#8217;t scale.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Single Sign-On for PHP (Ajax compatible) by Gowtham</title>
		<link>http://www.jasny.net/articles/simple-single-sign-on-for-php/comment-page-4/#comment-338138</link>
		<dc:creator>Gowtham</dc:creator>
		<pubDate>Wed, 14 Dec 2011 12:21:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=168#comment-338138</guid>
		<description>@&lt;a href=&quot;http://www.jasny.net/articles/simple-single-sign-on-for-php/comment-page-4/#comment-336958&quot; rel=&quot;nofollow&quot;&gt;Arnold Daniels&lt;/a&gt;: Hi Arnold I have the Same problem as Charles. Can you please Explain me wat to modify in server/sso.php as mentioned below 

&quot;But you want domain2.com to handle authentication himself you tell me. Ahh, but that’s the easy part. Instead of domain2.com having to set the username and password, just let him send the userid (or username) by modifying function login() on server/sso.php .&quot;</description>
		<content:encoded><![CDATA[<p>@<a href="http://www.jasny.net/articles/simple-single-sign-on-for-php/comment-page-4/#comment-336958" rel="nofollow">Arnold Daniels</a>: Hi Arnold I have the Same problem as Charles. Can you please Explain me wat to modify in server/sso.php as mentioned below </p>
<p>&#8220;But you want domain2.com to handle authentication himself you tell me. Ahh, but that’s the easy part. Instead of domain2.com having to set the username and password, just let him send the userid (or username) by modifying function login() on server/sso.php .&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A better token algorithm with PHP by Dino Zoff</title>
		<link>http://www.jasny.net/articles/a-better-token-algorithm-with-php/comment-page-1/#comment-338137</link>
		<dc:creator>Dino Zoff</dc:creator>
		<pubDate>Sat, 10 Dec 2011 23:45:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=45#comment-338137</guid>
		<description>@&lt;a href=&quot;http://www.jasny.net/articles/a-better-token-algorithm-with-php/comment-page-1/#comment-226759&quot; rel=&quot;nofollow&quot;&gt;pmb&lt;/a&gt;: 

FAIL.</description>
		<content:encoded><![CDATA[<p>@<a href="http://www.jasny.net/articles/a-better-token-algorithm-with-php/comment-page-1/#comment-226759" rel="nofollow">pmb</a>: </p>
<p>FAIL.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An alternative way of EAV modelling by top mistakes</title>
		<link>http://www.jasny.net/articles/an-alternative-way-of-eav-modeling/comment-page-1/#comment-338131</link>
		<dc:creator>top mistakes</dc:creator>
		<pubDate>Fri, 09 Dec 2011 08:47:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.adaniels.nl/?p=88#comment-338131</guid>
		<description>Your site is really cool to me and your topics are very relevant.  I was browsing around and came across something you might find interesting.  I was guilty of 3 of them with my sites.  &quot;99% of site owners are guilty of these five mistakes&quot;.  http://tinyurl.com/cwa3tj7 You will be suprised how simple they are to fix.</description>
		<content:encoded><![CDATA[<p>Your site is really cool to me and your topics are very relevant.  I was browsing around and came across something you might find interesting.  I was guilty of 3 of them with my sites.  &#8220;99% of site owners are guilty of these five mistakes&#8221;.  <a href="http://tinyurl.com/cwa3tj7" rel="nofollow">http://tinyurl.com/cwa3tj7</a> You will be suprised how simple they are to fix.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
