私は新しいプログラミングを学びたいと思っています。私はPHPを選び、第4版Oreillyで自分のやり方を研究しました。私は最初の主要なプログラムを理解しようとしています。私はそれがとてもシンプルだと確信していますが、私は1つの部分をかなり理解していません。私は、関連するビットにビットを簡略化し、プログラムの次の部分では:
$conn = new mysqli(parameters to connect to database)
$stuff = get_post($conn, 'stuff')
$query = "INSERT INTO table VALUES" . "('$stuff')"
$result = $conn->query(query)
Function get_post($conn, $var)
Return $conn->real_escape_string($_POST[$var])
私はそれが悪意のあるユーザーの入力とハッキングを防止するための方法です理解しています。私が理解していない部分は、ユーザ入力のフォームを含む$_POST
がデータベースに入る前にデータベースのプロパティとして扱われる理由または理由です。 (最後の行で)私はものがデータベースに入る前に取り除かれると思った。私はここで非常に初歩的なものが欠けていると確信しています。
私は基本的に$_POST
が$conn
のプロパティになるのを見るのに苦労しています。誰も私の中を歩くことができますか?
ありがとうございます。
$conn = new mysqli(parameters to connect to database)
をこの行では、MySQLデータベースと対話するオブジェクトを作成:
[文字列をエスケープする]より良い方法があります(http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-エスケープ文字列)は安全ではありません! [それを信じていない?](http://stackoverflow.com/q/38297105/1011527)[MySQLi](http://www.wikipedia.org/wiki/Prepared_statement)の[prepared] ://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。 –
私はあなたが何が起こっているかについていくつかの誤解を持っていると思う、クリス。 '$ conn'のプロパティとして' $ _POST'をどこで見ていますか? – CollinD
こんにちは。はい、より良い方法は、次の章でカバーされていますが、私は進歩する前にこの単純な安全でない方法で何が起こっているのかを確認しようとするので、初心者の初心者です。$ conn - >($ _ POST [$ var])を返すように単純化すれば、私は$($ _ POST [$ var])の返信$ conn-> real_escape_stringから混乱していると思います。 – Chris