소스 코드가 이상하게 변질되어서 파일 기부[ No Bug 파일 완전판] > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

소스 코드가 이상하게 변질되어서 파일 기부[ No Bug 파일 완전판] 정보

PHP 소스 코드가 이상하게 변질되어서 파일 기부[ No Bug 파일 완전판]

첨부파일

no_bug_pagination.phps (2.3K) 5회 다운로드 2023-07-14 22:00:00

본문

<?php 
$dbconn=mysqli_connect(~);
$block_per_page=10;  
$page_per_record=1;  
@$page=$_REQUEST['page'];
if( !intval($page) || $page == false || $page == null)  { $page=1; }
else {    $page=preg_replace('#[^0-9]#','',$_REQUEST['page']);}
$tab=preg_replace('/[^a-z0-9]/','',$_GET['tab']);

$count_check="select count(table_number) as total_pst from board where table_id like '$tab'";
$sql_query=mysqli_query($dbconn,$count_check);
$total_record=mysqli_fetch_assoc($sql_query);
$sql_cnt=stripslashes($total_record['total_pst']); 
$total_page=ceil($sql_cnt/ $page_per_record);  
$total_block=ceil($total_page / $block_per_page); 
$now_block=ceil($page/$block_per_page); 
$start_record=intval(($page -1) * $page_per_record); 
if($start_record < 1) { $start_record=0;}
else {$start_record=$start_record;}
$start_page=intval(($now_block -1) * $block_per_page)+1; 
$end_page=intval($start_page + $block_per_page)-1;
if($end_page >= $total_page) {$end_page == $total_page;} 

$info_sql="select * from board where table_id like '$tab' limit $start_record, $page_per_record";

$info_result = mysqli_query($dbconn,$info_sql);
while($tab_data=mysqli_fetch_assoc($info_result) ) {
}
----------------------
$next_page=$page+1;
$prev_page=$page-1;
----------------------
+-뻔할 단어니 그냥 1씩 더하고 빼고

if($page == 1 || $total_page <= 1)  {/*1page only*/}
if($page > 1 )  {
    if($page < $total_page) {}
    else if($page <= $total_page) {    
    echo "<span id=btn_span ><a href=?tab=$tab&page=1>[First]</a></span>";}
    else if(($page <= $total_page) && ($page <= 1)) {    }
    else {}
}
if($start_page <= $total_page){
if(($start_page <=1) ) {}
else{echo "<span id=btn_span><a href=?tab=$tab&page=$prev_page>[Prev]</a></span>";}}
for($i=$start_page;$i<=$end_page;$i++) {
    if($i > $total_page ) {}
    else if($i <= $total_page) {echo "<span id=btn_span><a href=?tab=$tab&page=$i>[$i]</a></span>";}
    else {}


if(($next_page <$total_page) ) { echo "<span id=btn_span><a href=?tab=$tab&page=$next_page>[Next]</a></span>";}
else{}
if($total_page >$page) {echo "<span id=btn_span><a href=?tab=$tab&page=$total_page>[Last]</a></span>";}
else{}
?>

추천
1

댓글 7개

1) 게시물 제목에 이 소스가 어떤 용도인지 표기해야겠죠? 알림장도 아니고 본인만 알아듣게 작성하면 무슨 의미가 있겠습니까?

2) 코드가 작동되는지 확인 후 올리셨으면 합니다.
No Bug 완전판이라고 쓰기 전에 최소한 작동되는지는 검토했어야죠.

이 구문이 맞다고 보세요?
if($end_page <= $total_page) {$end_page == $total_page;}
@그누GPT 다 해봤거든요. 그리고 페이징 버그에 모르시는 것이 있으신가 보는데요.
데이터는 않나오고 페이징 숫자는 무한 진행 가능하고. 설마 이 버그를 모르시는 건?

아 / 니 / 겠 / 죠 ?

총 페이지가 100개고
갯수도 10

블록을 10개로 하고..

브레이크 잡는 소스를 않넣으면....

최대 페이지가 10페이지인데.. 계속 진행됩니다 11페이지 12페이지 13페이지 ~~~

경험을 해보지 않으셔서 그렇지요.

이유는 단 하나 : 페이징 진행 숫자

예 PageNo=10 이 마지막이라고 하면.. 그 이상의 숫자를  URL에 바꿔 입력해보고
테스트 해보질 않았다면 그 사이트는 페이징 때문에 해킹당합니다.
@piadream

버그가 아니라 코드를 잘못 작성하면 그렇게 되는 겁니다.
선생님은 코드를 잘못 적어주신 거고요.

대놓고 말씀드릴게요. PHP에 대한 이해도가 있는 상태에서 적으신 건가요? 전혀 아닌 것 같아서요.

개 / 발 / 자 / 는 / 아 / 니 / 겠 / 죠 / ?
전체 1,168
개발자팁 내용 검색 PHP에서

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT