티스토리 뷰

다음 코드는 비밀번호를 변경하는 코드입니다.

게시판 전체 코드는 https://github.com/dhffll/php-Mysql-Board 깃허브에서 확인할 수 있습니다.

 

change_info.php (비밀번호 변경 폼)

<?php 
    include 'header.php';
?>
    <form action="change_info2.php" method="POST">
        <p><input type="password" name="pw" id='pw' placeholder="password"></p>
        <p><input type="password" name="new_pw" id="new_pw" placeholder="new password"></p>
        <p><input type="password" name="new_pw2" id="new_pw2" placeholder="new password confirm"></p>
        <p><input type="submit" value="change"></p>
    </form>

<?php 
    include 'footer.php';
?>

 

change_info2.php

<?php
    include 'mysql.php';

    session_start();
    
    $filtered=[
        'pw' => mysqli_real_escape_string($con,$_POST['pw']),
        'new_pw' => mysqli_real_escape_string($con,$_POST['new_pw']),
        'new_pw2' => mysqli_real_escape_string($con,$_POST['new_pw2'])
    ];

    $sql = "
        select password from member where id = '{$_SESSION['id']}'
    ";

    $result = mysqli_query($con,$sql);
    $row = mysqli_fetch_array($result);

    if($filtered['pw'] == $row['password']){
        if($filtered['new_pw'] == $filtered['new_pw2']){
            $sql = "
                update member set
                    password = '{$filtered['new_pw']}'
                where
                    id = '{$_SESSION['id']}'  
            ";

            $result = mysqli_query($con,$sql);

            if($result){
                echo "success!";
                echo "<a href='login.php'>다시 로그인하기</a>";
                session_destroy();
                
            }else{
                echo mysqli_error($con);
                echo 'A problem has occured.';
            }
        }else{
            echo "<script>
                alert('새로운 비밀번호가 일치하지 않습니다.');
                location.href='change_info.php';
            </script>";
        }
    }else{
        echo "<script>
            alert('기존 비밀번호가 일치하지 않습니다.');
            location.href='change_info.php';
        </script>";
    }
?>

기존의 비밀번호가 일치하지 않거나 새 비밀번호를 두번 입력하여 서로 일치하지 않을 때 alert 처리를 해줍니다.

비밀번호 변경이 성공했을 때 다시 로그인 하기 버튼을 보여줍니다.