2017-06-12 110 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