Not much to write about, but some good work got squeezed in today. First, I was able to transition over to mysqli, which turned out to be nearly painless. I’ve been working on a thin layer that’s admittedly got some security holes, but that’s not what I’m trying to work through and the data’s junk anyway.
So to get use out of all this stuff, I need to have everything run on a server. I use Dreamhost, who I like a lot and have been with for years, and they give you PHP and mysql out of the box. So today was the day to try and take all the pieces that I have gotten working on my dev machine and migrate them to a place that people can access. It did mean getting familiar with SSH and PuTTY all over again though.
The first step was creating a database. Since I’m on a shared server, that’s not as simple as when you own the instance, but Dreamhost has a dashboard that makes this pretty reasonable. It does take time though for everything to trickle through though. Once it was up and running I created a new copy of the same old table I’ve been using for my tests and populated it with the same old data.
Once that was done I fired up WinSCP and copied the files over, changed the config file and tried running the php script on the command line. Imagine my surprise when everything ran right the first time. And then compound that again when the web page worked as well. And both of those files had no changes. Repeat after me:
“Configuration files are wonderful”
“Relative addressing is also”
Anyway, here it is in all its glory: io2.html.
The next part is handling the submission of data to the db, which is making me a bit nervous about sql injection. I may just use the YUI Escape object to modify the string so it isn’t dangerous. Nope, that won’t work, but we can use blobs. Here’s how (from here):
/** * update the files table with the new blob from the file specified * by the filepath * @param int $id * @param string $filePath * @param string $mime * @return boolean */ function updateBlob($id,$filePath,$mime) { $blob = fopen($filePath,'rb'); $sql = "UPDATE files SET mime = :mime, data = :data WHERE id = :id"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':mime',$mime); $stmt->bindParam(':data',$blob,PDO::PARAM_LOB); $stmt->bindParam(':id',$id); return $stmt->execute(); }
On a related note, I wonder how many of our actions can be stereotyped in a way that can be detected in the browser?