在提交时允许电子邮件和数据库输入

时间:2013-04-25 01:50:37

标签: php database forms email

嗨,我已经有一段时间了,并且一直在努力做事。它只是去数据库,我经常检查它,但你可以认为这是一种非常繁琐的做事方式。这是我目前的代码。

<?php
$name = "";
$email = "";
$msg_to_user = "";
if ($_POST['name'] != "") {

    include_once "newsletter/connect_to_mysql.php";

    // Be sure to filter this data to deter SQL injection, filter before querying database
    $name = $_POST['name'];
    $email = $_POST['email'];

    $sql = mysql_query("SELECT * FROM newsletter WHERE email='$email'");
    $numRows = mysql_num_rows($sql);

    if (!$email) {

        $msg_to_user = '<br /><br /><span style="font color="FF0000">Please type an email address ' . $name . '.</span>';

    } else if ($numRows > 0) {

        $msg_to_user = '<br /><br /><font color="FF0000">' . $email . ' is already in the system.</font>';

    } else {

        $sql_insert = mysql_query("INSERT INTO newsletter (name, email, dateTime) 
                                                    VALUES('$name','$email',now() )")  or die (mysql_error());

        $msg_to_user = '<br /><br /><div style="color=#F47926;width:180px;">Thanks ' . $name . ',  expect an email shortly!</div>';
        $name = "";
        $email = "";
    }
}
?>

我正在尝试添加一种简单的方法来发送电子邮件,并将电子邮件和姓名发送到我自己的电子邮件地址。这样我就不必经常检查数据库本身,而是查看它们出现在我的电子邮件中。我希望这是有道理的。

2 个答案:

答案 0 :(得分:0)

进行一些额外的检查以验证通过$ _POST传递的数据是明智的。

这样的事情应该让你开始。

$email = filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL);

以下是发送电子邮件的方式。

$message = 'Name: ' . $_POST['name'] . ', Email: ' . $_POST['email']; 
mail('your@email.com', 'A New User Has Signed Up',  $message);

http://php.net/manual/en/function.mail.php

http://php.net/manual/en/function.filter-var.php

答案 1 :(得分:-1)

我真的不知道需要做什么,但如果你要求改进或建议......

而不是:

$msg_to_user = '<br /><br /><span style="font color="FF0000">Please type an email address ' . $name . '.</span>';

你可以这样做:

$msg_to_user = "<br /><br /><span style='color:FF0000'>Please type an email address {$name}.</span>";

注意:使用双引号。