wonder
정보보안 스터디 - 4주차 4일 - PHP 페이징 기능 본문

이런식으로 글 내용이 너무 많이 나와버리면 안되기 때문에
필수인 작업이 페이징 기능 구축입니다.
너무 당연해서 쉬워보였지만 그 안의 구조는 생각보다 까다롭습니다.
노출할 칼럼 수 제한
전체 칼럼 수 확인

일단 전체 칼럼이 몇개인지 출력합니다.
현재 주소가 담긴 DB에서 세종특별시 테이블의 칼럼수는 27389개입니다.


한 페이지에 10개의 글이 나올 것으로 지정했습니다.
그리고 현재 페이지 번호가 없다면 페이지 번호를 1로 바로 만들어 줍니다.
그리고 Sql 에서도 데이터 모두 불러오는 게 아니라 10개의 데이터만 불러와줘야하기 때문에
저렇게 제한을 둡니다.
현재 페이지가 2번이라면 10번부터 20번까지 10개의 열을 불러오라는 게 됩니다.
여기서 query는 중복이 아니라 재정의 됩니다.
그리고 반복문으로
번호 + 주소를 출력시킵니다.
페이징 기능 구현
이것을 기반으로
페이징을 기능이 들어간 page.php를 만들어 보겠습니다.


그전에 정의 했던 내용들을 include로 가져옵니다.
전체 생성되는 페이지 수는 27389를 10으로 나눈 것을 반올림한 2739개가 생성됩니다.
처음 페이지와 마지막 페이지도 나옵니다.

마지막페이지인 11전까지 1 2 3 , ... 로 반복해서 페이지 번호를 넣습니다.
만약 현재페이지와 번호가 같다면 페이지번호는 클릭할 수 없습니다.
다르다면 페이지 번호를 클릭해 이동할 수 있습니다.

페이지 번호가 1이 아니라면 처음버튼을 누를 수 있게 합니다.
페이지 번호가 1이라면 처음버튼은 누를 수 없습니다.
마지막 버튼도 마찬가지 입니다.
페이지 번호가 1이 아니면 << 이전 버튼이 눌러지지만
페이지 번호가 1이라면 아무것도 나오지 않습니다.
다음 버튼도 마찬가지 입니다.
phpmyadmin DB 가져오기
에러문구
fatal error: maximum execution time of 300 seconds exceeded in ~
로 고생했기 때문에 해결방법을 공유드리자면
파일 크기 제한 해제부터 여러 가능할 법한 설정은 알아서 완료해주시고
xampp/phpmyadmin/libraries/config.default.php 의 설정에서

을 설정해도 300 에러가 계속 뜨시는 분들은
기존에 있는 libraries/config.inc.php 에서 위 명령어를 새로 작성 해주셔야합니다.

'hacking study > 웹개발' 카테고리의 다른 글
정보보안 스터디 - 5주차 4일 - php 게시판 제작 (feat. Lord of SQL Injection) (0) | 2022.11.13 |
---|---|
정보보안 스터디 - 5주차 3일 - 주소 검색 기능 마무리 (0) | 2022.11.13 |
정보보안 스터디 - 4주차 3일 - PHP 주소 검색 기능 (0) | 2022.11.06 |
정보보안 스터디 - 3주차 4일 - 회원가입 조건 (0) | 2022.10.30 |
정보보안 스터디 - 3주차 3일 - 회원가입 페이지 만들기 (0) | 2022.10.30 |