채택완료

php7로 바꾼뒤

2017-11-07 (화) 02:46:54 3,589

관리자페이지에서

필드추가하는 php파일이 이상하게 안됩니다. php5에서는 잘되었는데..

게시판 목록이 뜨고

몇개 추가할건지 기입하게 되어있엇는데..

게시판목록이 뜨지 않습니다.

요소검사:Failed to load resource: the server responded with a status of 500 (Internal Server Error)

왜그런지요..

코드는 아래와 같습니다.

<?
$sub_menu = "100950";
include_once("./_common.php");

auth_check($auth[$sub_menu], "r");

$g4[title] = "필드추가";
include_once("./admin.head.php");

if($is_admin){


if($nfor_cnt and $nfor_table){


    $result3=mysql_query("select * from g5_write_".$nfor_table); 
    $field_count=mysql_num_fields($result3); 
    $last_field_name=mysql_field_name($result3,$field_count-1); 

    $fname = explode("_",$last_field_name);

    
    echo $fname[1]+$nfor_cnt;

    for($i=$fname[1]+1; $i<$fname[1]+$nfor_cnt+1; $i++){
        sql_fetch(" alter table g5_write_".$nfor_table." add wr_".$i." text "); 
    }

    alert("성공적으로 추가되었습니다.","add.php");


} else{

?>
<FORM METHOD=POST ACTION="add.php">
<TABLE>
<TR>
    <TD>게시판</TD>
    <TD><select name="nfor_table">
<?
$sql = " select bo_table, bo_subject from $g5[board_table] order by gr_id, bo_table ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {


$result2=mysql_query("select * from g5_write_".$row[bo_table]); 
$field_count=mysql_num_fields($result2); 
$last_field_name=mysql_field_name($result2,$field_count-1); 

?>
<option value="<?=$row['bo_table']?>"><?=$row['bo_subject']?>(<?=$row['bo_table']?>) <?=$last_field_name?>다음부터
<?}?>
</select></TD>
</TR>
<TR>
    <TD>추가될 필드수</TD>
    <TD><INPUT TYPE="text" NAME="nfor_cnt" size="4">개</TD>
</TR>
<TR>
    <TD colspan=2><INPUT TYPE="submit" value="추가하기"></TD>
</TR>
</TABLE>


</FORM>
<?
}

}

include_once("./admin.tail.php");
?> 
 

|

답변 3개 / 댓글 6개

채택된 답변
+20 포인트

<?php 
$sub_menu = "100950"; 
include_once("./_common.php"); 

auth_check($auth[$sub_menu], "r"); 

$g5[title] = "필드추가"; 
include_once("./admin.head.php"); 

if($is_admin){ 


if($nfor_cnt and $nfor_table){ 


$result3=sql_query("select * from ".G5_TABLE_PREFIX."write_".$nfor_table); 
$field_count=sql_num_fields($result3); 
$last_field_name=sql_field_name($result3,$field_count-1); 

$fname = explode("_",$last_field_name); 


echo $fname[1]+$nfor_cnt; 

for($i=$fname[1]+1; $i<$fname[1]+$nfor_cnt+1; $i++){ 
sql_fetch(" alter table ".G5_TABLE_PREFIX."write_".$nfor_table." add wr_".$i." text "); 
} 

alert("성공적으로 추가되었습니다.","add.php"); 


} else{ 

?> 
<FORM METHOD=POST ACTION="add.php"> 
<TABLE> 
<TR> 
<TD>게시판</TD> 
<TD><select name="nfor_table"> 
<?php 
$sql = " select bo_table, bo_subject from $g5['board_table'] order by gr_id, bo_table "; 
$result = sql_query($sql); 
for ($i=0; $row=sql_fetch_array($result); $i++) { 




$result2=sql_query("select * from ".G5_TABLE_PREFIX."write_".$row[bo_table]); 
$field_count=sql_num_fields($result2); 
$last_field_name=sql_field_name($result2,$field_count-1); 

?> 
<option value="<?php echo $row['bo_table'];?>"><?php echo $row['bo_subject'];?>(<?php echo $row['bo_table'];?>) <?php echo $last_field_name;?>다음부터 
<?php } ?> 
</select></TD> 
</TR> 
<TR> 
<TD>추가될 필드수</TD> 
<TD><INPUT TYPE="text" NAME="nfor_cnt" size="4">개</TD> 
</TR> 
<TR> 
<TD colspan=2><INPUT TYPE="submit" value="추가하기"></TD> 
</TR> 
</TABLE> 


</FORM> 
<?php
} 

} 

