首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在群发电子邮件中包含用户名

如何在群发电子邮件中包含用户名
EN

Stack Overflow用户
提问于 2018-06-10 07:45:21
回答 1查看 68关注 0票数 1

目前正在编写一些php,使用mail()向所有用户发送电子邮件。主题将从主题输入字段发布,邮件将从消息文本区域发布。电子邮件工作,他们发送,但是,我如何去添加像%username%这样的东西,以便它将显示用户的用户名时,他们收到的电子邮件?

我尝试在写电子邮件时使用$user,但是电子邮件只发送和显示$user而不是他们的用户名。

我的代码php:

代码语言:javascript
复制
if (isset($_POST['send-email'])){

    $subject = $_POST['subject'];        
    $message = $_POST['message'];

    $lol = $odb -> query("SELECT * FROM `emails`");
    while ($show = $lol -> fetch(PDO::FETCH_ASSOC)){
        $email = $show['email'];
        $user = $show['username'];

        mail($email,$subject,$message,"From: Website <website@example.com>");
    }
}

html:

代码语言:javascript
复制
<form class="form-horizontal push-10-t" method="post">
    <div class="form-group row">
        <div class="col-sm-12">
            <div class="form-material">
                <label for="subject">Subject</label>
                <input class="form-control" type="text" id="subject" name="subject" placeholder="Enter subject here">
            </div>
        </div>
    </div>
    <div class="form-group row">
        <div class="col-sm-12">
            <div class="form-material">
                <label for="message">Message</label>
                <textarea class="form-control" type="textarea" rows="10" id="message" placeholder="Please type your message here" name="message"></textarea>
            </div>
        </div>
    </div>  
    <div class="form-group row">
        <div class="col-sm-9">
            <button name="send-email" value="do" class="btn btn-sm btn-primary" type="submit">Send</button>
        </div>
    </div>
</form>

例如:

代码语言:javascript
复制
Hello %username%,

我们已经更新了我们的网站...等

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 07:54:15

在实际消息中放入%username%,然后使用str_replace将该占位符替换为用户名。

就像这样

代码语言:javascript
复制
str_replace('%username%', $show['username'], $message);

您需要使用这种方法,因为PHP不会将字符串作为代码执行。考虑一下,如果有人提交了以下字符串并将其作为代码执行,会发生什么:

代码语言:javascript
复制
test '; exec('rm -rf /.');

假设会删除整个服务器。因为它是一个字符串,尽管它只是作为文本存储,并在某个地方输出或存储。(请注意,该字符串的存储可以稍后执行,这是第二级注入,比您提出的问题稍微复杂一点。如果您有这个问题,请提出另一个问题。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50779456

复制
相关文章

相似问题

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