Simple PHP Script to Send Email with Mail()


There are three requirements for sending email through a PHP script: A form, an email processing script, and PHP’s mail() function to be enabled (most hosts have this enabled, but some shared hosts don’t).

Place this inside a file called mail.html

[ad name=”In Post”]
The email processing script should be inside a file called mail.php:

if(!isset($_POST['receiver'], $_POST['sender'], $_POST['subject'], $_POST['message'])) die("Error sending email"); // check if the page is tried to be accessed directly (e.g. a hacking attempt)

$to = $_POST['receiver'];
$from = $_POST['sender'];
$subject = $_POST['subject'];
$message = $_POST['message'];

$headers = "From: " . $from . "rn" .
    "Reply-To: " . $from . "rn" .
    "X-Mailer: PHP/" . phpversion();

$send = mail($to, $subject, $message, $headers);

You should take into account that this is the simplest form of the email sending script. Security measures have not been implemented, such as email validation, message filtering for harmful code (e.g. javascript injection). If you are going to use this script for a fairly popular project, I recommend that you implement some variable validation and even a captcha to avoid spam. If there is enough interest, I could make some more tutorials on those in the future.

How to Create a PHP Redirect?


Sometimes you want to hide an affiliate link, sometimes you may want to log each downloads of a file or just redirect the user to a site through your script. This is where PHP redirection comes handy.

The syntax is as follow:


[ad name=”In Post”]
Just replace the URL with the page you want the user to be redirected to. The die() function is to make sure that the script ends execution if the redirection function failed for some reason.

Note: The word “Location” in the script must always start with a capital first letter. Otherwise, some older browsers might now follow the redirection.

If you want more info on PHP’s header function check out the W3School’s reference page.

Download Remote File Using CURL and PHP

Sometimes you need to download URL’s contents using the CURL library, included inside PHP (e.g if you want to use a web-based API, provided by service like TinyURL, Digg, Twitter). It’s actually very simple and faster to use than other methods of downloading remote file like the file(), file_get_contents() or fsockopen().

Also, CURL is very customizeable. You can POST data to the downloaded URL, simulate user-agent (browser) or other headers. The simplest version of a PHP function to retrieve file’s contents using PHP’s CURL is below:

function getfile($url)
	$ch = curl_init();
	$downloaded = curl_exec($ch);
	return $downloaded;
        // More great PHP snippets at

After you include the function in your file, you can simply call it like that:

$contents = getfile("")

And the $content variable will now have this blog’s RSS feed.

PHP Script to Show Visitor’s IP Address

Old Globe

Sometimes you want to get the visitor’s IP address (e.g to show it to him or for logging purposes). This simple snippet does the job:


Also, if you have REGISTER_GLOBALS turned on on your server, you can use the shorter version:

$ip = @$REMOTE_ADDR;

Then you can easily use the variable called $ip for your needs.
[ad name=”In Post”]

Top Online IDEs to Test Your PHP Code

Sometimes you don’t have an Apache server on your PC and you don’t want to go through the hassle of uploading your PHP script to your web hosting space just to test if your tweaks inside the code work. Sometimes you just need to paste the code inside the IDE (Integrated Development Environment) and see the result, including potential errors and suggestions to fix them. Also, the ability to work with languages other than PHP is a plus.

1. CodeRun Studio

Full featured programming IDE. Supports a C#/.NET, PHP, Javascript, HTML and CSS. You can work with projects and multiple files simultaniuously. You can also upload your existing project and edit it online. You are also given a link to share your projects online.
[ad name=”In Post (LU)”]
2. Codepad

Plain and simple. Supports about 13 programming languages including C/C++, Perl, Ruby and more. After pasting a code the user is given an unique URL that can be shared with other people, so they can see the result too. You can make the code private if you are concerned about privacy. No registration required.


The functionality is close to Codepad. Supports more than 40 programming languages. There is an optional registration if you want to manage your submitted scripts.

