February 7th, 2007

myword, thoughtful, omg

OpenID Woes

I've been trying to set up some fun and nifty things for some communities I manage, and my plans include getting OpenID to work. But for some reason, some LJ names work and some LJ names don't. And it seems that they'll work on PHP 4.4.4, but not PHP 5.2.0. I'm using version 1.2.1 of this PHP OpenID library . Has anybody else ever tried to get OpenID working on a site with LJ and run into this problem?

Edit: Problem found? omnifarious is all kinds of observant and clever. It looks like opening and closing script tags in front of the OpenID server and Yadis links make the parser the Yadis library uses choke--I can replicate this by turning the NavStrip to show all, which puts JS before those links in my journal and makes it fail for my journal. But when I turn it off, it works again. This pattern is holding so far for all of the journals that have trouble.

Double edit: _arty has SAVED me! It looks like increasing the pcre.recursion_limit and pcre.backtrack_limit does the trick and fixes the problem!

Triple edit: I was wrong about the previous--some of the journals were still erroring out, and I wasn't entirely comfortable with raising those limits anyway, so I rolled up my sleeves and got my hands a bit dirty. I think I might have found two gotchas in the ParseHTML.php file in the Yadis library. After I make those changes, all the journals that had previously errored out start working again.

Collapse )

So if anybody has run into this before and knows how to fix it, or has an OpenID implementation that works with the above mentioned names in PHP 5.2.0 I could sneak hintful peeks at, I'd really love to know!