PHPはサーバーサイドの言語です。つまり、リクエストされたページがクライアントに返されると、すべてのPHPコードが解析され、「削除」されます。あなたがあなたのファイルを見ることができる唯一の人であれば、恐れはありません。
(env)変数に格納するかどうかは、1つの違いはありません。このコードで何も間違っては絶対にありません
;)
編集:
あなたはSQLクエリはしかし、あなたは注意する必要があり、実行
。多くの場合、ユーザ入力(URLまたはPOSTデータ)を使用して、クエリ内の特定の値を設定します。例えば:
$sql = 'SELECT * FROM `table` WHERE `id`=' . $_GET['id'];
$_GET['id']
変数は、URL(index.php?id=4
)に設定されています。
値が4
に変更された場合、データベースですべての処理を行うことができます。これはSQL injectionと呼ばれます。これは真にデータベースを使用するWebアプリケーションの最大の脅威です。
複数の修正があります。
- が入力(入力はSQL構文が含まれていないことを確認してください)
- 今すぐ文
を準備サニタイズ、私は、PostgreSQLに慣れていないんだけど、どうやらPHPモジュールを持っています準備されたステートメントを送る能力。これにより、未知の値を持つクエリを疑問符として送信し、その後に値を送信することができます。
$sql = 'SELECT * FROM `table` WHERE `id`=?';
// send prepared statement
$value = $_GET['id'];
// send the value
このようにして、データベースは値がクエリではないことを知ることができます。
私が言ったように、私はPostgreSQLに精通していませんが、完全にあなたを導くチュートリアルがいくつかあります。
別の編集:
私はいい人だから、私はそれを行う方法を発見!関数pg_prepare()とpg_execute()を使用する必要があります。
// This is a name to allow the database to identify the prepared statement
$queryname = 'my_query';
// Setting up our query with "empty" values
$sql = "SELECT * FROM `table` WHERE `column`='$1' AND `column`='$2'";
// Setting our values to send afterwards
$values = array(
$_GET['first_value'], // The first value that will replace $1
$_GET['second_value'] // The second value that will replace $2
);
$result = pg_prepare($connection, $queryname, $sql); // Send the query to the database
$result = pg_execute($connection, $queryname, array($value)); // Send the values
最終編集(私は誓う):このようにあなたがのexternファイル内のコンフィギュレーション変数を置くことを決定した場合
、ファイルがで終わっていることを確認し、configuration.phpを言うことができます.php
拡張子。別の拡張機能を使用すると、人々はそれを見つけてプレーンテキストで見ることができます。 PHPの拡張機能が使用されている場合、私が言ったように、PHPは解析され、削除されるため、何も見えません。
回答の左側にあるVをクリックすると、1つの(!)回答を受け入れることができます。それは人々にあなたの将来の質問に答えるための動機付けを保つでしょう。だから、最善の答えを選んでください。 –