エラーはありませんが、クエリはデータベースにデータを挿入しません。 最初のクエリ作業も2番目のクエリは機能しますが、$ carnaクエリは挿入されませんINSERTクエリはエラーを挿入しません。
$ carnaクエリは問題です。
コード:
<form method="POST" name="loginform">
<input type="text" placeholder="Naam" id="nane" name="name" required=""/>
<input type="text" placeholder="Gebruikersnaam" id="username" name="username" required=""/>
<input type="password" placeholder="Wachtwoord" id="password" name="password" required=""/>
<button type="submit">Registreren</button><br><br>
<button type="button" onclick="location.href='adminreg.php';">Admin Registreren</button><br><br>
<button type="button" onclick="location.href='overzicht.php';">Terug</button>
</form>
<?php
include("dbconfig.php");
if($_SERVER["REQUEST_METHOD"] == "POST")
{
// username and password received from loginform
$username=mysqli_real_escape_string($dbconfig,$_POST['username']);
$password=mysqli_real_escape_string($dbconfig,$_POST['password']);
$name=mysqli_real_escape_string($dbconfig,$_POST['name']);
$password = password_hash($password, PASSWORD_BCRYPT);
$sql_query="INSERT INTO gebruikers (gebruikerscode, wachtwoord, naam) VALUES ('$username', '$password', '$name')";
$bericht = mysqli_query($dbconfig, $sql_query);
$haalop_query="SELECT id FROM gebruikers WHERE gebruikerscode = '$username' and wachtwoord = '$password'";
$ophalen = mysqli_query($dbconfig, $haalop_query);
$fetch = mysqli_fetch_assoc($ophalen);
$id = $fetch["id"];
$carna = "INSERT INTO carnavalvakantie (user_id) VALUES ($id)";
$test = mysqli_query($dbconfig, $carna);
print_r($test);
if($bericht == true) {
echo '<br><div class="container"><div class="alert alert-succes" role="alert">
<b>Gelukt!</b> Gebruiker is aangemaakt.
</div></div>';
}
}
?>
は、あなたたちは私を助けることができると思います。ありがとうございます。
PDOバージョン:
$pdo = new PDO("mysql:host=localhost;dbname=btt; charset-utf8","root", "");
if (isset($_POST['submit']))
{
$username=$_POST['username'];
$password=$_POST['password'];
$name=$_POST['name'];
$password = password_hash($password, PASSWORD_BCRYPT);
$query = $pdo->prepare("INSERT INTO gebruikers (gebruikerscode, wachtwoord, naam) VALUES (:user, :pass, :name)");
$query->execute(array(
':user' => $username,
':pass' => $password,
':name' => $name
));
$ophalen = $pdo->prepare("SELECT id FROM gebruikers WHERE gebruikerscode = :user and wachtwoord = :pass");
$ophalen->execute(array(
':user' => $username,
':pass' => $password,
));
$opslaan = $ophalen->fetch(PDO::FETCH_ASSOC);
print_r($opslaan);
$id = $opslaan["id"];
$carnaval = $pdo->prepare("INSERT INTO carnavalvakantie (user_id) VALUES (:id)");
$carnaval->execute(array(
':id' => "test"
));
}
ハッシュする前に*** [パスワードをエスケープしない](http://stackoverflow.com/q/36628418/1011527)***を確認するか、他のクレンジングメカニズムを使用してください。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –
[Little Bobby](http://bobby-tables.com/)によると*** [あなたのスクリプトはSQLインジェクション攻撃の危険にさらされています。](http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php)*** [MySQLi](http://php.net/manual)の[prepared](http://en.wikipedia.org/wiki/Prepared_statement)ステートメントについて学びます。 /en/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません!それは信じられないのですか?(http://stackoverflow.com/q/38297105/1011527) –
この '$ haalop_query ="のために、gebruikerscode = '$ username'とwachtwoord = '$ password ''; ' –