
htmlでかんたんなwebページを作成する課題に取り組んでいるのですが、以下のエラーの解消方法がわからず困っています。
Warning: Undefined array key "username" in /home/user01/public_html/12/registry.php on line 26
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/user01/public_html/12/registry.php:27 Stack trace: #0 /home/user01/public_html/12/registry.php(27): PDOStatement->execute() #1 {main} thrown in /home/user01/public_html/12/registry.php on line 27
どの部分が間違っているのかわからず、教えていただけないでしょうか。
パスワードが間違っている場合は正しくエラーをかえせています。
既存のユーザ名とパスワードの組み合わせ及び新規の組み合わせのときに上記のエラーメッセージに遷移する状態です。
ログイン及びメインページは別にコードを作成してあります。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>掲示板-新規登録</title>
<link rel="stylesheet" htef="../stylesheet.css">
</head>
<body>
<h1>掲示板 新規会員登録</h1>
<?php
ini_set('display_errors', 'On');
if(isset($_POST["newuname"],$_POST["password"])){
if($_POST["password"] != $_POST["passwordConfirm"]){
echo"パスワードが一致しません";
}else{
$db = "mysql: host=localhost; dbname=webapp; charset=utf8mb4";
$username = "admin";
$password = "mysql";
$pdo = new PDO($db, $username, $password);
$stmt = $pdo -> prepare("SELECT * FROM users WHERE username=:newuname");
$stmt -> bindValue(":username", $_POST["username"], PDO::PARAM_STR);
$stmt -> execute();
if($stmt -> rowCount() !=0){
echo"そのユーザー名は使われています";
}else{
$stmt = $pdo ->prepare("INSERT INTO users (username,password) VALUES(:newuname,:password);");
$stmt ->bindValue(":newuname", $_POST["newuname"], PDO::PARAM_STR);
$stmt ->bindValue(":password", $_POST["password"], PDO::PARAM_STR);
$stmt -> execute();
header("Location: ./login.php");
exit;
}
}
}
?>
<form actcion="" method="POST">
<table class="registry">
<tr>
<td>ユーザー名</td>
<td><input type="text" name="newuname"></td>
</tr>
<tr>
<td>パスワード</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>パスワード(確認用)</td>
<td><input type="password" name="passwordConfirm"></td>
</tr>
</table>
<div class="registry">
<input type="submit" class="registry" value="登録">
</div>
</form>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP php ログイン 1 2022/11/01 00:24
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript 付属の写真のようにエラーが出るようにしたいです。 提示したコードだけでは、エラーメッセージ文字が上の 1 2021/11/23 08:27
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付と年月日を選択するコード...
-
charset=UTF-8なのにShift-JIS...
-
php エラー
-
文字化けについて
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
libpng 24bpp rawをPNGに変換す...
-
ファイルの遷移がうまく行われ...
-
PHPで画像アップロード時にサイ...
-
PHPで`headers already sent`と...
-
SELECTの値を保持する
-
VB2008でFTPでのディ...
-
sqlで日付が一番古いデータの月...
-
.phpと.incファイルの違いはな...
-
.htaccessファイルの修正がこれ...
-
visualstudioでc#のdllができない
-
サーバーによってはmb_send_mai...
-
*.php、*.php3、*.phtmlの違い
-
PHPの変わった閉じタグの必要性...
-
「クラス関数」「メンバ関数」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化けについて
-
mail()の文字化けについて
-
複数の文字列をファイルに書き...
-
前後の全角スペースを削除する...
-
PHPで地域名のみ変更
-
wordpressのfooter.phpの編集
-
日付と年月日を選択するコード...
-
PHPでのアンケート設置について
-
機種依存文字の文字化けについて
-
charset=UTF-8なのにShift-JIS...
-
どうしたら確認ができますか!?
-
ここでの ②if($su_d<>"")の比較...
-
php エラー
-
html込みの文字列をPHPの変数に...
-
PHP(smarty)についての質問(文...
-
phpでfopen()やfputs()が使えない
-
XMLパースエラー回避方法
-
エラー Warning: Cannot modif...
-
php ログイン
-
外部ファイルを読み込んだhtml...
おすすめ情報
ご回答ありがとうございます。
なんとなく26、7行目で何かあるらしいのは分かりました。
宜しければ、どのように修正するべきか教えていただけないでしょうか。
お手数をおかけしますがエラーを解消するためにどこをどのように書き換えれば良いか教えていただきたいです。