Category: Projects

  • Simple Blog System

    Database (blogdb):

    CREATE DATABASE blogdb;
    USE blogdb;
    
    CREATE TABLE posts (
      id INT AUTO_INCREMENT PRIMARY KEY,
      title VARCHAR(255),
      content TEXT
    );
    

    Add Post (add.php):

    <?php
    $conn = new mysqli("localhost", "root", "", "blogdb");
    
    if($_SERVER["REQUEST_METHOD"] == "POST"){
    
    $title = $_POST&#91;'title'];
    $content = $_POST&#91;'content'];
    $sql = "INSERT INTO posts (title, content) VALUES ('$title', '$content')";
    $conn-&gt;query($sql);
    header("Location: index.php");
    } ?> <form method="post"> Title: <input type="text" name="title" required><br> Content:<br> <textarea name="content" required></textarea><br> <input type="submit" value="Add Post"> </form>

    Show Posts (index.php):

    <?php
    $conn = new mysqli("localhost", "root", "", "blogdb");
    $result = $conn->query("SELECT * FROM posts");
    
    while($row = $result->fetch_assoc()){
    
    echo "&lt;h2&gt;".$row&#91;'title']."&lt;/h2&gt;";
    echo "&lt;p&gt;".$row&#91;'content']."&lt;/p&gt;";
    echo "&lt;a href='edit.php?id=".$row&#91;'id']."'&gt;Edit&lt;/a&gt; | ";
    echo "&lt;a href='delete.php?id=".$row&#91;'id']."'&gt;Delete&lt;/a&gt;&lt;hr&gt;";
    } ?> <a href="add.php">Add New Post</a>

    Edit Post (edit.php):

    <?php
    $conn = new mysqli("localhost", "root", "", "blogdb");
    
    if(isset($_GET['id'])){
    
    $id = $_GET&#91;'id'];
    $post = $conn-&gt;query("SELECT * FROM posts WHERE id=$id")-&gt;fetch_assoc();
    } if($_SERVER["REQUEST_METHOD"] == "POST"){
    $title = $_POST&#91;'title'];
    $content = $_POST&#91;'content'];
    $id = $_POST&#91;'id'];
    $conn-&gt;query("UPDATE posts SET title='$title', content='$content' WHERE id=$id");
    header("Location: index.php");
    } ?> <form method="post"> <input type="hidden" name="id" value="<?php echo $post['id']; ?>"> Title: <input type="text" name="title" value="<?php echo $post['title']; ?>" required><br> Content:<br> <textarea name="content" required><?php echo $post['content']; ?></textarea><br> <input type="submit" value="Update Post"> </form>

    Delete Post (delete.php):

    <?php
    $conn = new mysqli("localhost", "root", "", "blogdb");
    if(isset($_GET['id'])){
    
    $id = $_GET&#91;'id'];
    $conn-&gt;query("DELETE FROM posts WHERE id=$id");
    } header("Location: index.php"); ?>

    Explanation:

    • A CRUD project (Create, Read, Update, Delete).
    • Blog posts stored in MySQL.
    • Admin can manage posts.
  • User Login & Registration

    Database Structure (MySQL):

    CREATE DATABASE userdb;
    USE userdb;
    
    CREATE TABLE users (
      id INT AUTO_INCREMENT PRIMARY KEY,
      username VARCHAR(50) UNIQUE,
      password VARCHAR(255)
    );
    

    Registration (register.php):

    <?php
    $conn = new mysqli("localhost", "root", "", "userdb");
    
    if($_SERVER["REQUEST_METHOD"] == "POST"){
    
    $username = $_POST&#91;'username'];
    $password = password_hash($_POST&#91;'password'], PASSWORD_DEFAULT);
    $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
    if($conn-&gt;query($sql)) {
        echo "Registration successful! &lt;a href='login.php'&gt;Login&lt;/a&gt;";
    } else {
        echo "Error: " . $conn-&gt;error;
    }
    } ?> <form method="post"> Username: <input type="text" name="username" required><br> Password: <input type="password" name="password" required><br> <input type="submit" value="Register"> </form>

    Login (login.php):

    <?php
    session_start();
    $conn = new mysqli("localhost", "root", "", "userdb");
    
    if($_SERVER["REQUEST_METHOD"] == "POST"){
    
    $username = $_POST&#91;'username'];
    $password = $_POST&#91;'password'];
    $sql = "SELECT * FROM users WHERE username='$username'";
    $result = $conn-&gt;query($sql);
    if($result-&gt;num_rows &gt; 0){
        $row = $result-&gt;fetch_assoc();
        if(password_verify($password, $row&#91;'password'])){
            $_SESSION&#91;'user'] = $username;
            echo "Login successful! &lt;a href='dashboard.php'&gt;Go to Dashboard&lt;/a&gt;";
        } else {
            echo "Invalid password!";
        }
    } else {
        echo "User not found!";
    }
    } ?> <form method="post"> Username: <input type="text" name="username" required><br> Password: <input type="password" name="password" required><br> <input type="submit" value="Login"> </form>

    Dashboard (dashboard.php):

    <?php
    session_start();
    if(!isset($_SESSION['user'])) {
    
    die("Access denied. &lt;a href='login.php'&gt;Login&lt;/a&gt;");
    } echo "Welcome, " . $_SESSION['user']; echo " | <a href='logout.php'>Logout</a>"; ?>

    Logout (logout.php):

    <?php
    session_start();
    session_destroy();
    echo "Logged out! <a href='login.php'>Login again</a>";
    ?>
    

    Explanation:

    • User registers → data stored in MySQL database.
    • Passwords stored with hashing (password_hash).
    • User logs in → sessions keep track of login state.
  • To-Do List App

    Code:

    <?php
    session_start();
    
    // Add task
    if(isset($_POST['task']) && $_POST['task'] != '') {
    
    $_SESSION&#91;'tasks']&#91;] = $_POST&#91;'task'];
    } // Delete task if(isset($_GET['delete'])) {
    unset($_SESSION&#91;'tasks']&#91;$_GET&#91;'delete']]);
    } ?> <form method="post"> <input type="text" name="task" placeholder="Enter task" required> <input type="submit" value="Add Task"> </form> <h3>To-Do List</h3> <ul> <?php if(isset($_SESSION['tasks'])) {
    foreach($_SESSION&#91;'tasks'] as $key =&gt; $task) {
        echo "&lt;li&gt;$task &lt;a href='?delete=$key'&gt;Delete&lt;/a&gt;&lt;/li&gt;";
    }
    } ?> </ul>

    Explanation:

    • Tasks are stored inside a session array.
    • You can add new tasks and delete them.
    • No database needed for this version.
  • Image Upload System

    Features:

    • Users upload profile pictures.
    • PHP checks file type/size.
    • Stores image in /uploads folder.
    <?php
    if(isset($_FILES['file'])){
    
    $target = "uploads/" . basename($_FILES&#91;'file']&#91;'name']);
    if(move_uploaded_file($_FILES&#91;'file']&#91;'tmp_name'], $target)){
        echo "File uploaded!";
    } else {
        echo "Upload failed!";
    }
    } ?> <form method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="Upload"> </form>
  • Simple Calculator

    Features:

    • User inputs two numbers and selects an operation (+ - * /).
    • PHP processes and returns the result.
    <form method="post">
      <input type="number" name="num1" required>
      <input type="number" name="num2" required>
      <select name="operation">
    
    &lt;option value="add"&gt;+&lt;/option&gt;
    &lt;option value="sub"&gt;-&lt;/option&gt;
    &lt;option value="mul"&gt;*&lt;/option&gt;
    &lt;option value="div"&gt;/&lt;/option&gt;
    </select> <input type="submit" name="calculate" value="Calculate"> </form> <?php if(isset($_POST['calculate'])) { $num1 = $_POST['num1']; $num2 = $_POST['num2']; switch($_POST['operation']) {
    case "add": echo $num1 + $num2; break;
    case "sub": echo $num1 - $num2; break;
    case "mul": echo $num1 * $num2; break;
    case "div": echo $num1 / $num2; break;
    } } ?>