채택완료

php 회원가입에서 회원등록실패를 했는데, DB테이블엔 저장되고 있습니다.

Copy
<!DOCTYPE html>

<?
    $fuserid = $_POST['fuserid'];
    $fname = $_POST['fname'];
    $fpasswd = $_POST['fpasswd'];
    $fpasswd_re = $_POST['fpasswd_re'];
    $fsex = $_POST['fsex'];
    $femail = $_POST['femail'];
    $userip = $_SERVER['REMOTE_ADDR'];

    include "../data/connect_db.php";
    if($fuserid=="" || $fname=="" || $fpasswd == "" || $fpasswd_re == "" || $fpasswd!=$fpasswd_re) {
        echo "<script>
        alert('*필수 입력 사항은 반드시 입력해야 합니다. ..');
        history.back();
        </script>";
        die;
    }

    $sql = "select count(*) from user_tbl where userid='$fuserid'";
    $res = mysqli_query($connect,$sql);
    $rs = mysqli_fetch_row($res);
    $reg_num=$rs[0];

    if($reg_num>0){
        echo "<script>
        alert('[중복된 아이디]\r\n\r\n 다른 아이디를 선택하세요.');
        history.back();
        </script>";
        die;
    }

    $sql = "insert into user_tbl (userid, name, passwd, sex, email, date, ip_addr)";
    $sql.= "values ('$fuserid','$fname','$fpasswd','$fsex','$femail',now(),'$fuserip')";
    $res = mysqli_query($connect,$sql);
    $tot_row = mysqli_affected_rows();
    mysqli_close($connect);

    echo "등록 성공<hr />";
    echo "생성 레코드 = ".$tot_row."개";

    if($tot_row > 0){
        echo "<script charset='UTF-8'>
        alert('[등록성공]\\r\\n회원으로 등록되었습니다. ');
        location.replace('login_form.php');
        </script>";
    } else {
        echo "<script charset='UTF-8'>
        alert('[등록 실패]\\r\\n 회원으로 등록을 실패했습니다. ');
        history.back();
        </script>";
    }
?>

회원가입 폼을 만들어 보았는데, 실제 회원가입을 진행하면 alert('[등록 실패]\\r\\n 회원으로 등록을 실패했습니다. ');가 실행이 되는데, DB테이블에 들어가보니 생성은 되어있습니다......

코드상에 무엇이 문제인걸까요.,,,?

|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트
2021-07-10 (토) 22:46:10

https://www.php.net/manual/en/mysqli.affected-rows.php

mysqli_affected_rows($link)

파라미터가 빠졌습니다.

답변에 대한 댓글 3개

코드상에서 어떻게 넣어야할까요 ㅠㅠ?
코드상에

$tot_row = mysqli_affected_rows();

이렇게 들어가있는것 같긴한데...
$link대신에
$g5['connect_db']
를 쓸 수 있습니다.
2021-07-11 (일) 15:40:26

총갯수를 구하시는거라면 
$tot_row = mysqli_num_rows($link); 
를 활용하셔도 됩니다.

여튼 tot_row 에서 집계가 제대로 되지 않아 생긴 문제 같습니다.

답변을 작성하려면 로그인이 필요합니다.