채택완료

간단한 DB등록 및 확인 여부.. 에러 못찾겠어요 ㅠㅠ

2021-05-27 (목) 12:20:17 2,365

서버 환경은

php8 + mariadb10 + nginx + 우분투20 입니다

db.php (DB접속 부분은 임의로 수정해서 작성한 겁니다)

Copy
<?php

$host = "localhost";
$user = "유저";
$pass = "비밀번호";
$data = "데이터베이스";

$con = new mysqli($host, $user, $pass, $data);

if($con->connect_errno)
{
    print("Connect failed: %s\n", $con->connect_errno);
}
?>

handler.php

Copy
<?php

include('db.php');

$action = $_GET['action'];

$ID = $con->real_escape_string($_GET['ID']);
$PASSWORD = $con->real_escape_string(md5($_GET['PASSWORD']));

if(!$action)
{
    echo "Please enter an action.";
}
else
{
    if($action == "register")
    {

        if($query = $con->query("INSERT INTO Register2 (ID,PASWORD) VALUES ('$ID','$PASSWORD')"))
        {
            echo "1";
        }
        else
        {
            echo "0";
        }
    }
    else if($action == "login")
    {
        $query = $con->query("SELECT * FROM Register2 WHERE ID ='$ID' and PASSWORD = '$PASSWORD'");
        $cnt = $query->num_rows;

        if($cnt > 0)
        {
            echo "1";
        }
        else
        {
            echo "0";
        }
    }
    else
    {
        echo "Invalid action.";
    }
}

?>

위와같이 작성을 하고 사이트에

/handler.php?action=register&ID=admin&PASSWORD=123test

등록 요청을 하는데 

지금 이 페이지가 작동하지 않습니다.

사이트.com이(가) 현재 해당 요청을 처리할 수 없습니다.

HTTP ERROR 500

해당 에러를 보내는 걸까요... 문법이 틀린건지 오타 인건지 암만봐도 틀린게 없는데 말이죠..ㅠㅠ

매의 눈으로 고수님들의 조언을 부탁드립니다..

|

답변 2개 / 댓글 6개

채택된 답변
+20 포인트

먼저 에러의 상세내용이 출력되도록 해서 어떤 라인에서 어떤 에러인지를 확인하는 것이 좋습니다. https://ohdaldal.tistory.com/11

<?php
include('db.php');
$action = $_GET['action'];

->

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');
include('db.php');
$action = $_GET['action'];

답변에 대한 댓글 1개

알기쉽게 설명해 주셔서 감사합니다 해당 코드로 확인을 해봤더니

db.php 부분에 마지막 부분. printf 인데... print 라고만 적었네요;;
" F " 이거 하나 빠져서 하루 내내 고생을 했습니다...

다시 한번 초보자를 위해 알기쉽게 설명해 주셔서 감사합니다!
2021-05-27 (목) 13:07:41

https://sir.kr/qa/405998?stx=htaccess&sst=wr_num&unanswered=0&s_tag=

위 링크 참조하셔서,

 일단 php가 출력하는 메시지를 확인해 보세요.

답변에 대한 댓글 5개

해당 링크를 보아도 해결 방안이 무엇인지 잘 모르겠습니다..

아래 소스로는 실행이 잘 되는데 흠... 도움이 될만한게 있을까요/

[code]
<?php
$ID= $_GET['ID']; #ID값 받아오기
$PASSWORD = $_GET['PASSWORD']; #PW값 받아오기
$DATE = $_GET['DATE'];
$EMAIL = $_GET['EMAIL'];
$WIN_V = $_GET['WIN_V'];
$C_NAME = $_GET['C_NAME'];
$SEX = $_GET['SEX'];
$AGE = $_GET['AGE'];
$IP = $_GET['IP'];
$servername = "localhost"; #서버HOST이름
$username = "유저";
$password = "비밀번호";
$dbname = "데이터베이프"; #데이터베이스 이름
$conn = new mysqli($servername, $username, $password, $dbname); #MYSQL접속 부분
if ($conn->connect_error) { #접속에 오류가 있으면
die("Connection failed: " . $conn->connect_error); #ERROR를 출력
}
{
$sql = "INSERT INTO Register (ID, PASSWORD, DATE, EMAIL, WIN_V, C_NAME, SEX, AGE, IP)
VALUES ('$ID', '$PASSWORD', '$DATE', '$EMAIL', '$WIN_V', '$C_NAME', '$SEX', '$AGE', '$IP')"; #ID와PW값을 테이블 칼럼값으로 대입
}
if ($conn->query($sql) === TRUE) { # 성공적으로 대입이 완료하면
echo "New record created successfully"; # 성공메세지 출력
} else { #아니면 (실패하면)
echo "Error: " . $sql . "<br>" . $conn->error; #ERROR 메세지 출력
}
$conn->close(); # 접속 종료
?>
[/code]
.htaccess 파일을 수정하는 겁니다.
페이지에 있는 링크 다 보시기 바랍니다.
엑스엠엘님 답변 감사합니다. 제가 조금 더 이해력이 좋았더라면 바로 해결할 수 있는 부분이였는데 해당 글로는 바로 이해를 하지 못해서 많이 아쉽습니다 ㅠㅠ

db.php 부분의 마지막 부분. printf를 print로 적어서 에러가 났더라고요 ..
지식이+1 증가한 것 같습니다. 다시 한번 조언 감사드립니다.
개발하는 동안에는 계속 php 에러 메시지를 봐야 합니다.
.htaccess 에서 php error flag를 조정하세요.
네 조언을 해주신데로 참고하여 해당 문제가 다시 발생하지 않도록 적용해 보도록 하겠습니다 ^^

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