Php HTML表单未提交到MYSQL数据库

Php HTML表单未提交到MYSQL数据库,php,html,mysql,forms,Php,Html,Mysql,Forms,几个小时以来,我一直在努力让它发挥作用。我在这里研究了很多线程,试图看看我是否能找到代码的问题。我是PHP新手,经常遇到一个内部服务器错误,但我似乎无法找到它。我尝试过各种网上建议的方法,但都没有成功。这是一个基本的用户注册表单,HTML格式,PHP文件(我本来打算在同一个文件上同时使用HTML和PHP,但无法实现),其想法是将表单提交到我的MYSQL数据库中的客户表中。如果你们中的任何一位能够说明我做错了什么,或者给我指出正确的方向,我们将不胜感激。提前谢谢 HTML 名字: 姓氏: 街

几个小时以来,我一直在努力让它发挥作用。我在这里研究了很多线程,试图看看我是否能找到代码的问题。我是PHP新手,经常遇到一个内部服务器错误,但我似乎无法找到它。我尝试过各种网上建议的方法,但都没有成功。这是一个基本的用户注册表单,HTML格式,PHP文件(我本来打算在同一个文件上同时使用HTML和PHP,但无法实现),其想法是将表单提交到我的MYSQL数据库中的客户表中。如果你们中的任何一位能够说明我做错了什么,或者给我指出正确的方向,我们将不胜感激。提前谢谢

HTML


名字:

姓氏:

街道地址:

城市:

状态:

邮政编码:

电子邮件地址:

密码:

引用的PHP:

<?php 
$hostname = "localhost";
$username = "serviceaccount";
$password = "password";
$dbname = "nameofdb";
$conn = new mysqli($hostname,$username,$password,$dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

?>
<?php

$FName=$_POST["FN"];
$LName=$_POST["LN"];
$SA=$_POST["SA"];
$City=$_POST["City"];
$State=$_POST["ST"];
$Zip=$_POST["Zip"];
$Email=$_POST["Email"];
$Password=$_POST["Password"];

if (isset($_POST["submit"])) {

$sql = "INSERT INTO Customers(FName,LName,StreetAddress,City,State,Zip,Email,Password) VALUES('$_POST["FN"]','$_POST["LN"]','$_POST["SA"]','$_POST["City"]','$_POST["ST"]','$_POST["Zip"]','$_POST["Email"]','$_POST["Password"]')";

if ($conn->query($sql) === TRUE) {
echo "<script type= 'text/javascript'>alert('New record created successfully');</script>";
} else {
echo "<script type= 'text/javascript'>alert('Error: " . $sql . "<br>" . $conn->error."');</script>";
}

$conn->close();
}
}
?>


用以下代码替换register.php代码

