接続が成功し、データベース上のクエリを手動で使用してもINTOが実行されません。 データベースサーバはMySqlデータベースサーバです。PHP Insert Into is not beeingを実行しました
私は、これは機能が正常にここ
if (isset($_POST["btn_register"]) && strlen($_POST["txt_username"]) > 3 && strlen($_POST["txt_password"]) > 3) {
$username = $_POST["txt_username"];
$password = md5($_POST["txt_password"]);
$email = $_POST['txt_email'];
$activationcode = rand(10000, 99999);
fcn_execSql("INSERT INTO db_Projekt.tblUsers (idUsername,dtPassword,dtEmail,dtActivationcode)VALUES('$username','$password','$email','$activationcode')");
sendmail($email, $activationcode, $username);
}
を使用beeingているSQL
function fcn_execSql($thissql, $return = "default") {
//defining the values needed to establish a connection
if ($_SESSION["isdefined"] == false) {
define('DB_SERVER', '31.220.59.149');
define('DB_USERNAME', 'USERNAME');
define('DB_PASSWORD', 'PASSWORD');
define('DB_DATABASE', 'db_Projekt');
$_SESSION["isdefined"] = true;
}
//connecting using the values defined before
$conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
//trying to connect
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//executing a query and writing its result into a variable
$result = $conn->query($thissql);
if ($result == false) {
$conn->close();
die;
}
if ($return == "JSON") { //query
$array = mysqli_fetch_row($result); //fetch result
$returnedjson = json_encode($array);
echo $returnedjson;
}
if (strpos($thissql, 'SELECT') !== false) {
$array = array();
$i = 0;
$rowcount = $result->num_rows;
if ($rowcount > 0) {
//closing the SQL Connection again
$conn->close();
//returning query results
if ($rowcount > 1) {
while ($row = mysqli_fetch_assoc($result)) {
$array[] = $row;
}
} else {
$row = mysqli_fetch_assoc($result);
return $row;
}
return $array;
} //returning false in case of a failure and closing the connection
else {
$conn->close();
return false;
}
} else {
$conn->close();
return true;
}
}
を行う機能である
$username = $_SESSION['username'];
if (isset($_POST["btn_addevent"])) {
$username = $_SESSION['username'];
$eventname = htmlentities(addslashes($_POST["txt_eventname"]));
$eventdate = htmlentities(addslashes($_POST["dt_date"]));
$eventtime = htmlentities(addslashes($_POST["tm_time"]));
$eventgame = htmlentities(addslashes($_POST["txt_game"]));
fcn_execSql("INSERT INTO db_Projekt.tbleventstest (dtUserName, dtEventName, dtEventTime, dtEventdate,dtGame)VALUES('$username','$eventname','$eventtime','$eventdate','$eventgame')");
}
関数を呼び出す場所です
このコードは、SQLインジェクション攻撃の天国のようです。 –
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart)を使用する必要があります。 prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 'hemlentities'はSQLのエスケープ方法ではありません**。 – tadman
私はこのようにSQLコードを書くことをどこで学んだのか分かりませんが、これは本当に危険なコードです。これが公にアクセス可能な場所に配備されていると、妥協の危機にさらされます。 – tadman