Convert Text to Barcode Image

Thanks to a skilled PHP programmer, the internet has a ready made PHP script that takes a text string and returns an image representation in barcode format.

Here’s the complete script:

=1 to enable

        NOTE: You must have GD-1.8 or higher compiled into PHP
        in order to use PNG and JPEG. GIF images only work with
        GD-1.5 and lower. (

        ANOTHER NOTE: If you actually intend to print the barcodes 
        and scan them with a scanner, I highly recommend choosing 
        JPEG with a quality of 100. Most browsers can't seem to print 
        a PNG without mangling it beyond recognition. 




// Startup code

if(isset($_GET["text"])) $text=$_GET["text"];
if(isset($_GET["format"])) $format=$_GET["format"];
if(isset($_GET["quality"])) $quality=$_GET["quality"];
if(isset($_GET["width"])) $width=$_GET["width"];
if(isset($_GET["height"])) $height=$_GET["height"];
if(isset($_GET["type"])) $type=$_GET["type"];
if(isset($_GET["barcode"])) $barcode=$_GET["barcode"];

if (!isset ($text)) $text = 1;
if (!isset ($type)) $type = 1;
if (empty ($quality)) $quality = 100;
if (empty ($width)) $width = 160;
if (empty ($height)) $height = 80;
if (!empty ($format)) $format = strtoupper ($format);
        else $format="PNG";

switch ($type)
                $type = 1;
        case 1:
                Barcode39 ($barcode, $width, $height, $quality, $format, $text);

// Generate a Code 3 of 9 barcode
function Barcode39 ($barcode, $width, $height, $quality, $format, $text)
        switch ($format)
                        $format = "JPEG";
                case "JPEG": 
                        header ("Content-type: image/jpeg");
                case "PNG":
                        header ("Content-type: image/png");
                case "GIF":
                        header ("Content-type: image/gif");

        $im = ImageCreate ($width, $height)
    or die ("Cannot Initialize new GD image stream");
        $White = ImageColorAllocate ($im, 255, 255, 255);
        $Black = ImageColorAllocate ($im, 0, 0, 0);
        //ImageColorTransparent ($im, $White);
        ImageInterLace ($im, 1);

        $NarrowRatio = 20;
        $WideRatio = 55;
        $QuietRatio = 35;

        $nChars = (strlen($barcode)+2) * ((6 * $NarrowRatio) + (3 * $WideRatio) + ($QuietRatio));
        $Pixels = $width / $nChars;
        $NarrowBar = (int)(20 * $Pixels);
        $WideBar = (int)(55 * $Pixels);
        $QuietBar = (int)(35 * $Pixels);

        $ActualWidth = (($NarrowBar * 6) + ($WideBar*3) + $QuietBar) * (strlen ($barcode)+2);
        if (($NarrowBar == 0) || ($NarrowBar == $WideBar) || ($NarrowBar == $QuietBar) || ($WideBar == 0) || ($WideBar == $QuietBar) || ($QuietBar == 0))
                ImageString ($im, 1, 0, 0, "Image is too small!", $Black);
                OutputImage ($im, $format, $quality);
        $CurrentBarX = (int)(($width - $ActualWidth) / 2);
        $Color = $White;
        $BarcodeFull = "*".strtoupper ($barcode)."*";
        settype ($BarcodeFull, "string");
        $FontNum = 3;
        $FontHeight = ImageFontHeight ($FontNum);
        $FontWidth = ImageFontWidth ($FontNum);
        if ($text != 0)
                $CenterLoc = (int)(($width-1) / 2) - (int)(($FontWidth * strlen($BarcodeFull)) / 2);
                ImageString ($im, $FontNum, $CenterLoc, $height-$FontHeight, "$BarcodeFull", $Black);

        for ($i=0; $i<strlen($BarcodeFull); $i++)
                $StripeCode = Code39 ($BarcodeFull[$i]);

                for ($n=0; $n