2017-06-12 113 views
-2
<?php 
session_start(); 
$host="localhost"; 
$username="root"; 
$password=""; 
$db_name="registrering"; 
$tbl_name="users"; 

$conn = mysqli_connect($host, $username, $password, $db_name); 

if(!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 

?> 
<html> 
<head> 
    <title>user registration system using php and PHP and Mysq</title> 
    <!---<link rel="stylesheet" type="text/css" href="style.css">--> 
</head> 
<body> 
<div style="float:right; width:70%"> 
<table width="150px" border="0" cellpadding="3" cellspacing="1"> 
     <h2>Registrer<h2/> 
     <form method="post" action=" "> 
     <br> 
      <tr> 
       <td>Brugernavn</td> 
       <td>:</td> 
       <td><input type="text" name="Brugernavn"> </td> 
      </tr> 
      <br> 
      <tr> 
       <td>Email</td> 
       <td>:</td> 
       <td><input type="text" name="Email"> </td> 
      </tr> 
      <br> 
      <tr> 
       <td>Password</td> 
       <td>:</td> 
       <td><input type="password" name="Password"></td> 
      </tr> 
       <input type="submit" name="registrer" value="Registrer"> 

       <p> 
        Allerede medlem? <a href="login.php">Log ind</a> 
       </p> 
     </form> 
</div> 
</table> 
</body> 
</html> 
<?php 
if (isset($_POST["registrer"])) 
{ 
$my_username=$_POST["Brugernavn"]; 
$my_email=$_POST["Email"]; 
$my_password=$_POST["Password"]; 

$sql = "INSERT INTO 'users'(`username`, `email`, `password`) VALUES ('$my_username','$my_email','$my_password')"; 
$resultat = mysqli_query($conn, $sql); 
} 
?> 

它需要連接到數據庫,但它不需要。它位於本地主機上,我們無法將數據插入到數據庫中。數據庫由用戶名,電子郵件和密碼組成。 我們使用varchar(65)和utf8_general_ci。它需要連接到數據庫,但它不需要。

+0

瞭解準備好的語句以防止SQL注入 – Jens

+0

執行後檢查錯誤SQL語句('mysqli_error') – Jens

+0

是失敗的連接還是查詢?你是否從mysqli_connect_error(連接後)或mysqli_error(查詢後)得到任何錯誤?正如其他人所說,你的代碼容易受到SQL注入攻擊,你應該切換到使用參數來防止這種情況發生。 – ADyson

回答

1

假設連接正在工作 - 插入應該有用戶名周圍的回刻號,而不是正常的引號。

$sql = "INSERT INTO `users`(`username`, `email`, `password`) VALUES ('$my_username','$my_email','$my_password')"; 

我還建議查看準備好的語句並綁定參數,不要忘記不要將密碼存儲爲平面文本。

1

只是一個提示。每次運行mysql查詢時,嘗試使用die()來輸出mysql錯誤。希望它能夠在調試過程中爲您節省大量的精力和時間。在插入語句附近也使用back-ticks users