我需要从我的网站上的表单中保存电子邮件,但出于某种原因我无法保存它

I need to save emails from a form on my website, and for some reason I can't get it to save

我不确定这里出了什么问题。几个小时以来,我一直试图将电子邮件保存到我的 MySQL 数据库中的单个列 table,但无法弄清楚。

Html:

<div class="row">
    <div class="col-md-12">
        <div class="call-to-action text-center">
            <form class="form-inline margin-clear">
                <div class="form-group has-feedback">
                    <label class="sr-only" for="subscribe3">Email address</label>
                    <input type="email" class="form-control form-control-lg" id="subscribe3" placeholder="Enter email" name="subscribe3" required="">
                    <i class="fa fa-envelope form-control-feedback"></i>
                </div>
                <button type="submit" class="btn btn-lg btn-gray-transparent btn-animated margin-clear">Subscribe <i class="fa fa-send"></i></button>
            </form>
        </div>
    </div>
</div>

PHP:

<?php
    //checking if data has been entered
    if( isset( $_POST['subscribe3'] ) && !empty( $_POST['subscribe3'] ) )
    {
        $data = $_POST['subscribe3'];
    } else {
        header( 'location: index.html' );
        exit();
    }

    //setting up mysql details
    $sql_server = 'localhost';
    $sql_user = 'root';
    $sql_pwd = '*password*';
    $sql_db = 'newsletter';

    //connecting to sql database
    $mysqli = new mysqli( $sql_server, $sql_user, $sql_pwd, $sql_db ) or die( $mysqli->error );


    //inserting details into table
    $insert = $mysqli->query( "INSERT INTO email ( `Emails` ) VALUES ( '$data' )" );

    //closing mysqli connection
    $mysqli->close;
?>

最后的问题是它以白页结尾。如何重定向回 default/home 页面?

您可以尝试将提交按钮更改为提交类型的输入。这样你就可以改变 php 因为我相信你当前的代码自相矛盾

PHP 应该看起来像这样

if (isset($_POST['submit']))
{
 if (!empty ($_POST['subscribe3'])
 {
  $data = trim ($_POST['subscribe3']);
 } else
 {
  header ('location: index.html');
  exit();
 }
}

重申这一点只有在您将提交按钮从按钮更改为输入时才有效

希望对您有所帮助

将您的查询更改为:

$insert = $mysqli->query( "INSERT INTO email ( `Emails` ) VALUE ( '$data' )" );

至:

$insert = $mysqli->query( "INSERT INTO email ( `Emails` ) VALUES ( '$data' )" );

我知道 MYSQL Docs 显示 {VALUES | VALUE},但根据我的经验,它从未奏效并且 none 的示例包含“VALUE”。所以一个安全的赌注是那是你的错误。