我是 PHP 新手。我需要有关从给定 URL 名称中提取数据库名称和表名称的方法的帮助。例如,假设我有一个如下所示的 URL:
/test.php?db=...&table=.../
如何使用 PHP 从此 URL 中提取数据库名称和表名称,并将结果用于其他查询目的。
如果您的意思是如何解析现有 URL 的参数:
parse_url() 和 parse_str() 将帮助您剥离 url 的组件。您将主要查看以下内容
$elements = parse_url($url);
$kvps = $elements->query;
$db = parse_str($kvps['db']);
$table = parse_str($kvps['table']);
但是,如果您的意思是如何在渲染之前从当前页面获取变量:
<?php
$dbname = $_GET['db'];
$tablename = $_GET['table'];
?>
是的,以这种方式开放对数据库的“直接”访问涉及重大安全风险。最好在任务中混淆/封装/包装您的函数,index.php&addUser=tim
而不是index.php&insert=tim&db=boofar&table=users&dbuser=root&dbpassword=secure
.
如果您只是在学习,那么您所做的一切都很好,只要您意识到为什么是错误的。如果您正在为生产编写代码,那么您确实需要一个替代解决方案。
有两种方法可以将变量或数据传递到另一个页面。
GET(通过 URL)和 POST(通常是表单提交)
你总是可以通过 $_GET http://php.net/manual/en/reserved.variables.get.php
或者
$_POST http://nl.php.net/manual/en/reserved.variables.post.php