POST 메시지를 통해 서버로 데이터를 보내는 간단한 양식이 있습니다. 그러나 제출 버튼을 클릭 할 때마다 "쿼리를 실행할 수 없습니다"오류가 표시됩니다.HTTP POST 요청 문제
sample.html
mysql_connect($host,$username,$password);
mysql_select_db($database) or die("Unable to select database");
$query = 'INSERT INTO Reviews (Name, Email, Review) VALUES ('.$_POST['name'].','.$_POST['email'].','.$_POST['comments'].');';
$result = mysql_query($query) or die("Unable to execute query");
업데이트
<!DOCTYPE html>
<html>
<head>
<script>
function pullMore(){
var xmlhttp;
if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome,etc.
xmlhttp = new XMLHttpRequest();
}else{ // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("news_mesgs").innerHTML = xmlhttp.responseText;
}
}
var name = document.getElementById("name");
var email = document.getElementById("email");
var comments = document.getElementById("comment");
var parameters="name"+name.value+"&email="+email.value+"&comments="+comments.value;
xmlhttp.open("POST", "reviews.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(parameters);
}
</script>
</head>
<body style="background-color : #e9e9e9;">
<div> Hello there </div>
<form>
Name: <input type="text" id="name" name="name">
Comment: <input type="text" id="comment" name="comment">
Email: <input type="text" id="email" name="email">
<input type="button" value="Submit" onclick="pullMore()">
</form>
<div id="news_mesgs"> come here </div>
</body>
</html>
reviews.php : 어떤 이유로 $_POST["name"]
가 비어 나타나고있다 여기 내 구현입니다. 어떤 샘플 데이터에 대해 print var_dump($_POST);
을 시도했는데 이것이 무엇입니까? array (2) {[ "email"] => 문자열 (11) "[email protected]"[ "comments"] => string (5) "hello"} 쿼리를 실행할 수 없습니다.
귀하의 질의는 어떤 이유로 실패했습니다. 그러나 실패한 이유는'name'의 값에 게시 된 내용에 달려 있습니다. 데이터베이스 로그를 확인하십시오. 이 사실을 알게 된 후에는 그 멍청한 보안 구멍을 청소하십시오. 누군가는'Robert '의 이름을 올릴 수 있습니다.) 테이블 리뷰를 떨어 뜨리십시오 -'그러면 당신은 슬퍼 질 것입니다. –
$ _POST [ 'name']을 표시하려고했으나 비어있는 다음 일반 오류 메시지 (쿼리를 실행할 수 없음)를 반환합니다. – user3760741
코드가 취약합니다. ** SQL INJECTION ** –