Я пытаюсь защитить свои учетные данные в базе данных, но они продолжают отображаться в консоли firebug.
Я просто хочу сохранить информацию о форме в базу данных.
Моя форма (form.html)
<form id="Form" method="POST" >
<table>
<tr>
<td>Name:</td>
<td><input id="name" name="name" type="text" /></td>
</tr>
<tr>
<td>Address:</td>
<td><input id="address" name="address" type="text" /></td>
</tr>
<tr>
<td>Telephone:</td>
<td><input id="telephone" name="telephone" type="text" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input id="email" name="email" type="email" /></td>
</tr>
</table>
<div class="SubmitButton">
<input type="submit" id="submit" name="submit" value="Submit" />
</div>
</form>
<div id="Response"></div>
</div>
<!-- javascript to handle form data -->
<script type="text/javascript">
$("document").ready(function(){
var frm = $('#Form');
frm.submit(function (ev) {
ev.preventDefault();
var email = $('#email').val();
if(email)
{
$.ajax({
type: "POST",
dataType:"json",
url: "submit.php",
data: frm.serialize(),
success: function () {
$('#Response').empty();
$('#Response').wrapInner("<span class='SuccessMessage'>Your information has been submitted successfully!</span>")
return;
},
error: function () {
$('#Response').empty();
$('#Response').wrapInner("<span class='ErrorMessage'>Your information was not submitted successfully. Please try again.</span>")
}
});
} else {
$('#Response').empty();
$('#Response').wrapInner("<span class='EmailBlankMessage'>Email address is a required field.</span>")
return;
}
});
});
</script>
Вот мой submit.php
<?php
if($_POST)
{
require(dirname(__FILE__)."/../config.php");
$name = $_POST["name"];
$address = $_POST["address"];
$telephone = $_POST["telephone"];
$email = $_POST["email"];
$name = mysql_real_escape_string($name);
$address = mysql_real_escape_string($address);
$telephone = mysql_real_escape_string($telephone);
$email = mysql_real_escape_string($email);
mysql_query("INSERT INTO XXXXX(name, address, telephone, email) VALUES('$name', '$address', '$address', '$email')");
}else {
header("Location: /Form.html");
die();
}
?>
Вот мой config.php
<?
$hostname = "XXXXXX";
$database = "XXXXXX";
$username = "XXXXXX";
$password = "XXXXXX";
mysql_connect($hostname, $username , $password) or die (mysql_error());
mysql_select_db($database ) or die (mysql_error());
Файл конфигурации помещается вне корневого каталога. Однако 2 основных вопроса, которые возникают у меня, это то, что он не будет вставлять данные формы в таблицу, а также учетные данные базы данных из config.php отображаются в ответном сообщении консоли firebug. Я не понимаю, что не так с моим кодом.
Ваш открытый php-тег в config.php
равен <?
- это короткий открытый тег, который, как мне кажется, отключен в вашей конфигурации. Ваш php в config.php
затем не интерпретируется и отображается как есть. Измените его на обычный открытый тег <?php
.
Также обратите внимание, что расширение mysql
устарело, вы должны переключиться на PDO и подготовленные операторы.