【发布时间】:2023-03-15 18:25:01
【问题描述】:
我一直试图让它工作几个小时。我在这里研究了许多线程,试图看看我是否能找到我的代码的问题。我是 PHP 新手,我不断收到内部服务器错误,但我似乎无法追踪它。我已经尝试了网上建议的各种方法,但没有成功。它是一个基本的 HTML 用户注册表单,在一个 PHP 文件中。(我打算在同一个文件上同时执行 html 和 php,但无法让它工作)这个想法是让表单提交到我的 MYSQL 数据库到一个客户表。如果你们中的任何人都可以阐明我做错了什么或指出我正确的方向,那将不胜感激。提前致谢。
HTML
<form id="signupField" action="register.php" method="post">
First Name:<br>
<input type="text" name="FN" size="auto"/><br>
Last Name:<br>
<input type="text" name="LN" size="auto"/><br>
Street Address:<br>
<input type="text" name="SA" size="auto"/><br>
City:<br>
<input type="text" name="City" size="auto"/><br>
State:<br>
<input type="text" name="ST" size="auto"/><br>
Zip:<br>
<input type="text" name="Zip" size="auto"/><br>
Email Address:<br>
<input type="text" name="Email" size="auto"/><br>
Password:<br>
<input type="text" name="Password" size="auto"/><br>
<input type="submit" value="submit" name="submit"/>
</form>
引用的 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();
}
}
?>
EDIT 发现此错误后: Connection failed: Unknown MySQL server host 'localhost:3306' (0) 我能够解决与数据库的连接问题。现在,当我将其余的 PHP 重新放入时,我仍然会收到 500 错误。它肯定会缩小问题所在!
编辑我想在这里感谢大家的帮助。主要问题是 SQL 连接。在我处理完之后,我发现我有一个额外的支架,这是我收到另一个内部错误的原因。
【问题讨论】:
-
检查 apache error_log 文件以获取详细信息。您将数据放入数据库的方式也很危险。
-
您的插入查询可能会导致您出现问题,而且您正在将 POST 值分配给变量,但在您的查询中,您不使用变量并插入 $_POST 数据。这也让你很容易受到 SQL 注入的攻击,请使用 mysqli 准备语法 w3schools.com/php/php_mysql_prepared_statements.asp