SHARE infoを利用して、ユーザーが勉強風景の画像を投稿できる投稿型サイトを構築するプロジェクト



## 必要な機能とシステム


1. **ユーザー登録・ログイン機能**

2. **画像投稿機能**

3. **カテゴリー選択機能**

4. **いいねボタン機能**

5. **キーワード検索機能**

6. **投稿表示機能**

7. **管理者による投稿削除機能**

8. **管理者宛メッセージ機能**


## システムコードの概要


### 1. ユーザー登録・ログイン機能


```php

// registration.php

<?php

session_start();

require 'database.php';


if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $username = $_POST['username'];

    $password = password_hash($_POST['password'], PASSWORD_BCRYPT);


    $sql = "INSERT INTO users (username, password) VALUES (?, ?)";

    $stmt = $pdo->prepare($sql);

    $stmt->execute([$username, $password]);


    $_SESSION['username'] = $username;

    header("Location: index.php");

}

?>


<form method="POST" action="registration.php">

    <input type="text" name="username" required>

    <input type="password" name="password" required>

    <button type="submit">Register</button>

</form>

```


### 2. 画像投稿機能


```php

// upload.php

<?php

session_start();

require 'database.php';


if (!isset($_SESSION['username'])) {

    header("Location: login.php");

    exit();

}


if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["image"])) {

    $image = $_FILES["image"]["name"];

    $category = $_POST['category'];

    $message = $_POST['message'];

    $target = "uploads/" . basename($image);


    move_uploaded_file($_FILES["image"]["tmp_name"], $target);


    $sql = "INSERT INTO posts (username, image, category, message) VALUES (?, ?, ?, ?)";

    $stmt = $pdo->prepare($sql);

    $stmt->execute([$_SESSION['username'], $image, $category, $message]);


ここから先は

3,561字

¥ 1,500

この記事が気に入ったらチップで応援してみませんか?