PHP和表单在同一页面上

时间:2019-03-15 14:52:49

标签: php html

我已经在StackOverflow上看到了所有代码。如果我在表单中使用动作并将php代码粘贴到另一个文件上,那很好,但是如果我在同一文件中发布php和表单代码,那么它会给我这个错误:

  

注意:未定义索引:C:\ xampp \ htdocs \ php_codes \ form.php中的fname   在第50行
  注意:未定义的索引:姓氏在   C:\ xampp \ htdocs \ php_codes \ form.php,第51行

这是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();

1 个答案:

答案 0 :(得分:0)

用以下代码包装您的php代码:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // …
}

这样,代码将仅在提交后执行。
或者只是在尝试使用前检查isset($var)