php - PHP和表单在同一页面上
问题描述
我已经看过 StackOverflow 上的所有代码。如果我在表单中使用操作并将 php 代码粘贴到另一个文件上,那很好,但是如果我在同一个文件上发布 php 和表单代码,那么它会给我这个错误:
注意:未定义索引:第 50 行 C:\xampp\htdocs\php_codes\form.php 中的 fname
注意:未定义索引:第 51 行 C:\xampp\htdocs\php_codes\form.php 中的姓氏
这是 HTML/CSS 代码:
table,
td {
border: 1px solid black;
}
<h1 align="center">Enter Data below</h1>
<br>
<br>
<br>
<form method="post" action="">
<table align="center">
<tr>
<td><input type="test" name="fname" placeholder="first name"></td>
</tr>
<tr>
<td><input type="text" name="lastname" placeholder="last name"></td>
</tr>
<tr>
<td align="right"><input type="submit" value="submit"></td>
</table>
</form>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "1st_database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("connection failed" . $conn->connect_error);
}
$fname = $_POST['fname'];
$lname = $_POST['lastname'];
if (empty($_POST['fname']) && empty($_POST['lastname'])) {
echo "please enter name first";
} elseif ($query = "SELECT First_Name FROM sample_table WHERE First_Name =
'$fname'")
if (mysqli_query($conn, $query) === true) {
echo "this name already exists";
} else {
$sql = "INSERT INTO sample_table (First_Name,Last_Name)
VALUES ('$fname','$lname')";
if (!$conn->query($sql) === true) {
echo "Error: " . $sql . "<br>" . $conn->error;
}
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
$sql = "SELECT * FROM sample_table";
$result = $conn->query($sql);
echo "<table>";
while ($row = $result->fetch_assoc()) {
echo "<tr><td><b>First Name: </b> " . "<td>" . $row["First_Name"] . "</td>" . "</td><td><b>Last Name: </b>" . "<td>" . $row["Last_Name"] . "</td>" . "</td></tr>";
}
echo "</table>";
}
$conn->close();
解决方案
用这个包装你的 php 代码:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// …
}
这样代码只会在提交后执行。
或者只是isset($var)
在尝试使用它之前检查一下
推荐阅读
- c++ - 通过串口从 GPS 传感器读取
- apache-spark - 如何在结构化流中的 pyspark 中使用 foreach 运算符(因“DataStreamWriter”对象没有属性“foreach”而失败)?
- javascript - 在所有测试后 Jest/TypeORM 清除数据库
- php - 如何在codeigniter中显示类别
- flutter - 如何在 Flutter 中包装 TextFormField 验证器消息?
- sql - SQL比较列的增量差异
- video - 我使用电子邮件从手机转发了一个 SMS 视频。它没有扩展就到达了。它是什么类型的?
- typescript - TypeScript - 泛型被错误地推断为未知
- aws-lambda - aws API 网关 - {"message":"Missing Authentication Token"}
- java - 如何在编译时生成导入?