include_once("./admin.tail.php"); 
?>

답변에 대한 댓글 2개

2017-11-07 (화) 11:43:23
페이지가 작동하지 않습니다. 500에러
왜 그런지.,,어렵네요
http://dualist.tistory.com/90 참고해서 에러표시가 나도록 해서 구체적인 에러라인을 확인하세요

mysql_query 는 sql_query 로

mysql_num_fields 는 sql_num_fields 로 변경해보세요

답변에 대한 댓글 3개

2017-11-07 (화) 10:16:51
감사합니다. 그렇게 해보았거든요,,,
https://sir.kr/qa/97420 이질문을 참고해서 해보아도 안되네요,,제기럴,,ㅎ
이제 디비에서 일일이 추가해야 하는가봐요,,
본문에 적혀있는 코드에서 수정후에도 동일 증상이라는 건가요?
수정하신 코드를 함 올려봐주시죠...
2017-11-07 (화) 10:41:54
이렇습니다~
<?php
$sub_menu = "100950";
include_once("./_common.php");

auth_check($auth[$sub_menu], "r");

$g5[title] = "필드추가";
include_once("./admin.head.php");

if($is_admin){


if($nfor_cnt and $nfor_table){


$result3=sql_query("select * from g5_write_".$nfor_table);
$field_count=sql_num_fields($result3);
$last_field_name=sql_field_name($result3,$field_count-1);

$fname = explode("_",$last_field_name);


echo $fname[1]+$nfor_cnt;

for($i=$fname[1]+1; $i<$fname[1]+$nfor_cnt+1; $i++){
sql_fetch(" alter table g5_write_".$nfor_table." add wr_".$i." text ");
}

alert("성공적으로 추가되었습니다.","add.php");


} else{

?>
<FORM METHOD=POST ACTION="add.php">
<TABLE>
<TR>
<TD>게시판</TD>
<TD><select name="nfor_table">
<?
$sql = " select bo_table, bo_subject from $g5[board_table] order by gr_id, bo_table ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {




$result2=sql_query("select * from g5_write_".$row[bo_table]);
$field_count=sql_num_fields($result2);
$last_field_name=sql_field_name($result2,$field_count-1);

?>
<option value="<?=$row['bo_table']?>"><?=$row['bo_subject']?>(<?=$row['bo_table']?>) <?=$last_field_name?>다음부터
<?}?>
</select></TD>
</TR>
<TR>
<TD>추가될 필드수</TD>
<TD><INPUT TYPE="text" NAME="nfor_cnt" size="4">개</TD>
</TR>
<TR>
<TD colspan=2><INPUT TYPE="submit" value="추가하기"></TD>
</TR>
</TABLE>


</FORM>
<?
}

}

include_once("./admin.tail.php");
?>

가급적 

<?로 되어있는부분을

<?php 로 변경해서 사용하시는게 좋습니다.

좀더 엄격한 규칙을 적용하는데요

무시하고  사용가능하려면

http://zetawiki.com/wiki/PHP_%EC%A7%A7%EC%9D%80_%ED%83%9C%EA%B7%B8_%ED%97%88%EC%9A%A9%ED%95%98%EA%B8%B0

여기를 참고하시고 적용해보세요

그리고, 두버전의 차이점

http://php.net/manual/kr/migration70.php

답변에 대한 댓글 1개

2017-11-07 (화) 10:17:16
감사합니다. 공부해보겠습니다.

답변을 작성하려면 로그인이 필요합니다.