2010-01-16 5 views
0

"echo $ query"를 사용하여 가치가 있는지 여부를 확인했지만 페이지에 아무 것도 표시하지 않습니다. 어떤 가치를 얻고 있는지 알아 보는 다른 방법은 무엇입니까?페이지에 값을 표시하지 않는 에코가 표시되지 않습니다.

Aptana Studio 2.0 PDT를 사용하지만 중단 점을 설정할 수 없습니다. 그것에서 아주 새로운. 페이지는 도움이 될 수있는 (당신의 선택의 또는 웹 서버) 완전히 블랭크 아파치 들여다 errorlogs 인 경우

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

    $ulName = $_GET['ControlName']; 
    $query = $_GET['SqlQuery']; 
    echo $query; 
    mysql_connect('localhost:3306','pffsddsf','dfsdfsd'); 
    mysql_select_db('publicdb'); 
    $result=mysql_query("select * from electioncategorymaster"); 
?> 
<ul id="<?php echo $ulName; ?>" name="<?php echo $ulName; ?>"> 
<?php while($row=mysql_fetch_array($result)) 
{ ?> 
    <li><?php echo $row[1]; ?></li> 
<?php } ?> 
</ul> 

답변

4

당신은 페이지가 실제로 점점 상황을 확인하기 위해

var_dump($_GET); 

와 스크립트를 예상 한 매개 변수를 받고, 그래서 시작되지 않을 수 있습니다.

데이터베이스 서버와 클라이언트 브라우저에 축 어적으로 전달되는 매개 변수를 수락하는 것은 보안에 불과합니다.

$ ulName 변수 가져 오기 - 내가 선택한 HTML을 주입 할 수 있으므로 영숫자로 제한하지 않으시겠습니까?

if (preg_match('/[^a-z0-9_]/i', $ulName) 
    die("Invalid ControlName specified"); 

매개 변수를 통해 SQL을 수용에 관해서는, 나는 정말하지 않을 것이라고 완전히 응용 프로그램의 사용자 ....

?SqlQuery=DROP+DATABASE+publicdb 

무서운 권리를 신뢰하지 않는? 이제이 두 가지 결점을 결합한다면 어떨까요? 귀하의 페이지를 표시하는 링크를 만들 수는 있지만 그 쿼리를 포함하는 숨겨진 필드가있는 양식을 포함 시켰습니다. "재미있는 고양이 동영상을 보려면 나를 클릭하십시오."라는 큰 버튼이 함께 표시됩니다.

var_dump($query); 
exit; 

을하고 어떻게 무엇 참조 : 지금은 그냥 거기에 링크를 보내 내 악 입찰 :

+0

초심자에게 쓸모가 없다는 말은 ... "나쁜 생각"이라고 말하는 이유는 무엇입니까? –

+0

나는 생각했다. 그러나 나는 적절하게 무서운 예제를 포함하도록 SQL 주입 경고를 확장했다 ... –

+0

고마워. 나는 그것을 메모 할 것입니다. 그 사이에, 어디에서 var_dump()를 쓸 것인가? – RKh

1

var_dump($query);

(또한 쇼/빈 문자열을보고)보십시오.

1

이 시도 할 다른 사람을 기다릴 필요가있다.

0

이 간단한 방법으로 어떤 값도 표시되지 않으면 자연스럽게 "에코가 작동합니까? 아니면 값을 표시 할 수 있습니까?"

나는 얼마 전에 비슷한했지만 echo를 사용하기보다는, 나는 그래서 난이 비어 [] 값이 $_GET

0

첫번째 반환하지있을 때 볼 수

printf("[%s]", $query); 

을 사용 : 가능 오류 로깅 및 또한 로그 파일에 로깅.

error_reporting(E_ALL); 
ini_set('display_errors','On'); 

당신의 오류 로그가 다음을 수행하여 작동하는지 당신이 시도 할 수 있습니다 :

error_log("This Error should be displayed!", 0); 

는 php.net 사이트에서 오류 처리 및 로깅에 대한 자세한 내용을 참조하기 : http://www.php.net/manual/en/book.errorfunc.php

1

이 들릴 수도 쓸모 없지만 사용중인 '예제'URL에도 복사해야합니다.

PHP는 대개 대소 문자를 구분하므로 (특히 배열 키의 경우) PHP는 GET 매개 변수와 관련하여 올바른 URL을 사용하고 있는지 확인합니다.

+0

좋은 답변입니다. www.example.com/script.php?ControlName=foo가 작동합니다. www.example.com/script.php?controlname=foo는 그렇지 않습니다. –

관련 문제