我终于让我的注册页面正常工作,但是现在当我提交表格时,我只得到一个没有任何错误的空白页面。输出应该是一条消息,然后我检查数据库,它仍然是一个空集。谁能告诉我哪里出了问题/如何解决?
这是代码:
<?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";
}
?>
编辑:(基于尤瓦·拉吉的回答)
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";
}
}
我已经进行了一些编辑,但它仍然显示空白并且没有向数据库输入任何内容,我确实明白我需要使其更安全,但是,目前,我只想输入一些内容,以便我知道它正在工作。
之后
$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,列名称。
您还必须echo
您的消息。
顺便说一句,您的方法对SQL注入完全开放。
你的问题是你在给定的例子中缺乏任何形式或执行。
您可以从本教程开始使用 PDO:http://www.mysqltutorial.org/php-querying-data-from-mysql-table/
我还会查找PHP类教程,防止SQL注入,基本PHP OOP和PHP会话教程。您可能会发现这可以通过PHP框架更轻松地实现,但是如果您打算执行任何代码工作,最好处理正在发生的事情。
我使用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>";