Web 모의해킹

웹보안) DataBase 와 PHP

5_jinseok12 2018. 3. 9. 12:36
728x90

DataBase 에서 입력, 수정, 삭제는 쿼리가 제대로 실행 되었는지(성공) 안되었는지(실패) 둘중 하나밖에 없다.

 

select : 조건에 만족하는 결과가 있다면 다 가져올 수 있다, 실패하면 false가 출력되고 성공하면 resource를 출력.

          쿼리를 성공했는지 실패했는지 두가지 밖에 없다. 어떤 값을 입력하느냐에 따라 리턴값이 달라진다.

 

조회

- 조건에 맞는 조회된 데이터가 있는가? (조회된 데이터가 있다면 모두 가져올 수 있음)

- 조건에 맞는 조회된 데이터가 없는가?

 

웹 브라우저에서 화면이 한번 출력되면 코드는 끝이다.

alter 쿼리를 이용하면 no 번호도 새로 초기화가 가능하다

출력의 개수를 알 수 있는게 num rows이다.

즉 select 에서 실행한 결과가 num rows로 들어감. false이 아닌 경우만

 

$link= mysql_connect('localhost','root',password1!'); 를 통해 db로 연결(로그인)시키는 과정을 link에 저장.

$ret = mysql_select_db('user',$link);   를 통해 로그인한 값을 link를 실행시킴과 동시에 db에서 user 계정 선택.

 

if( !isset($_REQUEST[id]) or !isset($_REQUEST[pw]) or $_REQUEST[id]==='' or $_REQUEST[PW]==='');

-> id 혹은 pw가 실행되지 않을때, id 혹은 pw를 입력하지 않았을 때 라는 의미.

 

 

form 을 통해 로그인 창을 만들어 준다.

그 폼이 실행하면  action=db.php로 인해 db.php로 넘어가게 된다.

 

 

오류메세지를 출력. 어디가 에러났는지 알려준다.

웹의 문제가 아니라 이건 콘솔(vi)에서 오류(오타,세미콜론 등)가 났을때 실행된다.

 

 

$cnt = mysql_num_rows($resource); 

-> resource의 개수를 $cnt에 저장.

 

$row = mysql_fetch_array($resource, MYSQL_BOTH);

-> 배열 형식으로 resource를 출력한다.

 

select * from user_info where id ="999"

select로 user_info의 id 중 999인 것을 출력해본다

두개가 저장되어 있는 것을 확인할 수 있다.

즉 위의 웹에서 출력했을 때 나온 결과와 같으니 제대로 연결되었음을 확인할 수 있다.

 

 

반응형