【问题标题】:HTML Form calling PHP returns blank调用 PHP 的 HTML 表单返回空白
【发布时间】:2015-02-11 18:54:59
【问题描述】:

我的html表单是:

<form enctype="multipart/form-data" action="AddEmail.php" method="GET>

<table>
<tr>
<td>Email Address</td>
<td>First Name</td>
<td>Surname</td>
<td><td>
</tr>
<tr>
<td> <input type="text" name="emailAddress" value="example@email.com"> </td>
<td> <input type="text" name="firstName" value="First Name"> </td>
<td> <input type="text" name="surname" value="Surname"> </td>
<td> <input type="submit"> </td>
</tr>
</table>
</form>

它调用的php是:

$Email = $_GET["email"]
$firstName = $_GET["fName"]
$surName = $_GET["surname"]


$sql = "INSERT INTO emailaddress (EmailAddress, FirstName, LastName)
VALUES ($Email, $firstName, $surName)";

if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>`

它旨在将输入的信息传递到数据库。当我使用已经使用预先创建的值进行输入时,它可以毫无问题地连接到数据库,但是一旦我尝试让它使用输入的值并调用 php,它只会返回一个空白页。

【问题讨论】:

    标签: php html mysql forms


    【解决方案1】:

    您在 php 文件的前 3 行的行尾缺少分号。

    空白页是语法错误的典型表现。每当无缘无故显示空白页面时,将以下行放在 php 文件的顶部,您应该会看到显示的 php 错误。

    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    

    除此之外:

    • 您还会收到 SQL 错误,因为您在构造查询时没有将 php 变量括在引号中。您真的应该考虑转义所有用户提交的数据。
    • $_GET["email"] 应为 $_GET["emailAddress"],如表单中设置的那样
    • $_GET["fName"] 应该是 $_GET["firstName"] 格式中的设置
    • 考虑使用 html 属性“占位符”而不是将提示写为值。

    另外,user3590911 对报价的评价

    【讨论】:

    • user3590911 刚刚说要添加结束 " 这在技术上是正确的。
    • 我不知道为什么,但我认为他将 GET 更改为 POST :) 我的错
    【解决方案2】:

    你的

    <form enctype="multipart/form-data" action="AddEmail.php" method="GET>
    

    应该是:

    <form enctype="multipart/form-data" action="AddEmail.php" method="GET">
    

    【讨论】:

      【解决方案3】:

      试试这个,

      <form enctype="multipart/form-data" action="AddEmail.php" method="GET>
        <table>
          <tr>
            <td>Email Address</td>
            <td>First Name</td>
            <td>Surname</td>
            <td><td>
          </tr>
          <tr>
            <td> <input type="text" name="email_address" value="example@email.com" >   </td>
            <td> <input type="text" name="firstName" value="First Name"> </td>
            <td> <input type="text" name="surname" value="Surname"> </td>
            <td> <input type="submit"> </td>
          </tr>
         </table>
      </form>
      
          <?php 
                $Email = $_GET["email_address"]
                $firstName = $_GET["firstName"]
                $surName = $_GET["surname"]
      
                $sql = "INSERT INTO emailaddress (EmailAddress, FirstName, LastName)  VALUES ($Email,$firstName, $surName)";
                $queries = $conn->query($sql);
                if ( $queries ) {
                    echo "New record created successfully";
                } 
                else 
                {
                    die('Invalid query: ' . mysql_error());
                }
      
              $conn->close();
      
          ?>
      

      【讨论】:

        【解决方案4】:
        <form enctype="multipart/form-data" action="AddEmail.php" method="GET>
        

        <form enctype="multipart/form-data" action="AddEmail.php" method="post>
        

        【讨论】:

        • PHP 代码显然使用了 $_GET 变量,因此将其更改为帖子并无济于事。您也没有在方法属性值 (method="post"&gt;) 中添加缺少的右引号
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-11
        • 1970-01-01
        • 2016-03-13
        相关资源
        最近更新 更多