我可以使用get_方法中的变量获取mysql数据吗? 我想知道这是否可以做到,还是是否错了: 我在MySQL中有一个包含以下列的表: email_message | email_message_es | email_subject | email_subject_es 所以我有这个代码: $

问题描述 投票:0回答:1
email_message| email_message_es | email_subject | email_subject_es

我有这个代码:

$email_message = $_GET['langmess']; $email_subject = $_GET['langsub']; if ($payment == 'gateway1') { //Admin Email DATA $admin_mail = mysqli_query($link, "SELECT * FROM email_template WHERE email_type = 'email_me' "); $admin_mailData = mysqli_fetch_array($admin_mail); //Variables $string = $admin_mailData['$email_message']; $subjectmail = $admin_mailData['$email_subject']; $pattern = '/{(\w+)}/i'; $replacement = "$$1"; $msnAdminbody = preg_replace($pattern, $replacement, $string); eval("\$msnAdminbody = \"<html><body> " . $msnAdminbody . " </body></html>\";");

这只是代码的一部分,但是我不确定是否可以使用变量从mySQL获取数据,其想法是url包含:http://mydomain/file.php?langmess = email_message_es_es&langsub = email_subject_es

or
http://mydomain/file.php?langmess = email_message&langsub =email_subject

因此,将来可以用正确的语言将电子邮件发送给管理员和用户。

提前感谢您的帮助,我为我的英语感到抱歉。

它与mysql没有太大关系,但问题是:

$string = $admin_mailData['$email_message']; $subjectmail = $admin_mailData['$email_subject'];

单语引号,PHP寻找一个名为“ $ email_message”的索引。您需要删除单个引号,以检索以变量值命名的列。
php mysql variables
1个回答
1
投票

顺便说一句,这并不能解决您的代码中的所有安全问题。这样做的一种更安全的方法就是这样:

$language_code = $_GET['lang'];

if ($payment == 'gateway1') {
    //Admin Email DATA
    $admin_mail     = mysqli_query($link, "SELECT * FROM email_template WHERE email_type = 'email_me' ");
    $admin_mailData = mysqli_fetch_array($admin_mail);
    //Variables

    switch($language_code)
    {
        case 'es':
            $string         = $admin_mailData['email_message_es'];
            $subjectmail    = $admin_mailData['email_subject_es'];
            break;
        default:
            $string         = $admin_mailData['email_message'];
            $subjectmail    = $admin_mailData['email_subject'];
            break;
    }
    $pattern        = '/{(\w+)}/i';
    $replacement    = "$$1";
    $msnAdminbody   = preg_replace($pattern, $replacement, $string);

eval()
确实在这里确实是不确定的,可以替换为:

$msnAdminbody = "<html><body> " . $msnAdminbody . " </body></html>";


您可以,但是您必须使用Double Quote而是单Quote-> $ admin_maildata [“ $ email_message”]。
但这不是好主意,因为客户端可以轻松修改$ _get变量并发送空邮件。
    


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.