구)홈페이지 오탈자 보기
뇌를 자극하는 PHP 프로그래밍

 

페이지오탈자 내용등록일
287

(87페이지 중간 부분. 4) 나우닥 문법에서)

오탈자 내용 나우닥 문법(Nowdoc)의 첫 번째 소스코드



$str = <<<EOT

=> 

$str = <<<'EOT'  


* 작은 따옴표를 넣어야 합니다.

2009-09-292
4184

(184)

4행

‘./uploads_dir/’)){

-> 

‘./uploads_dir/’ . $FILES[‘upfile’][‘name’](({

2009-08-261
8364

(364)

소스 코드에서

$valid_response = md5("$A1:$data['nonce']:$data['nc']";
$valid_response .= ":$data['cnonce']:$data['qop']:$A2");


->

$valid_response = "{$A1}:{$data[nonce]}:{$data[nc]}";
$valid_response .= ":{$data['cnonce']}:{$data['qop']}:{$A2}";
$valid_response = md5($valid_response);

2009-08-262
8366

(366)

56행, 57행

$valid_response = md5("$A1:$data['nonce']:$data['nc']";
$valid_response .= ":$data['cnonce']:$data['qop']:$A2");

->

$valid_response = "{$A1}:{$data[nonce]}:{$data[nc]}";
$valid_response .= ":{$data['cnonce']}:{$data['qop']}:{$A2}";
$valid_response = md5($valid_response);

2009-08-261
11418

(11장의 게시판 예제)

11장 게시판 예제는 PHP 설정 파일인 php.ini 파일의 register_globals=Off 상태에서는 실행되지 않는데, 이 사항을 1쇄 책에 기재하지 않아서 독자님들이 혼란을 겪고 계십니다. 이 자리를 빌어 사과 말씀을 드립니다.

11장 게시판 예제를 실행하기 전에 아래사항을 숙지하셔야 합니다.
(아래 글은 2쇄에서는 418쪽 하단에 기재하여 놓았습니다)


---아래사항---


"11장 소스를 테스트할 때에는 PHP 설정 파일인 php.ini 파일의 register_globals=on으로 설정해야 합니다."

많은 프로그래머들이 편의를 위해서 register_globals 옵션을 Off가 아닌 On으로 설정하고 있기 때문입니다. 그러나 보안적인 문제로 인해서 설치 시에 기본적으로 Off로 설정이 되기 때문에 이 경우에는 11장의 소스가 오류를 발생시키거나 오작동하게 됩니다. 따라서 모든 환경에서 소스 수정 없이 제대로 동작하게 하기 위해서는 11장 소스를 일부 수정해야 합니다. 게시판은 11장에서 13장에 걸쳐 점차적으로 제 모습을 찾아가는 구성을 갖고 있습니다. 그래서 의도적으로 11장의 소스는 register_globals=on인 경우로 작성했습니다. Off로 설정이 된 경우에는 수퍼 글로벌 변수를 쓸 수 없기 때문에 $id, $no과 같은 변수는 $_GET[id], $_GET[no]과 같이 변경해야 올바르게 작동합니다. 그래서 12장에서는 이러한 문제를 해결하기 위해 모든 외부로부터의 변수를 위와 같이 표기하고 있습니다.

-------------- 

거듭 사과 말씀을 드립니다.

2010. 11. 3
한빛미디어 송성근(ssk@hanb.co.kr) 올림. 

2009-09-292
11433

(433페이지 코드 59라인)

<TEXTAREA name=comment cols=65 rows=15></TEXTAREA>

->

<TEXTAREA name=content cols=65 rows=15></TEXTAREA>


* 프로그램 전체의 변수명을 감안할 때 content 로 변경하는 것이 맞습니다.

2009-09-292
11437

(437페이지 3라인)

'$comment'  

=>

'$content' 

2009-09-292
11437

(437페이지 insert.php 파일 소스 8라인)

$comment'  

=>  

'$content'

2009-09-292
11443

(443페이지 중간 부분)


<TEXTAREA name=comment cols=65 rows=15><?=$row[comment]?></TEXTAREA>

=>

<TEXTAREA name=content cols=65 rows=15><?=$row[content]?></TEXTAREA> 


* comment를 content로 정정합니다.

2009-09-292
11458

(458페이지 소스 중 115라인)


$result=mysql_query("UPDATE testboard SET see=see+1 WHERE id=$id",

=>

$result=mysql_query("UPDATE board SET view=view+1 WHERE id=$id",


2009-09-292
13624

(624)

[예제 13-3]

8행:

move_uploaded_file($_FILES['upfile']['tmp_name'].'./uploads_dir/');

->

move_uploaded_file($_FILES['upfile']['tmp_name'].''./uploads_dir/’ . $FILES[‘upfile’][‘name’]);

2009-08-261
13628

(628 페이지 중간 부분)

628페이지 중간 부분에 다음과 같은 코드가 있습니다.

insert into $board (thread, depth, name, pass, email, title, view, wdate, ip, content, filename) values ($max_thread,0,'$_POST[name]','$_POST[pass]','$_POST[email]','$_POST[title]',0,UNIX_TIMESTAMP(),'$REMOTE_ADDR','$_POST[content]',0,'$filename')


-> 

이 부분의 마지막 부분에 0이 들어가는 데 이 부분은 제거되어야 합니다.

insert into $board (thread, depth, name, pass, email, title, view, wdate, ip, content, filename) values ($max_thread,0,'$_POST[name]','$_POST[pass]','$_POST[email]','$_POST[title]',0,UNIX_TIMESTAMP(),'$REMOTE_ADDR','$_POST[content]','$filename')

2009-08-251
13628

(628)

두 번째 소스 문단


0,UNIX_TIMESTAMP(),'$REMOTE_ADDR','$_POST[content]', 0,'$filename')

-> 
0,UNIX_TIMESTAMP(),'$REMOTE_ADDR','$_POST[content]', '$filename')


세 번째 소스 문단


if(move_uploaded_file($_FILES['upfile']['tmp_name'],
'./uploads_dir'))

-> 

if(move_uploaded_file($_FILES['upfile']['tmp_name'],
'‘./uploads_dir/’ . $FILES[‘upfile’][‘name’]))

2009-08-261
13629

(629)

두 번째 소스 문단에서 14번째 줄

if(move_uploaded_file($_FILES['upfile']['tmp_name'],'./uploads_dir'))


-> 

if(move_uploaded_file($_FILES['upfile']['tmp_name'],'./uploads_dir/’ . $FILES[‘upfile’][‘name’])) 

2009-08-261