그래서이 플래시 게임을 만들었고 모든 적절한 변수가 입력되었습니다. 사용자가 로그인했다면, mysql 데이터베이스에 변수 $ _SESSION [user]을 입력하여 사용자의 점수를 저장해야한다 (SHOULD). 어떤 이상한 이유 때문에, 그렇게하지 않습니다. 낯설게 만드는 것은 $ _SESSION [user] 변수를 정확하게 반향시킬 수 있지만, mysql DB에 던져 넣으면 NULL (0)을 반환한다는 것입니다. 다음은 모든 처리를 수행하는 코드입니다. 내가 잘못 아무것도 표시되지 않습니다
<?php
session_start();
?>
<html>
<?php
include("../package.php"); //stuff for UI
echo $_SESSION[user]; //this works
if($_SESSION[user]){
mysql_query("INSERT INTO `DB`.`TABLE` (`user`,`type`,`game`,`score`) VALUES ('$_SESSION[user]', '$_POST[type]', '$_POST[g]', '$_POST[score]')");
?>
//Congratulations message in HTML
<?php
}
else{
?>
//Tells you to login (the 'else' statement to if($_SESSION[user])) also in HTML
<?php
}
?>
....
스크립트를 디버깅 할 때 실제로 오류보고를 활성화해야합니다. 그런 다음 여러 오류가 있음을 알게됩니다. 경고를 찾으십시오. 기본적으로''{$ _POST [ 'type']} ','{$ _POST [ 'g'}} ','{$ _POST [score]} '' '- 어쨌든 이것은 약간의 꼬마들에게 많은 재미를 가져다 줄 것입니다 데이터베이스 때문에 SQL 주입 - http://xkcd.com/327/ – hakre
'echo $ _SESSION [user]; // this works'는 첫 번째 오류 (가장 확실하게 ../package.php에 더 많은 오류가 있음)를 제공해야합니다. – hakre
플래시 게임에서 SQL 주입? 어떻게 가능할까요? 나는 그들에게 어떤 필드를 입력하지 않았다. –