Imはphpに新規、mysqlとiveはphpmyadminで登録システムを作っています。私のメンバーが追加したページは別として、すべて正常に動作します。 phpmyadminでデータを追加すると、get user infoページに表示されますが、メンバーの追加ページにデータを追加しようとすると、2つのエラーが発生します。ここで彼らは、次のとおりです。phpおよびmysql登録コードのエラー。 (学校の仕事のため)
以下警告:mysqli_stmt_bind_param():タイプ定義文字列内の要素の数は、Cでのバインド変数の数と一致しません:\ xamppの\ htdocsに\ memberadded.phpライン56上の
エラー発生した
警告:mysqli_error()が期待する正確に1つのパラメータ、0 Cで与えられた:\ xamppの\ htdocsに\ memberadded.phpはライン上で73
私のメンバーがページを追加するとは、エラーが予定されています。あなたが私を助けることができれば、それを本当に感謝するでしょう。
<html>
<head>
<title>Add Student</title>
</head>
<body>
<?php
if(isset($_POST['submit'])){
$data_missing = array();
if(empty($_POST['username'])){
// Adds name to array
$data_missing[] = 'Username';
} else {
// Trim white space from the name and store the name
$username = trim($_POST['username']);
}
if(empty($_POST['password'])){
// Adds name to array
$data_missing[] = 'Password';
} else{
// Trim white space from the name and store the name
$password = trim($_POST['password']);
}
if(empty($_POST['email'])){
// Adds name to array
$data_missing[] = 'Email';
} else {
// Trim white space from the name and store the name
$email = trim($_POST['email']);
}
if(empty($data_missing)){
require_once('../mysqli_connect.php');
$query = "INSERT INTO members (username, password, email) VALUES (?, ?, ?)";
$stmt = mysqli_prepare($dbc, $query);
mysqli_stmt_bind_param($stmt, "ss", $username, $password, $email);
mysqli_stmt_execute($stmt);
$affected_rows = mysqli_stmt_affected_rows($stmt);
if($affected_rows == 1){
echo 'User Entered';
mysqli_stmt_close($stmt);
mysqli_close($dbc);
} else {
echo 'Error Occurred <br />';
echo mysqli_error();
mysqli_stmt_close($stmt);
mysqli_close($dbc);
}
} else {
echo 'You need to enter the following data<br />';
foreach($data_missing as $missing){
echo "$missing<br />";
}
}
}
?>
<form action="http://localhost/memberadded.php" method="post">
<b>Add a New User</b>
<p>Username:
<input type="text" name="username" size="30" value="" />
</p>
<p>Password:
<input type="password" name="password" size="30" value="" />
</p>
<p>Email:
<input type="text" name="email" size="30" value="" />
</p>
<p>
<input type="submit" name="submit" value="Send" />
</p>
</form>
</body>
</html>
**パスワードのセキュリティを処理するには、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)、または他のクレンジングメカニズムを使用していることを確認してください。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –
まず、 '' ss "'があり、 '' sss "'があるはずです。挿入する3つの変数それぞれに1つ –
'mysqli_error()'には接続リンクが必要です。私はリンクが '$ dbc'だと推測していますので、mysqli_error($ dbc)は正しい使い方です。 –