228 SMS

Click for a larger image 228SMS is a web-frontend to smssend, and was implemented as a deliverable for a course at the University of Oslo. The interface is written in PHP and it uses a MySQL as a backend. Smssend is a console-based interface to SMS-providers, which bases its compability to providers through scripts. I used Everyday as my "provider" with a script provided by Bernt.

As said above, 228SMS uses a database to store information like login, message statistics and provider information. All message sending is done by a PHP script which chooses which provider to use. This means that 228SMS can use many different providers. It is highly configurable, and is very easy to setup. It also has a polling-service that sends queued SMS'es, or tries to send messages that failed in an earlier sending. This is a cron script also written in PHP.



I have put up a demo of 228SMS. Note: You cannot send SMS in this demo - my provider stopped their SMS-service. This is only a demo of the tool itself.

228SMS Demo Username / password: admin / admin.

I get a warning message!

I have got some feedback from people having problem using 228SMS. They get the following message:

    Warning: Cannot add header information - headers already sent by (output started at \ in \ on line 58

    Warning: Cannot add header information - headers already sent by (output started at \ in \ on line 60

This is a warning message, saying it cannot set the cookies 228SMS uses for authentication since the HTML-headers are already sent to the client. I didn't think about this when I made 228SMS public - sorry about that.


The solution is pretty straight-forward if you have your own PHP-installation (you have the permission to write to the php.ini-file). Find the line saying output_buffering = Off - change this to 'On' and restart your webserver. The problem should be fixed.

If you don't have write access to this file, you either need to ask your webmaster to do this, or you will have to alter some of the code in 228SMS. Normally all cookies has to be sent (or set) before any HTML-code is returned to the client. By buffering the code serverside before sending it to the client, it is possible to set cookies wherever you want in the code. I know this isn't the most optimal solution. I'll see if I get a free moment to correct 228SMS.