내 코드는 데이터를 가져 오는 대신 MySQL 테이블에 "활성화"라는 빈 레코드를 삽입합니다. 그것은 내가 아래로 벗겨 낸 activate.php를 호출합니다. 나는 또한 PHP에 익숙하지 않다는 것을 추가해야하지만 주입 공격에 대해 알고있다. 나는 원래 몇 가지 보안 문제를 다루었지만, 내가 말했듯이, 문제의 근원에 도달하기 위해 코드를 제거했다. 또한 양식 필드를 에코하면 MySql 테이블에 채워지지 않습니다. 어떤 아이디어? 미리 감사드립니다.PHP는 테이블에 빈 데이터를 삽입합니다
<?php
$host = "host"; // Host name
$username = "user"; // Mysql username
$password = "pass"; // Mysql password
$db_name = "db"; // Database name
$tbl_name = "activate"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");
// Get values from form
if (isset($_POST['submit'])) {
$esn = mysql_real_escape_string($_POST['esn']);
$esnverify = mysql_real_escape_string($_POST['esnverify']);
$zip = mysql_real_escape_string($_POST['zip']);
$comments = mysql_real_escape_string($_POST['comments']);
}
// Insert data into mysql
$sql = "INSERT INTO $tbl_name (esn, esnverify, zip, comments) VALUES ('$esn', '$esnverify', '$zip', '$comments')";
$result = mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if ($result) {
echo "Successful";
echo "<br />";
echo $_POST['esn'];
echo "<br />";
echo $_POST['esnverify'];
echo "<br />";
echo $_POST['zip'];
echo "<br />";
echo $_POST['comments'];
echo "<br />";
echo "<a href='thankyou.html'>Back to main page</a>";
}
else {
echo "ERROR";
}
?>
<?php
// close connection
mysql_close();
?>
Activate.html $_POST['submit']
가 (이 경우 귀하의 변수 값이없는 것), 코드는 여전히 테이블에 데이터를 삽입을 시도합니다 설정되어 있지 않은 경우에도
<form method="post" action="activate.php">
<p><b>ESN:</b> <input type="text" id="esn" name="esn" maxlength="50"><br/>
<b>Confirm ESN:</b> <input type="text" name="esnverify" id="esnverify" maxlength="50"><br/>
<b>Zip:</b> <input type="text" name="zip" id="zip" maxlength="5"><br/>
<p>Your comments:<br />
<textarea name="comments" rows="10" cols="40" id="comments" maxlength="500"></textarea></p>
<p><input type="submit" value="Send it!"></p></form>
어떤 페이지에서'$ _POST' 변수를 받고 있습니까? – Kevin
제출 버튼에'name' 속성이 없으므로이 조건'if (isset ($ _ POST [ 'submit']))'는 결코 만족스럽지 않습니다. 그것은 Lion
라이온 감사합니다 !! 내 곱슬 괄호를 움직이면 해결됩니다 !! 다시 한번 감사 드리며, 나는 큰 도움을 주셔서 감사합니다. – JuStin