2017-05-07 8 views
1

私は本当に基本的なhtml登録ページを作成しました。ユーザーは自分の名字、姓、電子メール、パスワードを入力する必要があります。ただし、phpmyadminのデータベースには姓名のみが記録されており、電子メールとパスワードは空白として表示されます。私は落として、テーブルや列を再追加しようとしましたが、変数名や運も変更されていません。何をすべきかあまりにも分かりません。HtmlフォームからSQLテーブルに情報を記録する際の問題

PHPコード_POST変数をつかむために

<?php 
 

 
$servername = "localhost"; 
 
$username = ""; 
 
$password = ""; 
 
$dbname = ""; 
 

 
//Create connection 
 
$conn = new mysqli($servername, $username, $password, $dbname); 
 

 
// Check connection 
 
if ($conn->connect_error) { 
 
    die("Connection failed: " . $conn->connect_error); 
 
} 
 
//echo "Connected successfully"; 
 

 
$first_name = $_POST['first_name']; 
 
$last_name = $_POST['last_name']; 
 
$email = $_POST['email']; 
 
$password_ = $_POST['password_']; 
 

 
if (isset($_POST['register'])) { 
 
    register($first_name,$last_name,$_email,$password,$conn); 
 
} 
 

 

 
$conn->close(); 
 

 

 
function register($first_name,$last_name,$email,$password,$conn) { 
 
// echo $first_name . " " . $last_name . " " . $student_id . " " . $email; 
 

 
$sql = "INSERT INTO `register` (`first_name`, `last_name`, `email`, `password_`) VALUES ('$first_name', '$last_name', '$email', '$password_')"; 
 
if ($conn->query($sql) === TRUE) { 
 
    echo "New record created successfully"; 
 
} else { 
 
    echo "Error: " . $sql . "<br>" . $conn->error; 
 
} 
 

 
} 
 
?>

htmlコード

<!DOCTYPE html> 
 

 
<html lang="en"> 
 

 

 
<head> 
 
    
 
<title>Bootstrap Case</title> 
 
    
 
<meta charset="utf-8"> 
 
    
 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    
 
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> 
 
    
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
    
 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 

 
</head> 
 

 

 
<body> 
 

 

 
<form role="form" action="register.php" method="POST"> 
 
    
 

 
<div class="form-group"> 
 
    
 
<label>First Name:</label> 
 
    
 
<input type="text" class="form-control" id="first_name" name="first_name"required> 
 

 
</div> 
 
<div class="form-group"> 
 
    
 
<label>Last Name:</label> 
 
    
 
<input type="text" class="form-control" id="last_name" name="last_name"required> 
 

 
</div> 
 
<div class="form-group"> 
 

 

 

 
<label>Email address:</label> 
 
    
 
<input type="varchar" class="form-control" name="e_mail" id="email"required> 
 

 

 
</div> 
 
<div class="form-group"> 
 
    
 
<label>Password:</label> 
 
    
 
<input type="password" class="form-control" id="password" name="password"required> 
 

 
</div> 
 
<div class="form-group"> 
 

 
<label>Confirm Password:</label> 
 
    
 
<input type="password" class="form-control" id="confirm_password"required > 
 

 

 

 
<script> 
 
var password = document.getElementById("password") 
 
    , confirm_password = document.getElementById("confirm_password"); 
 

 
function validatePassword(){ 
 
    if(password.value != confirm_password.value) { 
 
    confirm_password.setCustomValidity("Passwords Don't Match"); 
 
    } else { 
 
    confirm_password.setCustomValidity(''); 
 
    } 
 
} 
 

 
password.onchange = validatePassword; 
 
confirm_password.onkeyup = validatePassword; 
 

 
</script> 
 

 

 
</div> 
 

 
<button type="submit" class="btn btn-default" name="register">Register</button> 
 

 
</form> 
 

 

 

 

 
</body> 
 

 
</html>

+0

「必須」の前にスペースが必要です。また、準備されたステートメントを使用してください。あなたのコードはSQLインジェクションの対象です。 –

+0

エラーメッセージが表示されますか? PHPエラーはオンになっていますか? –

+0

パスワードの値を取得した行のスペルが間違っています。パスワードの代わりにpassword_を使用します。 –

答えて

0

私は関数を記述するPHPレジスタコードにアンダースコアがないようです。私はそれを追加し、今私のコードは、すべてのフィードバックのために働いているようだ!

1

、あなたの入力フォームsはの名前属性を持っていなければなりません。あなたのEメールフォームでは、IDと名前が指定されていません。元に戻り、name = 'email'属性を追加すれば動作します。パスワードと同じです。

+0

大丈夫私はそれを試してみましょう!ありがとう! – BRUCEWAYNE365

+0

私はそれを試してもまだ動作しません。でもありがとう! – BRUCEWAYNE365

+0

ああ!更新されたコードを投稿できますか? – Oliwol

関連する問題