スクリプトをphp5からphp7に編集しようとしましたが、機能しません。あなたは私のスクリプトで間違ったことを知っていますか?残念ながら、それはエラーを表示していません。 :(接続データベースでphp5からphp7に移行する
私はDB_NAME、それを持つユーザーなどを与えることはできません理解しているよう。
mysqli_select_db
で
<?php
define('DB_NAME', '**');
define('DB_USER', '**');
define('DB_PASS', '**');
define('DB_HOST', 'localhost');
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS);
if (!$link) {
dir('There was a problem when trying to connect to the host. ohnooo! ' . mysqli_error());
}
$db_selected = mysqli_select_db(DB_NAME, $link);
if (!$link) {
dir('There was a problem when trying to connect to the database. ohnoo! ' . mysqli_error());
}
$soortisolatie = $_POST['soortisolatie'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$beschrijving = $_POST['beschrijving'];
$typewoning = $_POST['typewoning'];
$woonoppervlakte = $_POST['woonoppervlakte'];
$bouwjaar = $_POST['bouwjaar'];
$datum = $_POST['datum'];
$aanhef = $_POST['aanhef'];
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
$telefoon = $_POST['telefoon'];
$source = $_POST['source'];
$sql = "INSERT INTO leads (soortisolatie, postcode, plaats, straat, huisnummer, beschrijving, typewoning, bouwjaar, datum, aanhef, voornaam, achternaam, telefoon, source) VALUES ('".$soortisolatie."', '".$postcode."', '".$plaats."', '".$straat."', '".$huisnummer."', '".$beschrijving."', '".$typewoning."', '".$woonoppervlakte."', '".$bouwjaar."', '".$datum."', '".$aanhef."', '".$voornaam."', '".$achternaam."', '".$telefoon."', '".$source."')";
if (!mysqli_query($sql)) {
die('Error: ' . mysqli_error());
}
header("Location: url");
exit;
?>
'mysqli_query()'は2つの引数をとりません – nogad
大きな穴があいています。ユーザーからのデータをSQLクエリに直接入力すると、SQLインジェクション(https://en.wikipedia.org/wiki/Sql_injection)が開かれます。誰かが入力フィールドの1つに一重引用符( ')を含む値を入力した場合、結果のクエリがどのように見えるかを想像してください。クエリで代わりにプレースホルダを使用します。 – aferber
@aferber、ご意見ありがとうございます。ただし、パスワードやその他のものは保存しません。一重引用符( ')の結果を知りたい。 SQLインジェクションはDDoS攻撃またはDNSハイジャックの結果にもなりますか? –