php 表单未提交
The php form not getting submitted
我正在尝试使用 xampp 服务器上的 php 将此表单数据提交到另一个数据库。一旦我点击提交,它就会显示等待本地主机,甚至不会将条目保存在数据库中。我在 xampp 中进行了更改以侦听端口 8080.I,这对 php 来说还很陌生。提前致谢!
这是我的html
<!DOCTYPE html>
<html>
<body>
<form action="submit.php" method=post">
First name:<br>
<input type="text" name="firstname" >
<br>
Last name:<br>
<input type="text" name="lastname" >
<br><br>
<input type="submit" value="submit">
</form>
</body>
</html>
这是我的 php 代码
<?php
$x=$_POST['firstname'];
$y=$_POST['lastname'];
$servername= 'localhost';
$username = 'root';
$password = '';
$dbname = 'db1';
$port = 8080;
//$mysqli = new mysqli("localhost", "username", "password", "dbname");
$conn = new mysqli($servername, $username, $password, $dbname, $port);
echo "Connection successful!" . "<bc>";
$sql = "INSERT INTO user (fname, lname) VALUES ('$x', '$y')";
if($conn->query($sql) === TRUE){
echo "New record created successfully";
} else {
echo "<bc> Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
我似乎也遇到了以下错误:
注意:未定义索引:F:\Xampp\htdocs\Project\submit.php第3行第一个
注意:未定义索引:最后在 F:\Xampp\htdocs\Project\submit.php 第 4 行
警告:mysqli::__construct():MySQL 服务器已在 F:\Xampp\htdocs\Project\submit.php 第 13 行
中消失
警告:mysqli::__construct():读取问候包时出错。 F:\Xampp\htdocs\Project\submit.php 第 13
行中的 PID=4572
警告:mysqli::__construct(): (HY000/2006): MySQL 服务器已在第 13 行的 F:\Xampp\htdocs\Project\submit.php 中消失
致命错误:第 13 行 F:\Xampp\htdocs\Project\submit.php 中超过 120 秒的最大执行时间
确保使用正确的 MySQL 端口 (默认为 3306
)并且 user
table存在(下面的示例也确保了这一点),最后将 HTML 部分 method=post"
更改为 method="post"
(缺少双引号)。
试试下面的方法:
<?php
$x=$_POST['firstname'];
$y=$_POST['lastname'];
$servername= 'localhost';
$username = 'root';
$password = '';
$dbname = 'db1';
$port = 3306;
$conn = new mysqli($servername, $username, $password, $dbname, $port);
echo "Connection successful!" . "<bc>";
// Ensures table exists:
$conn->query('CREATE TABLE IF NOT EXISTS `user` (fname VARCHAR(40) NOT NULL, lname VARCHAR(20) NOT NULL);');
$sql = "INSERT INTO user (fname, lname) VALUES ('$x', '$y')";
if($conn->query($sql) === TRUE){
echo "New record created successfully";
} else {
echo "<bc> Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
无论如何,我建议您使用 PHP 的 PDO
和准备好的查询(以防止 SQL 注入攻击),这会将您的代码变成:
<?php
$x=$_POST['firstname'];
$y=$_POST['lastname'];
$servername= 'localhost';
$username = 'root';
$password = '';
$dbname = 'db1';
//$port = 3306;
try {
$pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
echo "Connection successful!" . "<bc>";
// Ensures table exists:
$pdo->query('CREATE TABLE IF NOT EXISTS `user` (fname VARCHAR(40) NOT NULL, lname VARCHAR(20) NOT NULL);');
// prepare the statement and/or command
$sql = 'INSERT INTO user (fname, lname) VALUES (:x, :y)';
$statement = $pdo->prepare($sql);
// pass value to the command
$statement->bindParam(':x', $x, PDO::PARAM_STR);
$statement->bindParam(':y', $y, PDO::PARAM_STR);
// execute the prepared statement
if($statement->execute() === TRUE){
echo "New record created successfully";
} else {
echo "<bc> Error: " . $sql . "<br>" . join(' ', $statement->errorInfo());
}
$statement->closeCursor();
} catch (PDOException $e) {
die("Error occurred:" . $e->getMessage());
}
?>
我正在尝试使用 xampp 服务器上的 php 将此表单数据提交到另一个数据库。一旦我点击提交,它就会显示等待本地主机,甚至不会将条目保存在数据库中。我在 xampp 中进行了更改以侦听端口 8080.I,这对 php 来说还很陌生。提前致谢!
这是我的html
<!DOCTYPE html>
<html>
<body>
<form action="submit.php" method=post">
First name:<br>
<input type="text" name="firstname" >
<br>
Last name:<br>
<input type="text" name="lastname" >
<br><br>
<input type="submit" value="submit">
</form>
</body>
</html>
这是我的 php 代码
<?php
$x=$_POST['firstname'];
$y=$_POST['lastname'];
$servername= 'localhost';
$username = 'root';
$password = '';
$dbname = 'db1';
$port = 8080;
//$mysqli = new mysqli("localhost", "username", "password", "dbname");
$conn = new mysqli($servername, $username, $password, $dbname, $port);
echo "Connection successful!" . "<bc>";
$sql = "INSERT INTO user (fname, lname) VALUES ('$x', '$y')";
if($conn->query($sql) === TRUE){
echo "New record created successfully";
} else {
echo "<bc> Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
我似乎也遇到了以下错误: 注意:未定义索引:F:\Xampp\htdocs\Project\submit.php第3行第一个
注意:未定义索引:最后在 F:\Xampp\htdocs\Project\submit.php 第 4 行
警告:mysqli::__construct():MySQL 服务器已在 F:\Xampp\htdocs\Project\submit.php 第 13 行
中消失警告:mysqli::__construct():读取问候包时出错。 F:\Xampp\htdocs\Project\submit.php 第 13
行中的 PID=4572警告:mysqli::__construct(): (HY000/2006): MySQL 服务器已在第 13 行的 F:\Xampp\htdocs\Project\submit.php 中消失
致命错误:第 13 行 F:\Xampp\htdocs\Project\submit.php 中超过 120 秒的最大执行时间
确保使用正确的 MySQL 端口 (默认为 3306
)并且 user
table存在(下面的示例也确保了这一点),最后将 HTML 部分 method=post"
更改为 method="post"
(缺少双引号)。
试试下面的方法:
<?php
$x=$_POST['firstname'];
$y=$_POST['lastname'];
$servername= 'localhost';
$username = 'root';
$password = '';
$dbname = 'db1';
$port = 3306;
$conn = new mysqli($servername, $username, $password, $dbname, $port);
echo "Connection successful!" . "<bc>";
// Ensures table exists:
$conn->query('CREATE TABLE IF NOT EXISTS `user` (fname VARCHAR(40) NOT NULL, lname VARCHAR(20) NOT NULL);');
$sql = "INSERT INTO user (fname, lname) VALUES ('$x', '$y')";
if($conn->query($sql) === TRUE){
echo "New record created successfully";
} else {
echo "<bc> Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
无论如何,我建议您使用 PHP 的 PDO
和准备好的查询(以防止 SQL 注入攻击),这会将您的代码变成:
<?php
$x=$_POST['firstname'];
$y=$_POST['lastname'];
$servername= 'localhost';
$username = 'root';
$password = '';
$dbname = 'db1';
//$port = 3306;
try {
$pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
echo "Connection successful!" . "<bc>";
// Ensures table exists:
$pdo->query('CREATE TABLE IF NOT EXISTS `user` (fname VARCHAR(40) NOT NULL, lname VARCHAR(20) NOT NULL);');
// prepare the statement and/or command
$sql = 'INSERT INTO user (fname, lname) VALUES (:x, :y)';
$statement = $pdo->prepare($sql);
// pass value to the command
$statement->bindParam(':x', $x, PDO::PARAM_STR);
$statement->bindParam(':y', $y, PDO::PARAM_STR);
// execute the prepared statement
if($statement->execute() === TRUE){
echo "New record created successfully";
} else {
echo "<bc> Error: " . $sql . "<br>" . join(' ', $statement->errorInfo());
}
$statement->closeCursor();
} catch (PDOException $e) {
die("Error occurred:" . $e->getMessage());
}
?>