Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用变量名作为参数,通过Ajax获取PHP变量值_Php_Javascript_Jquery_Ajax - Fatal编程技术网

使用变量名作为参数,通过Ajax获取PHP变量值

使用变量名作为参数,通过Ajax获取PHP变量值,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我意识到类似的问题已经出现过好几次了,但我似乎找不到一个对我正在努力做的事情有帮助的问题 我们有一个config.php文件,它基本上是用户设置的变量列表,以及它们的值,例如: $OUR_EMAIL_ADDRESS = 'test@test.com'; $OUR_WEBSITE = 'www.test.com'; 就像所有其他用户一样,我们希望通过Javascript传输PHP值 我们已经有了一种通过ajax实现这一点的方法,但它并不像我们希望的那样灵活,因为每个变量都需要一个自定

我意识到类似的问题已经出现过好几次了,但我似乎找不到一个对我正在努力做的事情有帮助的问题

我们有一个config.php文件,它基本上是用户设置的变量列表,以及它们的值,例如:

$OUR_EMAIL_ADDRESS = 'test@test.com';
$OUR_WEBSITE       = 'www.test.com';
就像所有其他用户一样,我们希望通过Javascript传输PHP值

我们已经有了一种通过ajax实现这一点的方法,但它并不像我们希望的那样灵活,因为每个变量都需要一个自定义脚本/php页面:

第1部分-javascript(jquery)

第2部分:getConfig_email.php

<?php
echo $OUR_EMAIL_ADDRESS_VALUE;
?>
<?php
$var_name = $_GET['name'];

//some magic here to turn the name of the variable 
//in to the actual variable - a bit like a reverse extract

echo $var_name.value;
?>
第2部分:getConfig.php

<?php
echo $OUR_EMAIL_ADDRESS_VALUE;
?>
<?php
$var_name = $_GET['name'];

//some magic here to turn the name of the variable 
//in to the actual variable - a bit like a reverse extract

echo $var_name.value;
?>

你觉得怎么样?这有可能吗?我希望有一个php命令可以帮我做到这一点


非常感谢。也许更好的选择是在数组中设置配置变量:

$CFG = array(
    'OUR_EMAIL_ADDRESS' => 'test@test.com',
    'OUR_WEBSITE' => 'www.test.com'
);
并使用以下工具进行挑选:

$var_name = $_GET['name'];
echo isset($CFG[$var_name]) ? $CFG[$var_name] : "";

否则,这可能是脚本的真正安全问题。

更好的选择可能是在数组中设置配置变量:

$CFG = array(
    'OUR_EMAIL_ADDRESS' => 'test@test.com',
    'OUR_WEBSITE' => 'www.test.com'
);
并使用以下工具进行挑选:

$var_name = $_GET['name'];
echo isset($CFG[$var_name]) ? $CFG[$var_name] : "";
否则,您的脚本可能会出现真正的安全问题。

是的,可以通过以下方式解决:

但是,这是不明智的,因为您正在接受用户输入,并且用户可能会获得应该隐藏的内部变量值。

是的,可以通过以下方式获得:


但是,,这是不明智的,因为您正在接受用户输入,并且用户可能会获得应该隐藏的内部变量的值。

创建一个包含所有配置变量的字典,并使用它按名称查找变量。

创建一个包含所有配置变量的字典,并使用它按名称查找变量。

是的。。。当我第一次想做这个的时候我就是这么想的。。。事后看来,这绝对是我们应该做的。实际上,只有一个页面,用户可以在其中设置直接变量。这个脚本只对登录的用户可用-(我没有粘贴上面的全部内容),还有其他安全检查。那么,@mellamokb的解决方案将在您的情况下起作用。所以使用
$var\u name=$\u GET['name'];echo$$var_name。但无论如何,在你未来的项目中尽量避免这种“肮脏的黑客行为:)是的。。。当我第一次想做这个的时候我就是这么想的。。。事后看来,这绝对是我们应该做的。实际上,只有一个页面,用户可以在其中设置直接变量。这个脚本只对登录的用户可用-(我没有粘贴上面的全部内容),还有其他安全检查。那么,@mellamokb的解决方案将在您的情况下起作用。所以使用
$var\u name=$\u GET['name'];echo$$var_name。但无论如何,在你未来的项目中尽量避免这种“肮脏的黑客行为:)啊——这可能正是我们所追求的。我已经阅读了php页面,但没有真正了解如何使用它们。所以在我给出的示例中,我只想:
$name=$\u GET['name'];echo$$name这看起来对吗?显然我们会尽我们所能来处理安全问题,比如命名和检查允许收集的变量名之类的。啊-这可能正是我们想要的。我已经阅读了php页面,但没有真正了解如何使用它们。所以在我给出的示例中,我只想:
$name=$\u GET['name'];echo$$name这看起来对吗?显然,我们会尽我们所能来处理安全问题,比如命名和检查允许收集的变量名称之类的。唉,我们已经走得太远了。新项目都是这样运作的。唉,我们走得太远了,无法做到这一点。新项目都是这样工作的。