2012-06-17 2 views
0

저는 PHP를 처음 사용합니다. 주어진 URL 이름에서 DB 이름과 테이블 이름을 추출하는 방법에 관해 도움이 필요합니다. PHP의 URL에서 데이터베이스 이름과 테이블 이름을 가져 오는 방법은 무엇입니까?

가 어떻게 DB 이름과 테이블 이름을 추출/...

/test.php?db = ... & 테이블 = 예를 들어 , 나는 아래와 같은 URL을 가지고의 말을하자 이 URL에서 PHP를 사용하여 다른 쿼리 목적으로 결과를 사용하십시오. 당신이 매개 변수의 대한 기존 URL을 구문 분석하는 방법을 의미하는 경우

+0

'parse_url'과'parse_str()'이 도움이 될 것입니다. http://php.net/manual/en/function.parse-url.php http://php.net/manual/en/function.parse-str.php –

+2

아시다시피, 이제 시작하고 있습니다. 기본 사항. 그러나 사용자 항목 (URL에서)을 데이터베이스로 전달할 때 고려해야 할 보안 측면이 많이 있다는 것을 알아야합니다. 어쩌면 여기에서 읽기 시작 https://en.wikipedia.org/wiki/SQL_injection – pixelistik

답변

2

는 :

parse_url()와 parse_str()를 사용하면 URL의 구성 요소를 제거하는 데 도움이됩니다. 개방과 관련된 주요 보안 위험을

<?php 

$dbname = $_GET['db']; 
$tablename = $_GET['table']; 

?> 

을 그리고 참가 : 당신은 주로 다음과 같은

$elements = parse_url($url); 
$kvps = $elements->query; 
$db = parse_str($kvps['db']); 
$table = parse_str($kvps['table']); 

보고하지만, 이전에 렌더링 현재 페이지에서 변수를 가져 오는 방법을 의미하면됩니다 이 방법으로 데이터베이스에 '직접'액세스하십시오. 가장 좋은 방법은대신 index.php&addUser=tim과 같은 작업에서 함수를 난독 화/캡슐화/래핑하는 것입니다.

당신이 배우는 경우, 그것이 틀린 이유를 알기 만하면, 당신이하고있는 일은 훌륭합니다. 프로덕션을 코딩하는 경우에는 대체 솔루션이 필요합니다.

+0

비슷합니다.하지만 URL에서 값을 얻어야합니다. 어떻게해야합니까? – bharath119

+0

@Pekka가 제안한대로 parse_url()을 사용하십시오. –

+0

'$ _GET' *은 URL 쿼리 문자열의 값입니다. – pixelistik

관련 문제