테스트 사이트 - 개발 중인 베타 버전입니다

PHP7 ,PHP5 버전 그누보드5 문제인지 이해가 안가네요

파이브 7년 전 조회 1,931

Fatal error: Call to undefined function    alert() in D:\APM_Setup\htdocs_aegook.or.kr\gbyc531_www.tar\www\c.php on line 10

c.php최초오류 c.php?id=admin 하면 잘되는데 없는 아이디 id=adminx 하면 오류남. ( 신기 ).

APM_setup 은 버전 PHP Version 5.2.12

</p>

<p><?php</p>

<p>include_once("./_common.php");</p>

<p>$chuid = "$id";

if ($chuid){

 $mb_id = trim($chuid);

 $mb = get_member($mb_id);

 if (!$mb[mb_id])

    alert("추천인이 가입된 회원이 아닙니다.", "$g5[path]/bbs/register.php");//<span style="color:#c0392b"><<id없는거 넣으면 여기에러남</span></p>

<p>

 set_cookie('Cook_chu_id', $chuid, 86400);

 alert("$chuid 님이 추천하였습니다.", "$g5[path]/bbs/register.php");

} else {

 alert("추천인 아이디가 없습니다.\\n\\n<a href="http://www.aegook.or.kr/c.php?id=추천인아이디\\n\\n위의" target="_blank" rel="noopener noreferrer">http://www.aegook.or.kr/c.php?id=추천인아이디\\n\\n위의</a> 형식이어야 추천인 혜택이 있습니다.", "$g5[path]/bbs/register.php");

}

?></p>

<p>

 

 

신기하게도 PHP Version 7.0.0p1 (cafe24 호스팅)

 define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.3.1.3');
define('G5_YOUNGCART_VER', '5.3.1.3');

 

alert()함수가 정의안되었다고 나옵니다. 그래서 alert1()으로 이름바꿔  정의 아래와같이 했느데 동일 오류남.

/c.php 파일에서 alert()를 호출시 에러남.

/lib/common.lib.php  요기에 명시되있거늘..~ php7.0의 버그인듯한데..

어떤 버그인지를 알고 써야할듯하여 아시는분 한수 부탁들립니다.

 

 

Fatal error: Uncaught Error: Call to undefined function    alert1() in /yyy_aegook/www/c.php:32 Stack trace: #0 {main} thrown in /yyy_aegook/www/c.php on line 32

 

c.php파일

</p>

<p><?php</p>

<p>error_reporting(E_ALL);

ini_set("display_errors", 1);</p>

<p>

include_once("./_common.php");</p>

<p>

// 경고메세지를 경고창으로

function alert1($msg='', $url='', $error=true, $post=false)

{

    global $g5, $config, $member;

    global $is_admin;</p>

<p>    $msg = $msg ? strip_tags($msg, '
') : '올바른 방법으로 이용해 주십시오.';</p>

<p>    $header = '';

    if (isset($g5['title'])) {

        $header = $g5['title'];

    }

    include_once(G5_BBS_PATH.'/alert.php');

    exit;

}</p>

<p>

$chuid = "$id";

if ($chuid){

 $mb_id = trim($chuid);

 $mb = get_member($mb_id);

 if (!$mb[mb_id]){

    alert1("추천인이 가입된 회원이 아닙니다.", "$g5[path]/bbs/register.php");  // <span style="color:#c0392b"><<최초 여기 에러가남.신기 분명 alert()가 정의 되어있었음.</span>

 }</p>

<p> 

 set_cookie('Cook_chu_id', $chuid, 86400);

 alert1("$chuid 님이 추천하였습니다.", "$g5[path]/bbs/register.php"); 

} else {

 alert1("추천인 아이디가 없습니다.\\n\\n<a href="http://www.aegook.or.kr/c.php?id=추천인아이디\\n\\n위의" target="_blank" rel="noopener noreferrer">http://www.aegook.or.kr/c.php?id=추천인아이디\\n\\n위의</a> 형식이어야 추천인 혜택이 있습니다.", "$g5[path]/bbs/register.php");// <span style="color:#c0392b"><<여기 에러 위에 정의했거늘.</span>

}</p>

<p> </p>

<p>

?></p>

<p>

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

답변 2개

파이브
7년 전

</p>

<p><?php</p>

<p>function te   st(){

 echo "te   st()";

}</p>

<p>te   st();</p>

<p> 

결과는 아래아같이 함수가 실행된다.. 이 보이지 않는 문자가 앞에있어서였다.  흐~

te혻혻혻st()

---

앞에 헤더에<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">를 넣으면

결과가아래와같이 나온다.

 

te   st()

 

-----------  ! php5,7 UTF8로 작성시에는  공백과 보이지 않는 특수문자를 기억하자!

 

 

로그인 후 평가할 수 있습니다

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

파이브
7년 전

찾았음^^

아래코드를 보시면.. 공백으로 보이는 특수문자가 있습니다.

복사붙여넣기하면서 보이지 않는 특수문자가 앞에 있어서  그게 함수명으로 포함되어서 였음.

 

<?php

include_once("./_common.php");

$chuid = "$id";
function alert1($msg,$go){
 echo "<script>
 alert('$msg');
 location.href='$go';
 </script>";
 exit;
}
if ($chuid){
 $mb_id = trim($chuid);
 $mb = get_member($mb_id);
 if (!$mb[mb_id]){
    alert1("추천인이 가입된 회원이 아닙니다.", "$g5[path]/bbs/register.php");
 }
 
 set_cookie('Cook_chu_id', $chuid, 86400);
 alert1("$chuid 님이 추천하였습니다.", "$g5[path]/bbs/register.php");
} else {
 alert1("추천인 아이디가 없습니다.\\n\\nhttp://www.aegook.or.kr/c.php?id=추천인아이디\\n\\n위의 형식이어야 추천인 혜택이 있습니다.", "$g5[path]/bbs/register.php");
}
?>[/code]

로그인 후 평가할 수 있습니다

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

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

로그인