2017-05-07 58 views
1

我創建了一個非常基本的html註冊頁面,需要用戶輸入他們的名字,姓氏,電子郵件和密碼。然而,只有名字和姓氏被記錄在phpmyadmin的數據庫中,並且電子郵件和密碼顯示爲空白。我已經嘗試刪除並再次添加表和列,沒有任何運氣,我已經改變了變量名稱,也沒有運氣。不太確定該做什麼。從Html表格中記錄sql表格的問題

PHP代碼

<?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

你應該在「required」之前有一個空格。另外,請使用預先準備的語句。您的代碼需要SQL注入。 –

+0

您是否收到任何錯誤消息? PHP錯誤是否打開? –

+0

在獲得密碼值的行中,拼寫錯誤。密碼_而不是密碼。 –

回答

0

它看起來像我在php註冊代碼中缺少一個下劃線,它聲明瞭該函數。我已經添加了它,現在我的代碼似乎工作,感謝所有的反饋!

1

爲了搶_POST變量,輸入表單s必須有名稱屬性。對於您的電子郵件表單,您只指定了一個ID並沒有名字。回去並添加名稱='電子郵件'屬性,它應該工作。密碼相同。

+0

好吧,讓我試試!謝謝! – BRUCEWAYNE365

+0

我已經嘗試過它,但它仍然無法正常工作。但是謝謝你! – BRUCEWAYNE365

+0

哦!你能發佈你的更新代碼嗎? – Oliwol