To create this PHP web application, follow these steps:

1. Set up the environment:
   - Install a web server (e.g., Apache) and PHP on your local machine.
   - Install PostgreSQL and create a new database for the project.

2. Create the necessary tables in the PostgreSQL database:
   - Users table: id (primary key), email (unique), password
   - Movies table: id (primary key), user_id (foreign key referencing users.id), title

3. Create a config.php file to store the database connection details:

```php
<?php
$host = "localhost";
$dbname = "your_database_name";
$user = "your_username";
$password = "your_password";

try {
    $conn = new PDO("pgsql:host=$host;dbname=$dbname", $user, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>
```

4. Create a registration form (register.php):

```php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Register</title>
</head>
<body>
    <h1>Register</h1>
    <form action="register_process.php" method="post">
        <label>Email:</label>
        <input type="email" name="email" required><br>
        <label>Password:</label>
        <input type="password" name="password" required><br>
        <button type="submit">Register</button>
    </form>
</body>
</html>
```

5. Create a script to process the registration form (register_process.php):

```php
<?php
require_once 'config.php';

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

$sql = "INSERT INTO users (email, password) VALUES (:email, :password)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':password', $password);

try {
    $stmt->execute();
    header("Location: login.php");
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>
```

6. Create a login form (login.php):

```php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <h1>Login</h1>
    <form action="login_process.php" method="post">
        <label>Email:</label>
        <input type="email" name="email" required><br>
        <label>Password:</label>
        <input type="password" name="password" required><br>
        <button type="submit">Login</button>
    </form>
</body>
</html>
```

7. Create a script to process the login form (login_process.php):

```php
<?php
session_start();
require_once 'config.php';

$email = $_POST['email'];
$password = $_POST['password'];

$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':email', $email);
$stmt->execute();

if ($stmt->rowCount() > 0) {
    $user = $stmt->fetch(PDO::FETCH_ASSOC);
    if (password_verify($password, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
        header("Location: dashboard.php");
    } else {
        echo "Invalid password.";
    }
} else {
    echo "User not found.";
}
?>
```

8. Create a dashboard to display the user's favorite movies (dashboard.php):

```php
<?php
session_start();
require_once 'config.php';

if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
}

$user_id = $_SESSION['user_id'];

$sql = "SELECT * FROM users WHERE id = :user_id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);

$sql = "SELECT * FROM movies WHERE user_id = :user_id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
$movies = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Dashboard</title>
</head>
<body>
    <h1>Welcome, <?php echo htmlspecialchars($user['email']); ?>!</h1>
    <h2>Your Favorite Movies:</h2>
    <ul>
        <?php foreach ($movies as $movie): ?>
            <li><?php echo htmlspecialchars($movie['title']); ?></li>
        <?php endforeach; ?>
    </ul>

    <!-- Add code for adding, editing, and deleting movies here -->

    <a href="logout.php">Logout</a>
</body>
</html>
```

9. Create a script to log out the user (logout.php):

```php
<?php
session_start();
session_destroy();
header("Location: login.php");
?>
```

10. Implement functionality for adding, editing, and deleting movies in the dashboard.

This is a basic implementation of a PHP web application that allows users to register, log in, and manage their favorite movies. You can further improve the application by adding input validation, error handling, and styling with CSS.
이 PHP 웹 애플리케이션을 생성하려면 다음 단계를 따르십시오.

1. 환경 설정 :
 - 로컬 컴퓨터에 웹 서버(예: Apache) 및 PHP 설치 :
 - PostgreSQL을 설치하고 프로젝트용 새 데이터베이스를 생성합니다.

2. PostgreSQL 데이터베이스에 필요한 테이블을 생성합니다.
 - 사용자 테이블: id(기본 키), email(고유), password
 - 동영상 테이블: id(기본 키), user_id(users.id를 참조하는 외래 키), title

3. 데이터베이스 연결 세부 정보를 저장할 config.php 파일을 생성합니다:

```php
<?php
$host = "localhost";
$dbname = "your_database_name";
$user = "your_username";
$password = "your_password";

try {
    $conn = new PDO("pgsql:host=$host;dbname=$dbname", $user, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>
```

4. 등록 양식(register.php)을 생성합니다:

```php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Register</title>
</head>
<body>
    <h1>Register</h1>
    <form action="register_process.php" method="post">
        <label>Email:</label>
        <input type="email" name="email" required><br>
        <label>Password:</label>
        <input type="password" name="password" required><br>
        <button type="submit">Register</button>
    </form>
</body>
</html>
```

5. 등록 양식을 처리하는 스크립트(register_process.php)를 생성합니다:

```php
<?php
require_once 'config.php';

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

$sql = "INSERT INTO users (email, password) VALUES (:email, :password)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':password', $password);

try {
    $stmt->execute();
    header("Location: login.php");
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>
```

6. 로그인 양식(login.php)을 생성합니다:

```php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <h1>Login</h1>
    <form action="login_process.php" method="post">
        <label>Email:</label>
        <input type="email" name="email" required><br>
        <label>Password:</label>
        <input type="password" name="password" required><br>
        <button type="submit">Login</button>
    </form>
</body>
</html>
```

7. 로그인 양식을 처리하는 스크립트(login_process.php)를 생성합니다:

```php
<?php
session_start();
require_once 'config.php';

$email = $_POST['email'];
$password = $_POST['password'];

$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':email', $email);
$stmt->execute();

if ($stmt->rowCount() > 0) {
    $user = $stmt->fetch(PDO::FETCH_ASSOC);
    if (password_verify($password, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
        header("Location: dashboard.php");
    } else {
        echo "Invalid password.";
    }
} else {
    echo "User not found.";
}
?>
```

8. 사용자가 좋아하는 영화를 표시하는 대시보드를 생성합니다(dashboard.php):

```php
<?php
session_start();
require_once 'config.php';

if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
}

$user_id = $_SESSION['user_id'];

$sql = "SELECT * FROM users WHERE id = :user_id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);

$sql = "SELECT * FROM movies WHERE user_id = :user_id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
$movies = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Dashboard</title>
</head>
<body>
    <h1>Welcome, <?php echo htmlspecialchars($user['email']); ?>!</h1>
    <h2>Your Favorite Movies:</h2>
    <ul>
        <?php foreach ($movies as $movie): ?>
            <li><?php echo htmlspecialchars($movie['title']); ?></li>
        <?php endforeach; ?>
    </ul>

    <!-- Add code for adding, editing, and deleting movies here -->

    <a href="logout.php">Logout</a>
</body>
</html>
```

9. 사용자 로그아웃을 위한 스크립트(logout.php)를 생성합니다:

```php
<?php
session_start();
session_destroy();
header("Location: login.php");
?>
```

10. 대시보드에서 동영상을 추가, 편집 및 삭제하는 기능을 구현합니다.

이것은 사용자가 좋아하는 동영상을 등록, 로그인 및 관리할 수 있는 PHP 웹 애플리케이션의 기본 구현입니다. 입력 유효성 검사, 오류 처리 및 CSS를 사용한 스타일링을 추가하여 애플리케이션을 더욱 개선할 수 있습니다.