<?php 
$hostname = "localhost";
$username = "serviceaccount";
$password = "password";
$dbname = "nameofdb";
$conn = new mysqli($hostname,$username,$password,$dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

将register.php代码替换为以下代码

<?php 
$hostname = "localhost";
$username = "serviceaccount";
$password = "password";
$dbname = "nameofdb";
$conn = new mysqli($hostname,$username,$password,$dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
使用isset($_POST[“FN”])。。etc用于所有post变量,并尝试在insert查询中使用变量$FName、$LName等,而不是直接使用$\u post变量。
e、 g

还要检查连接是否打开或失败。

使用isset($\u POST[“FN”])。。etc用于所有post变量,并尝试在insert查询中使用变量$FName、$LName等,而不是直接使用$\u post变量。 e、 g


还要检查连接是否打开或失败。

在将任何新字段插入数据库之前使用

mysql\u real\u escape\u字符串

在将空参数插入数据库之前,请检查这些参数是否为空

使用以下命令打开MySQLi的所有错误报告

mysqli_报告(mysqli_报告错误| mysqli_报告严格)


在将任何新字段插入数据库之前,请使用

mysql\u real\u escape\u字符串

在将空参数插入数据库之前,请检查这些参数是否为空

使用以下命令打开MySQLi的所有错误报告

mysqli_报告(mysqli_报告错误| mysqli_报告严格)

首先,“基本检查”问题:表单和register.php的html在同一个目录中,对吗?不包括、要求等

如果您有权访问apache错误日志,请首先查看它以查看您收到的错误消息。如果你不明白,就把它贴在这里帮助你

如果您没有访问该文件的权限,首先我们需要找到您的错误所在。作为一个想法,从register.php中的这个开始

<?php 
$hostname = "localhost";
$username = "serviceaccount";
$password = "password";
$dbname = "nameofdb";
$conn = new mysqli($hostname,$username,$password,$dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

?>

直接去看看你能得到什么。然后开始一步一步地添加其余部分,并在出现错误时通知我们

另一个需要检查的是数据库空变量配置。所有列都允许空值吗?您是填写所有表单字段还是将任何字段留空?

首先,“基本检查”问题:带有表单和register.php的html在同一目录中,对吗?不包括、要求等

如果您有权访问apache错误日志,请首先查看它以查看您收到的错误消息。如果你不明白,就把它贴在这里帮助你

如果您没有访问该文件的权限,首先我们需要找到您的错误所在。作为一个想法,从register.php中的这个开始

<?php 
$hostname = "localhost";
$username = "serviceaccount";
$password = "password";
$dbname = "nameofdb";
$conn = new mysqli($hostname,$username,$password,$dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

?>

直接去看看你能得到什么。然后开始一步一步地添加其余部分,并在出现错误时通知我们


另一个需要检查的是数据库空变量配置。所有列都允许空值吗?您是在填写所有表单字段还是将任何字段留空?

您应该使用分配给post字段的变量,而不是$\u post对象,并确保清理所有用户输入

您可以尝试将$sql字符串替换为以下内容:

$sql = "INSERT INTO Customers(FName,LName,StreetAddress,City,State,Zip,Email,Password) VALUES('$FName','$LName','$SA','$City','$State','$Zip','$Email','$Password')";

您应该使用为post字段分配的变量,而不是$\u post对象,并确保清理所有用户输入

您可以尝试将$sql字符串替换为以下内容:

$sql = "INSERT INTO Customers(FName,LName,StreetAddress,City,State,Zip,Email,Password) VALUES('$FName','$LName','$SA','$City','$State','$Zip','$Email','$Password')";

有关详细信息,请查看apache错误日志文件。此外,将数据放入数据库的方式也非常危险。插入查询可能会导致问题,再加上将POST值分配给变量,但在查询中,您不使用变量并插入$\u POST数据。这也使您非常容易受到SQL注入的影响,请使用mysqli prepare语法检查apache error_日志文件了解详细信息。此外,将数据放入数据库的方式也非常危险。插入查询可能会导致问题,再加上将POST值分配给变量,但在查询中,您不使用变量并插入$\u POST数据。这也使得您很容易受到SQL注入的影响,请使用mysqli prepare语法谢谢您的输入。是的,html和php文件位于同一目录中。很遗憾,我无法访问任何日志文件。当我只使用connection语句时,我得到以下结果:连接失败:未知的MySQL服务器主机'localhost:3306'(0)。我猜这意味着它甚至找不到主机服务器?此外,该表不接受任何空值。是。在响应中,您似乎可以访问Mysql服务器。首先检查这个:1。mysql服务器已启动并正在运行。2.它使用3306端口(可能配置为使用其他端口)。3.您的用户$username具有访问数据库$dbname的权限。首先检查此项并让我知道结果谢谢您的输入。是的,html和php文件位于同一目录中。很遗憾,我无法访问任何日志文件。当我只使用connection语句时,我得到以下结果:连接失败:未知的MySQL服务器主机'localhost:3306'(0)。我猜这意味着它甚至找不到主机服务器?此外,该表不接受任何空值。是。在响应中,您似乎可以访问Mysql服务器。首先检查这个:1。mysql