HTML 폼에서 정보를 가져와 내 로컬 호스트에있는 MySQL 데이터베이스 (XAMPP 사용)에 업로드하는 프로그램을 작성하려고합니다. . 코드에서 볼 수 있듯이XAMPP MySQL 데이터베이스에 PHP 삽입 문으로 인해 테이블이 업데이트되지 않음
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="styles/main.css">
<meta charset="utf-8">
<title>Presentation Registration</title>
<script type="text/javascript">
function Submit()
{
// I put input validation stuff here, but left it out to simplify code for reading
document.getElementById("myForm").submit();
}
</script>
</head>
<body>
<form id="myForm" action="actionPage.php" method="post">
<TABLE>
<TR>
<TD><input type="radio" name="TimeSlot" class="TimeSlot" id="Slot1" value="Slot1">12/9/15, 6:00 PM – 7:00 PM</TD>
<TD>
<?php
$con = mysqli_connect('localhost','username','password', 'myDB');
$query = "SELECT * FROM reserve";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_array($result);
echo $row["Open Seats"]." ";
?>
Seats Remaining</TD>
</TR>
<TR>
<TD><input type="radio" name="TimeSlot" class="TimeSlot" id="Slot2" value="Slot2">12/9/15, 7:00 PM – 8:00 PM</TD>
<TD><?php
$row = mysqli_fetch_array($result);
echo $row["Open Seats"]." ";
?>
Seats Remaining</TD>
</TR>
<TR>
<TD><input type="radio" name="TimeSlot" class="TimeSlot" id="Slot3" value="Slot3">12/9/15, 8:00 PM – 9:00 PM</TD>
<TD><?php
$row = mysqli_fetch_array($result);
echo $row["Open Seats"]." ";
?>
Seats Remaining</TD>
</TR>
<TR>
<TD><input type="radio" name="TimeSlot" class="TimeSlot" id="Slot4" value="Slot4">12/10/15, 6:00 PM – 7:00 PM</TD>
<TD><?php
$row = mysqli_fetch_array($result);
echo $row["Open Seats"]." ";
?>
Seats Remaining</TD>
</TR>
<TR>
<TD><input type="radio" name="TimeSlot" class="TimeSlot" id="Slot5" value="Slot5">12/10/15, 7:00 PM – 8:00 PM</TD>
<TD><?php
$row = mysqli_fetch_array($result);
echo $row["Open Seats"]." ";
?>
Seats Remaining</TD>
</TR>
<TR>
<TD><input type="radio" name="TimeSlot" class="TimeSlot" id="Slot6" value="Slot6">12/10/15, 8:00 PM – 9:00 PM</TD>
<TD><?php
$row = mysqli_fetch_array($result);
echo $row["Open Seats"]." ";
?>
Seats Remaining</TD>
</TR>
</TABLE>
<button type="button">Student List</button>
<TABLE>
<TR>
<TD>UMID </TD>
<TD><input type="text" class="inputText" id="UMID" name="UMID"></TD>
</TR>
<TR>
<TD>First Name </TD>
<TD><input type="text" class="inputText" id="fName" name="fName"></TD>
</TR>
<TR>
<TD>Last Name </TD>
<TD><input type="text" class="inputText" id="lName" name="lName"></TD>
</TR>
<TR>
<TD>Project Title </TD>
<TD><input type="text" class="inputText" id="projectTitle" name="projectTitle"></TD>
</TR>
<TR>
<TD>E-Mail </TD>
<TD><input type="text" class="inputText" id="email" name="email"></TD>
</TR>
<TR>
<TD>Phone Number </TD>
<TD><input type="text" class="inputText" id="phone" name="phone"></TD>
</TR>
</TABLE>
<button type="button" OnClick=Submit()>Submit</button>
</form>
</body>
</html>
, 내가 제출 기능에 액션 태그를 사용하여이 작업을 수행하려면, 나는 데이터에 걸릴 양식과 같이 데이터베이스에 삽입 할를 만드는 HTML 사용했다 "actionPage.php"를 실행하여 실행할 수 있습니다. 그 프로그램의 내부 코드는 다음과 같습니다
<?php
$con = mysqli_connect('localhost','username','password', 'myDB');
$umid = $_POST['UMID'];
$fName = $_POST['fName'];
$lName = $_POST['lName'];
$projTitle = $_POST['projectTitle'];
$eMail = $_POST['email'];
$phone = $_POST['phone'];
$slotID = "1";
$query = "INSERT INTO student (UMID, fName, lName, projTitle, e-Mail, phone#, SlotID) VALUES ($umid, $fName, $lName, $projTitle, $eMail, $phone, $slotID)";
$result = mysqli_query($con, $query);
echo "Database Insertion Complete";
?>
이 모든 것은 두 테이블, 학생 및 예비으로 데이터베이스에 연결합니다. 코드를 실행하고 정보를 입력하면 actionPage.php가 트리거되고 끝에있는 echo 문을 포함하여 모든 코드가 실행됩니다. 그러나 XAMPP에서 보면 학생 표가 업데이트되지 않습니다. 내 코드에 문제가 있습니까? 아니면 다른 문제를 찾아야합니까?
'echo()'를 "데이터베이스 삽입 완료"로 변경하고 어떤 일이 발생하는지 알려주십시오 – musashii
'$ umid = "$ _POST (UMID)";는'$ umid = "$이어야합니다. _POST [ "UMID"]; "나는 믿고 다른 유사한 행에 대해서도 마찬가지이다. 다음으로 SQL injection 공격으로부터 데이터베이스를 보호하기 위해 prepared statement와 paramterised query에 대해 알아야한다 .http : // bobby-tables를 보라. com/당신의 질의를 안전하게 작성하는 방법에 대한 설명과 예제를 보려면 – ADyson
또한 '는 '및 다른 필드에 대해서도 동일합니다. 양식 요소는 "name"속성이 없으면 서버에 제출되지 않습니다.기본 HTML/PHP 양식 자습서를 찾아서주의를 기울이는 것이 좋습니다. 이는 매우 기본적인 오류이기 때문입니다. – ADyson