データベースにデータを挿入しようとしていますが、何らかの理由でコードが機能しません。ここで私は使用しているフォームです。PHP PDO - データベースにデータを挿入中にエラーが発生しました
<form id="registration" method="post" action="index.php" style="display: none;">
<label for="username" class="username">
Username
</label>
<input type="text" name="r-username" id="r-username" placeholder="Username" required/>
<label for="password">
Password
</label>
<input type="password" name="password" id="password" placeholder="Password" required/>
<label for="check_password" class="check_password">
Password Check
</label>
<input type="password" name="check-password" id="check_password" placeholder="Password again" required/>
<label for="e-mail">
E-mail
</label>
<input type="email" name="e-mail" id="e-mail" placeholder="E-mail" required/>
<label for="check-e-mail" class="check_email">
E-mail Check
</label>
<input type="email" name="check-e-mail" id="check-e-mail" placeholder="E-mail again" required/>
<input type="submit" name="submit" class="submit" value="Register"/>
</form>
そしてここでPHPコードです:
if(isset($_POST['r-username']))
{
$name=$_POST['r-username'];
$pass=$_POST['password'];
$passcheck=$_POST['check-password'];
$mail=$_POST['e-mail'];
$mailcheck=$_POST['check-e-mail'];
if($name==''||$pass==''||$passcheck==''||$mail==''||$mailcheck=='')
{
echo "<script type='text/javascript'>alert('Field must be filled.');</script>";
}
elseif(strlen($pass)<=6)
{
echo "<script type='text/javascript'>alert('Password is too short.');</script>";
}
elseif(strlen($pass)>=20)
{
echo "<script type='text/javascript'>alert('Password is too long.');</script>";
}
elseif($pass!==$passcheck)
{
echo "<script type='text/javascript'>alert('Passwords must be same.');</script>";
}
elseif($mail!==$mailcheck)
{
echo "<script type='text/javascript'>alert('Emails must be same.');</script>";
}
else
{
$sql5='INSERT INTO user(user_name,password,joined,user_email) VALUES(:username,:password,Now(),:email)';
$query1=$db->prepare($sql5);
$result=$query1->execute(array(":username" => $name,
":password" => $pass,
":email" => $mail
));
if($result)
{
echo "<script type='text/javascript'>alert('Inserted.');</script>";
}
else
{
echo "<script type='text/javascript'>alert('ERROR.');</script>";
}
}
}
コードが実行されますが、IDはdoesn't何でもします。ページをリロードするだけでメッセージERRORが返され、データベースにデータが挿入されません。私の悪い英語と申し訳ありませんが可能な答えのために申し訳ありません。
あなたが使用する必要があります
https://secure.php.net/manual/en/pdo.error-handling.php –
**プレーンテキストのパスワードを保存しないでください!** PHPの[組み込み関数](http:// jayblanchard .net/proper_password_hashing_with_PHP.html)を使用してパスワードセキュリティを処理します。 5.5より小さいPHPバージョンを使用している場合、 'password_hash()' [互換パック](https://github.com/ircmaxell/password_compat)を使用することができます。 *** [パスワードをエスケープしない](http://stackoverflow.com/q/36628418/1011527)***を確認するか、ハッシュする前に他のクレンジングメカニズムを使用してください。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –
ユーザーが望む[passwords/phrases](https://xkcd.com/936/)を使用できるようにします。 [パスワードを制限しない](http://jayblanchard.net/security_fail_passwords.html) –