首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通讯注册页面(PHP & MySQL)

问通讯注册页面(PHP & MySQL)
EN

Stack Overflow用户
提问于 2014-09-08 16:14:02
回答 2查看 3.4K关注 0票数 1

我正在创建一个与PHP和MySQL的通讯注册页面。我使用来自this site的这个免费源代码。

我在MySQL中创建了一个数据库,并成功地进行了测试,并将其链接到我的PHP文件中。但是,当我预览错误(subscribe.php)时,我会收到它的错误通知。不确定代码中遗漏了哪些变量。

注意:未定义的索引:在第15行的C:\xampp\htdocs\test\subscribe.php中注册-电子邮件{“状态”:“错误”,“消息”:“电子邮件地址字段不能为空”}**

下面是我的代码(2个PHP文件):

newsletters.php

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>newsletters</title> 
<link rel="stylesheet" href="css/newsletter.css">

</head>
<body>

    <div id="newsletterform">
    <div class="wrap">
        <h3>Get Email Update</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ullamcorper sapien luctus nisl laoreet, ac commodo tellus placerat. Etiam nec magna lacus. Curabitur quis felis vel nisl tincidunt hendrerit.</p>
        <form action="subscribe.php" method="post" id="newsletter" name="newsletter">
        <input type="email" name="signup-email" id="signup-email" value="" placeholder="Insert email here" />
        <input type="submit" value="Subscribe" name="signup-button" id="signup-button">
        <span class="arrow"></span>
        </form>
        <div id="response"></div>
        </div>
    </div>

<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
<script src="js/lib.js"></script>


</body>
</html>

subscribe.php

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>newsletter-submit</title> 
</head>

<body>
<?php

$host   = "localhost";
$dbname = "cc_email_list";
$user   = "ccemail";
$pass   = "password";
$email    = filter_var($_POST['signup-email'], FILTER_SANITIZE_EMAIL);
$datetime = date('Y-m-d H:i:s');

try {
    $db = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

    if (empty($email)) {
        $status = "error";
        $message = "The email address field must not be blank";
    } else if (!preg_match('/^[^0-9][A-z0-9._%+-]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/', $email)) {
        $status = "error";
        $message = "You must fill the field with a valid email address";
    } else {
        $existingSignup = $db->prepare("SELECT COUNT(*) FROM signups WHERE     signup_email_address='$email'");
        $existingSignup->execute();
        $data_exists = ($existingSignup->fetchColumn() > 0) ? true : false;

        if (!$data_exists) {
            $sql = "INSERT INTO signups (signup_email_address, signup_date) VALUES (:email, :datetime)";
            $q = $db->prepare($sql);
            $q->execute(
                array(
                    ':email' => $email,
                    ':datetime' => $datetime
            ));

            if ($q) {
                $status = "success";
                $message = "You have been successfully subscribed";
            } else {
                $status = "error";
                $message = "An error occurred, please try again";
            }
        } else {
            $status = "error";
            $message = "This email is already subscribed";
        }
    }

    $data = array(
        'status' => $status,
        'message' => $message
    );

    echo json_encode($data);

    $db = null;
}
    catch(PDOException $e) {
    echo $e->getMessage();
}

?>
</body>
</html>
EN

回答 2

Stack Overflow用户

发布于 2014-09-08 16:17:25

你为什么要面对这个问题

此错误意味着没有设置$_POST'signup-email‘(因此表单是在没有填写“注册-电子邮件”名称的情况下提交的,或者根本没有填写)。

这不是一个严重的错误,也不会影响代码的正确操作。

解决方案

如果要关闭对此类错误的报告,请在PHP标记打开后添加以下代码:

代码语言:javascript
复制
error_reporting(E_ERROR | E_WARNING | E_PARSE);
票数 0
EN

Stack Overflow用户

发布于 2014-11-18 17:23:06

如果你被“通知”挂断了,你会真的讨厌将来的大型PHP项目:)!大多数人只需关闭它们,就可以将下面的代码放在任何php页面的顶部。

代码语言:javascript
复制
<?php
error_reporting(E_ALL ^ E_NOTICE);
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25728586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档