###前提・実現したいこと
PHPとMySQLを用いて簡易的な新規登録フォームを作成しています。
名前・パスワードの入力
↓
データベース内テーブルへ保存、その際にユニークIDを生成
↓
表示(パスワード部分はマスキングする)
という流れを実現しようとしています。
###発生している問題・エラーメッセージ
まず、投稿内容がデーターベースに書き込まれません。
また、そのためか、取得内容が表示されません。
###該当のソースコード
◎テーブルの作成…usersというテーブルを作りました。
PHP
1$sql='CREATE TABLE users( 2 3 id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 4 5 name VARCHAR(255), 6 7 pass VARCHAR(50), 8 9 userid VARCHAR(50) 10 11 )'; 12 13$result=$pdo->query($sql);
◎フォームのプログラム
php
1 2//php内部の部分のみ記載しています 3 4$pdo=new PDO($dsn,$user,$password); 5 6$sql="INSERT INTO users(name,pass,userid) VALUES(:name,:pass,uniqid())"; 7 8 $stmt=$pdo->prepare($sql); 9 10 $stmt->bindParam(":name",$name,PDO::PARAM_STR); 11 $stmt->bindParam(":pass",$pass,PDO::PARAM_STR); 12 13 $name=$_POST["name"]; 14 $pass=$_POST["pass"]; 15 16 $stmt->execute(); 17 18$sql="SELECT*FROM users order by id disc limit 1"; 19 20$result=$pdo->query($sql); 21 22//以下html部分 23 24<!DOCTYPE html> 25<html> 26<head> 27 28<meta charset="UTF-8"> 29 30</head> 31<body> 32 33<hr style="border:2px groove #000000;"> 34 35新規登録はこちらから!<br> 36<form method="post" action="このファイル"> 37名前:<input type="text" name="name"><br> 38パスワード(半角英数字8文字以上16文字以下):<input type="password" name="pass" size="16" minlength="8" maxlength="16"><br> 39<input type="submit" name="register" value="新規登録"> 40 41</form> 42 43<?php 44 45if(isset($_POST["register"])){ 46 47 echo "新規登録が完了しました!"; 48 echo "<br>"; 49 echo "ユーザーID:".$result["userid"]."<br>"; 50 echo "名前:".$result["name"]."<br>"; 51 echo "パスワード:".substr_replase($result["pass"],"*",0); 52 53}else{ 54 55} 56 57?> 58 59</body> 60</html> 61
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/23 10:43
2017/11/23 10:58
2017/11/23 11:28
2017/11/23 11:51
2017/11/24 00:58