+1 (315) 557-6473 

How to Create a URL Shortener Service in PHP and MySQL

In this comprehensive guide, we will walk you through the process of building your own URL shortener service using PHP and MySQL. URL shorteners are essential tools that transform lengthy and cumbersome URLs into concise, user-friendly links. Whether you want to share links on social media, track click-through rates, or simply make your web addresses more manageable, our step-by-step instructions will empower you to create a fully functional URL shortener from scratch.

Crafting a Custom URL Shortener

Explore how to create a URL shortener service in PHP and MySQL, and unlock the potential of streamlining your web links. Our step-by-step guide provides the insights you need to build this indispensable tool for link management and optimization. If you require additional assistance or want to focus on your PHP assignment, our team of experts is readily available to help you write your PHP assignment and ensure your success in web development and programming tasks. Let us simplify your journey to effective URL management and PHP excellence.


Before we begin, ensure you have the following prerequisites in place:

  1. Web Hosting Environment: Access to a web server with PHP and MySQL support is required. Many web hosting providers offer these services.
  2. Database Setup: Create a MySQL database to store the URL mappings. This can be done using tools like phpMyAdmin or by executing SQL queries.
```sql CREATE TABLE url_shortener ( id INT AUTO_INCREMENT PRIMARY KEY, long_url TEXT NOT NULL, short_code VARCHAR(10) NOT NULL UNIQUE ); ```

This table will be used to store long URLs and their corresponding short codes.

Step 1: Create the HTML Form

Begin by creating an HTML form that allows users to submit the long URLs they wish to shorten. Create a file named `index.html` and include the following content:

```html < !DOCTYPE html > < htm l> < head > < title >URL Shortener< /title > < /head > < body > < h1 >URL Shortener< /h1 > < form action="shorten.php" method="post" > < input type="url" name="long_url" placeholder="Enter URL" required > < input type="submit" value="Shorten" > < /form > < /body > < /htm l> ```

This form will serve as the interface through which users submit URLs for shortening, directing them to our PHP script for processing.

Step 2: Shorten URL (shorten.php)

In the second step, create a PHP script named `shorten.php` to handle form submissions and interact with the database. Below is the code for `shorten.php`, along with explanations:

```php connect_error) { die("Database connection failed: " . $db->connect_error); } // Handle the form submission if ($_SERVER["REQUEST_METHOD"] === "POST") { $long_url = $_POST["long_url"]; // Generate a unique short code $short_code = generateShortCode(); // Insert the URL into the database $sql = "INSERT INTO url_shortener (long_url, short_code) VALUES (?, ?)"; $stmt = $db->prepare($sql); $stmt->bind_param("ss", $long_url, $short_code); if ($stmt->execute()) { $short_url = "http://your_domain.com/$short_code"; echo "Shortened URL: < a href=" $short_url " target="_blank ">$short_url< /a >"; } else { echo "Error: " . $stmt->error; } $stmt->close(); } // Function to generate a unique short code function generateShortCode() { $characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; $short_code = ""; $length = 6; // You can adjust the length of the short code as needed for ($i = 0; $i < $length; $i++) { $randomIndex = rand(0, strlen($characters) - 1); $short_code .= $characters[$randomIndex]; } return $short_code; } ?> ```

This PHP script performs the following tasks:

  • Establishes a connection to the MySQL database.
  • Manages the form submission process, generating a unique short code, and inserting the URL into the database.
  • Displays the shortened URL to the user upon successful processing.

Step 3: Redirect from Short Code to Long URL

In the third step, create another PHP script named `redirect.php` to handle the redirection from a short code to the original long URL:

```php connect_error) { die("Database connection failed: " . $db->connect_error); } // Get the short code from the URL $short_code = $_GET["code"]; // Lookup the long URL in the database $sql = "SELECT long_url FROM url_shortener WHERE short_code = ?"; $stmt = $db->prepare($sql); $stmt->bind_param("s", $short_code); $stmt->execute(); $stmt->bind_result($long_url); if ($stmt->fetch()) { // Redirect to the long URL header("Location: $long_url"); exit(); } else { echo "Short URL not found."; } $stmt->close(); ?> ```

Step 4: Testing

With all components in place, it's time to put your URL shortener service to the test. Simply access `index.html` on your website, input a long URL, and receive your shortened link with just a click.

Feel free to enhance and customize your URL shortener service further, adding features such as URL expiration, comprehensive analytics, or refining the URL generation algorithm for even shorter codes. Additionally, consider implementing essential security measures like rate limiting and input validation to safeguard your service against misuse.


That concludes our comprehensive guide on creating a URL shortener service using PHP and MySQL. You've now built your very own URL shortener—a powerful tool for simplifying and sharing links with ease! With the ability to track link performance, enhance user experience, and promote your online presence, your newly created URL shortener opens up a world of possibilities for optimizing your web interactions and harnessing the full potential of your URLs.