0

我正在使用以下 php 查询在我的 CMS 系统中安装表:

$q=new mysql("
INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES
(0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', 'admin@domain.com');
");

/settings/contact.inc.php但是,我想使用存储在文件中的电子邮件而不是电子邮件 admin@domain.com :

    <?php    
$emailaddress='admin@domain.com';
    ?>
4

6 回答 6

3

只需包含文件并使用变量:

require_once("/settings/contact.inc.php");

$q=new mysql("
INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES
(0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress');
");

谨防 SQL 注入

在这种情况下,您知道$emailaddress来自哪里,并且您可以信任内容。在其他情况下,您需要保护您的代码免受SQL 注入

因此,我建议您使用准备好的语句,使用mysqli函数。

然后,您可以用问号或命名占位符替换查询中的变量:

"INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES (0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', ?);"

$emailaddress使用mysqli_stmt_bind_param函数绑定。

于 2013-05-21T11:29:59.827 回答
2

你可以简单地使用它,

$query = "INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) 
          VALUES (0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress')";

注意:您需要包含/settings/contact.inc.php文件。

请阅读: sql注入攻击!改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。

于 2013-05-21T11:29:52.797 回答
1

您可以包含该文件,然后您可以使用如下所示的 all 变量。

<?php include_once('/settings/contact.inc.php'); ?>
于 2013-05-21T11:36:21.487 回答
1
include('/settings/contact.inc.php');
$q=new mysql("INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) VALUES (0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress');");
于 2013-05-21T11:32:21.963 回答
1

您可以包含 /settings/contact.inc.php,然后可以使用 $emailaddress 变量。

于 2013-05-21T11:30:54.460 回答
0

所有的答案都很棒,所以我都投了赞成票。除了每个人都建议您可以使用fopenand来做到这一点fread。我知道这种方式很简单,但我的方式只是另一种方式。

$filePath = './settings/contact.inc.php';

$handle  = fopen($filePath,"r+");
$content = fread($handle,filesize($filePath));
$array = explode(" ",$content);
foreach($array as $word)
{
    if(filter_var($word, FILTER_VALIDATE_EMAIL))
    {
        $emailaddress = $word;
    }
}
fclose($handle);

$q=new mysql("INSERT INTO `adm` (`id`, `login`, `adm`, `passwd`, `czas`, `logged`, `ip`, `email`) 
VALUES
(0, 'admin', 1, PASSWORD('admin'), 0, 0, '0.0.0.0', '$emailaddress');");
于 2013-05-21T11:48:55.547 回答