ajax DB연결 부분 질문
본문
현재 index.php-> login.php 로 이동되어서 로그인 양식 입력하게끔 해놓았습니다.
db.inc.php : DB 연결 부분
login.proc.php : 로그인 값 받아서 처리하는 프로세스 부분
login.php 안에 ajax를 사용하여 login.proc.php 로 넘겨서 login.php 폼안에 출력을 해주고 있는데
login.proc.php 안에서 include("./../include/db.inc.php"); include가 기본적으로 되어있는데
db.inc.php 있는 연결정보 코드를 가져와 login.proc.php 여기 안에다가 넣어야지만
ajax가 정상 작동합니다. db연결파일을 이미 include 했는데 왜 정보를 가져와서 넣어야되는지 모르겠습니다.기존에는 db파일 include 해놓고 ajax사용하기전에 쿼리결과 가져와서 출력하는거까지 성공했는데
ajax 코드를 작성하고 나니 저러네요 하단에 코드 몇가지 생략해서 첨부합니다.
[code]
// login.php ajax를 여기 안에 넣었습니다. //
<form class="loginbox" id="loginF">
<h1>Login SAmple2</h1>
<div id="login-error"></div>
<input type="text" id="userId" name="userName" placeholder="USER ID">
<input type="password" id="userPw" name="userPw" placeholder="PASSWORD">
<button type="submit" name="login-submit" id="logbtn">LOGIN</button>
<button type="button" name="join"
</form>
// ajax/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(document).on("submit", "#loginF", function(event) {
event.preventDefault();
$.ajax({
type: "POST"
, url: "/resource/process/login.proc.php"
, data: $(this).serialize()
, success: function(response) {
if (response == "success") {
$("#login-error").html("<div class='alert alert-success'>Login success</div>");
}
if (response == "error") {
$("#login-error").html("<div class='alert alert-warning'>Login warning</div>");
}
}
});
});
});
</script>
//db.inc.php db연결 파일 //
<?php
$serverName = "localhost";
$userName = "root";
$userPass = "root";
$dbName = "exstart";
$dbconn = new mysqli($serverName , $userName ,$userPass ,$dbName);
$dbconn -> set_charset("utf8");
if(mysqli_connect_error()){
echo "데이터베이스 접속 실패","<br>";
echo "Error Msg : ",mysqli_connect_error();
}
?>
//
// login.proc.php //
<?php
include("./../include/db.inc.php");
$userid = trim($_POST['userName']);
$userpw = $_POST['userPw'];
$sql = "SELECT * FROM userinfo WHERE userId = ? AND userPw = ?";
$stmt = $dbconn->prepare($sql);
$stmt->bind_param('ss',$userid ,$userpw);
$res = $stmt->execute();
$res = $stmt->get_result();
if ($res->num_rows == 1) {
echo "success" ;
} else {
echo "error";
}
?>
답변 2
db.inc.php 의 상대경로명이 정확한지 확인해 보시겠어요?
include("./../include/db.inc.php"); --> 이부분이 이상해서요..
루트에 있다면
include("/include/db.inc.php");
ajax 처리하고 나니 어떻게 보인다는건지 내용이 확인이 안됩니다.
지금 말씀하신 소스로는 데이터가 제대로 전달되면 받아서 처리되는 과정은 맞습니다.