Language – PHP
Friendly Urls
Why did I suddenly decide to create friendly Urls for AuthWare. I must tell the truth – I never really intended to. There was a stage at which I wanted to restructure it to utilise Apaches mod_rewrite
.
I’ve always had this thing for not comprehending regular expressions. In fact I hardly ever use them except for my html to xhtml converter (I think the function is called html_2_xhtml()
).
The only stuff this function hasn’t been able to do is exclude specific tags. I’m a very stubborn coder – which means I don’t look at others’ work until I’m convinced I’m stumped – or until I come up with mine.
Speaking of mod_rewrite
, I realised it would never work out – I have both IIS and Apache on my machine and I’ve configured both to run PHP. There are some users that use Windows out there and there was no way I could see them being excluded from using my system – because IIS obviously doesn’t support rewriting except you use some third-party tool. I then remembered trying to browse some web pages and adding slashes at the end – just some idleness on my part. Was there a way to get it out? Yes, I discovered – by using $_SERVER['PATH_INFO']
. I converted the ampersands (&) to slashes as well as the “?“. I created an array $temp_array
by splitting – using explode()
.
I then created a new blank array – let’s call it $_get
. For every even index x in $temp_array
, I looped through $temp_array
, adding an array member to $_get
with key $temp_array[x]
and value $temp_array[x+1]
. Then I array_merge()
d $_get
and $_GET
.
Bug List
After using that method, I discovered that my sessions were being set wrongly whenever I turned friendly urls on. The PHPSESSID
was being set wrongly. No secure information is stored in the sessions – just the current page so that AuthWare remembers the last page you were viewing when you log out. For example, for index.php/mode/cat/action/viewsub/id/1
, the cookie path is index.php/mode/cat/action/viewsub/id/1
which isn’t what I had in mind. I guess I have two options
- Save everything in a MySQL database but that just increases traffic or
- Find some way of extracting the real path of the script and then setting a cookie each time.
Linux Issues
Linux servers have a different way of interpreting $_SERVER[‘PATH_INFO’] as I found out after uploading and running phpinfo()
when my friendly urls wouldn’t work. I had to insert a check and strip $_SERVER["SCRIPT_NAME"]
from $_SERVER["REQUEST_URI"]
. It’s currently running as expected.