我终于让我的注册页面没有错误,但现在当我提交表单时,我只是得到一个空白页面,没有任何错误。输出应该是一条消息,然后我检查数据库,它仍然是一个空集。谁能告诉我哪里出错/如何解决?
以下是代码:
<?php
require_once __DIR__.'/config.php';
if($_POST[ 'username' ]!="") {
$username =($_POST["username"]);
$email =($_POST["email"]);
$password =($_POST["password"]);
$sql = "insert into users set username='".$username."', email='".$email."', password='".md5($password)."' ";
$sql =($sql);
$msg = 'Thank you for completing your online registration form!.';
}else{
$msg = "Registration failed";
}
?>
编辑: (根据Yuva Raj的回答)
require_once __DIR__.'/config.php';
session_start();
$connection = mysqli_connect(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
if(isset($_POST['submit']))
{
$username =$_POST["username"];
$email =$_POST["email"];
$password =$_POST["password"];
$sql = "insert into users set username='".$username."', email='".$email."', password='".$password."' ";
$result = mysqli_query($connection, $sql);
if($result)
{
echo "successfully inserted";
}
else
{
echo "failed";
}
}
我做了一些编辑但它仍然显示空白而没有输入任何数据库,我知道我需要让它更安全,但是,目前,我只是想要输入所以我知道它&# 39;工作。
答案 0 :(得分:3)
之后
$sql = "insert into users set username='".$username."', email='".$email."', password='".md5($password)."' ";
你应该添加,
$result = mysqli_query($connection, $sql);
执行。
完整代码:
$connection = mysqli_connect("localhost","username","password","databasename");
if(isset($_POST['submit'])) // checks if form is submitted
{
$username =$_POST["username"];
$email =$_POST["email"];
$password =$_POST["password"];
// use mysqli_real_escape_string for $username, $email, $password to escape special characters
$sql = "sql query comes here";
$result = mysqli_query($connection, $sql);
if($result)
{
echo "successfully inserted";
}
else
{
echo "failed";
}
}
编辑:
尝试插入查询,例如
$query = "INSERT INTO `$table_name` (`username`, `email`,`password`) VALUES ('$username', '$email', '$password')";
根据需要更改table_name,列名称。
答案 1 :(得分:1)
您还需要echo
您的消息。
答案 2 :(得分:1)
您的问题是您在给定示例中缺少任何形式或执行。
您可以在本教程中使用PDO:http://www.mysqltutorial.org/php-querying-data-from-mysql-table/
我也会查看,PHP类教程,防止SQL注入,基本PHP OOP和PHP会话教程。您可能会发现使用PHP框架可以更轻松地实现这一点,但如果您打算执行任何代码工作,最好能够处理正在发生的事情。
答案 3 :(得分:0)
我使用Yuva Raj的答案来修改我的代码然后使用了Chris的教程并提出了工作代码。它仍然需要更多的安全性,但它是一个开始。
require_once __DIR__.'/config.php';
session_start();
$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_USERNAME, DB_USERNAME, DB_PASSWORD);
$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$stmt = $dbh->prepare("insert into users set username='".$username."', email='".$email."', password='".$password."' ");
$stmt->execute();
echo "<p>You are registered!</p>";