Safari and b2 = not good kind
Like an obident little geek, I immediately downloaded Apple’s new Safari as soon as I got home today. Just as advertised, it is super blazing fast, and does render all the sites I tried with it correctly. (well, except for dive into mark but he’ll probably have it fixed by the time you read this.) I’m pretty impressed with the rendering engine, pages come right up, look nice, and fluidly relayout as I stretch and shrink the browser window, just like those first few demos of Raptor before they went and coded the whole GUI in HTML and JavaScript or whatever. Overall the application feels really solid and responsive.
But, as I went to make my obligatory “THIS WAS POSTED USING SAFARI” post, I found that it wouldn’t let me log in to b2! It seems the problem is with cookies. After a successful login, the b2 login page sets some cookies for your username and a hash of your password and then redirects you around to the edit page. Safari gets the path wrong on those cookies (/steve/weblog/b2login.php instead of /steve/weblog/), and doesn’t send them back when it requests the edit page, which says “dude, you need to like, log in, or whatever” and redirects you back around to the login page. Too bad.
The other problem with Safari is there’s no tabbed browsing. I’ll never be able to use a non-tabbed browser again, I don’t think.
REPLY))
I\’m not sure I get the whole tabbed browsing thing. So I am not bothered that Safari doesn\’t support it. However, I have a little work to do on Minutillo.info security. Safari and the site cookies don\’t seem to cooperating either, so you cannot post stories with Safari. However, I can post this comment with Safari.
One other minor formating issue I have to fix (the +/- buttons width is off).
REPLY))
Here\’s the problem with cookies in Safari.
My weblog login page is at /steve/weblog/login.php. When you successfully log in, it sets a cookie to let the rest of the pages know that login was successful. It does not explicity set a path on that cookie though, so the cookie path is set to the current path. The browser is supposed to (according to the RFC even) chop off everything in that path after the final slash, changing it to /steve/weblog/. That means the cookie will be sent back to every URL on minutillo.com that starts with /steve/weblog/. Safari doesn\’t do that critical chopping thing, it just takes the path of the cookie to be exactly /steve/weblog/login.php, and only sends the cookie back for pages that start with that. The rest of the pages in b2 don\’t start with that, so they think you haven\’t logged in yet. minutillo.info is probably having the same problem.
You can work around this bug in Safari by explicitly setting paths on your cookies.
Now, tabbed browsing. By default, in Mozilla, it isn\’t really that useful. What you have to do is turn on the feature that lets you click on links and open them in background tabs. So if you\’re on Slashdot, and you\’re browsing down through the stories, and see that the third and fifth stories are interesting, you can middle-click (or on a mac apple-click) and the links open in tabs BEHIND your current window. Then later, when you\’re done with the front page, you can close it, and then read each subpage that has been waiting patiently in a tab. It sort of lets you start a side browsing path, without interrupting your reading of the current page. This comes in handy a million ways.
REPLY))
I\’m going to try the tabbed browsing thing. Meanwhile, because I do everything Mr. Jobs tells me to I have made Safari my main browser. So, tonight I will try to fix minutillo.info to work around the bug.
REPLY))
Thanks for the help. I fixed Minutillo.info (just found the object that creates cookies and added the path as you suggested).
REPLY))
For those interested in doing a fix, here\’s the details: open up b2login.php and add \”,dirname($PHP_SELF)\” after \”31536000\” on lines 133,135,137, and 140.
So for example, line 135 would change from:
setcookie(\”cafeloguser\”,$user_login,time()+31536000);
to:
setcookie(\”cafeloguser\”,$user_login,time()+31536000,dirname($PHP_SELF));
Good luck.
REPLY))
good site oamunc