簡體   English   中英

與php中的SQL數據庫建立安全連接

[英]Making a secure connection to a SQL database in php

我試圖確保數據庫憑據的安全,但是它們始終顯示在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控制台的響應中。 我不明白我的代碼有什么問題。

您在config.php php open標簽是<? -這是簡短的開放標記 ,我認為您的配置中已將其禁用。 您的config.php php不會被解釋,並按原樣顯示。 將其更改為常規打開標記<?php

另請注意,不建議使用mysql擴展名,您應切換到PDO並准備語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM