목차
지은이 소개 ... 5
감사의 글 ... 6
옮긴이 소개 ... 7
옮긴이의 말 ... 8
들어가며 ... 24
01장 역동적인 웹 컨텐츠 ... 29
   HTTP와 HTML: 버너스 리의 기본 개념 ... 30
      요청/응답 절차 ... 31
   PHP, MySQL, 자바스크립트, CSS가 뛰어난 이유 ... 34
      PHP ... 35
      MySQL ... 36
      자바스크립트 ... 38
      CSS ... 39
   아파치 웹서버 ... 40
   오픈 소스 ... 41
   정리 ... 42
   연습문제 ... 44
02장 개발 서버 설치 ... 45
   WAMP, MAMP, LAMP는 무엇인가? ... 46
   윈도우에 WAMP 설치 ... 46
      설치 후 테스트 ... 53
      WAMP 대체 방법 ... 56
   맥 OS X에 MAMP 설치 ... 56
      MySQL 설정 ... 59
      설치 후 테스트 ... 61
   리눅스에 LAMP 설치 ... 64
   원격 접속 ... 65
      로그인 ... 65
      FTP 사용하기 ... 65
   프로그램 편집기 ... 67
   통합개발환경 ... 68
   연습문제 ... 70
03장 PHP 소개 ... 71
   HTML 내부에 PHP 포함 ... 72
      PHP 파서 호출 ... 72
   이 책의 예제 ... 73
   PHP의 구조 ... 74
      주석 ... 75
      기본 문법 ... 76
      변수의 이해 ... 77
      연산자 ... 82
      변수 대입 ... 85
      다중 라인 명령어 ... 88
      변수 입력 ... 91
      상수 ... 92
      echo와 print 명령어의 차이점 ... 93
      함수 ... 94
      변수 범위 ... 95
   연습문제 ... 101
04장 PHP의 표현식과 흐름 제어 ... 103
   표현식 ... 103
      문자 형식과 변수 ... 105
   연산자 ... 106
      연산자 우선순위 ... 107
      결합성 ... 109
      관계형 연산자 ... 111
   조건문 ... 115
      If 문 ... 115
      else 문 ... 117
      elseif 문 ... 119
switch 문 ... 120
      ? 연산자 ... 123
   반복문 ... 124
      while 문 ... 125
      do...while 문 ... 127
      for 반복문 ... 128
      반복문 빠져나가기 ... 130
      continue 문 ... 131
   암묵적 형변환과 명백한 형변환 ... 132
   PHP의 동적 링킹 ... 133
      동적 링킹 동작 ... 134
   연습문제 ... 135
05장 PHP 함수와 객체 ... 137
   PHP 함수 ... 138
      함수 정의 ... 140
      변수 반환 ... 140
      배열 반환 ... 143
      참조로 전달 ... 143
      전역 변수 반환 ... 145
      변수 범위 다시 살펴보기 ... 146
   파일 포함과 요구 ... 146
      include 문 ... 147
      include_once ... 147
      require와 require_once ... 148
   PHP 버전 호환성 ... 148
   PHP 객체 ... 149
      전문 용어 ... 150
      클래스 정의 ... 151
      객체 생성 ... 152
      객체 접근법 ... 153
      생성자 ... 156
      메소드 작성법 ... 157
      속성 선언 ... 159
      상수 선언 ... 160
      PHP 5의 속성과 메소드 ... 161
      상속 ... 163
   연습문제 ... 168
06장 PHP 배열 ... 169
   기본 접근법 ... 169
      배열의 숫자 인덱스 ... 170
      연관 배열 ... 172
      array 키워드를 사용한 대입 ... 173
   foreach...as 루프 ... 174
   다차원 배열 ... 176
   배열 함수의 사용 ... 180
      is_array ... 180
      count ... 180
sort ... 181
shuffle ... 181
      explode ... 182
      extract ... 183
      compact ... 184
      reset ... 185
      end ... 186
   연습문제 ... 186
07장 실용적인 PHP ... 187
printf ... 187
      자릿수 설정 ... 189
      문자열 채우기 ... 191
sprintf ... 192
   날짜와 시간 함수 ... 193
   날짜 상수 ... 195
      checkdate ... 196
   파일 처리 ... 196
      파일 존재여부 검사 ... 197
      파일 생성 ... 197
      파일 읽기 ... 199
      파일 복사 ... 200
      파일 이동 ... 201
      파일 삭제 ... 201
      파일 갱신 ... 202
      다중 접근으로부터 파일 잠금 ... 203
      전체 파일 읽기 ... 205
      파일 업로드 ... 206
   시스템 콜 ... 212
   XHTML ... 213
      XHTML의 이점 ... 214
      XHTML 버전 ... 214
      HTML과의 차이점 ... 214
      HTML 4.01 문서 유형 ... 216
      HTML5 문서 형식 ... 217
      XHTML 1.0 문서 유형 ... 217
      XHTML 검증 ... 218
   연습문제 ... 219
08장 MySQL 소개 ... 221
   MySQL 기본 ... 221
   데이터베이스 용어 정리 ... 222
   커맨드라인으로 MySQL 접근 ... 223
      커맨드라인 시작 ... 223
      커맨드라인 인터페이스 ... 227
      MySQL 명령어 ... 229
      데이터 타입 ... 234
   인덱스 ... 246
      인덱스 생성 ... 246
      MySQL 데이터베이스 쿼리 ... 252
      테이블 조인 ... 263
      논리 연산자 ... 266
   MySQL 함수 ... 267
phpMyAdmin으로 MySQL에 접근 ... 267
      윈도우 사용자 ... 267
      맥 OS X 사용자 ... 269
      리눅스 사용자 ... 269
phpMyAdmin ... 269
   연습문제 ... 271
09장 MySQL 정복하기 ... 273
   데이터베이스 디자인 ... 273
      기본 키: 키에서 관계형 데이터베이스로 ... 275
   정규화 ... 275
      첫 번째 정규 형식 ... 277
      두 번째 정규 형식 ... 279
      세 번째 정규 형식 ... 282
      정규형을 사용하지 않는 경우 ... 285
   관계 ... 286
      일대일 ... 286
      일대다 ... 287
      다대다 ... 287
      데이터베이스와 익명성 ... 289
   트랜잭션 ... 289
      트랜잭션 저장 엔진 ... 290
      BEGIN ... 291
      COMMIT ... 292
      ROLLBACK ... 292
   EXPLAIN ... 293
   백업과 복구 ... 295
      mysqldump ... 295
      백업 파일 생성 ... 297
      백업 파일로부터 복구 ... 299
        CSV 포맷으로 데이터 덤프 ... 299
      백업 계획 ... 300
   연습문제 ... 301
10장 PHP를 사용해 MySQL에 접근 ... 303
   PHP로 MySQL 데이터베이스 쿼리 ... 303
      절차 ... 304
      로그인 파일 생성 ... 304
      MySQL 연결 ... 305
   실용적인 예제 ... 312
      $_POST 배열 ... 315
      기록 지우기 ... 316
      폼 출력 ... 316
      데이터베이스 쿼리 ... 317
      프로그램 실행 ... 318
   실용적인 MySQL ... 319
      테이블 생성 ... 319
      테이블 묘사 ... 320
      테이블 삭제 ... 321
      데이터 추가 ... 322
      데이터 추출 ... 323
      데이터 갱신 ... 324
      데이터 삭제 ... 324
      AUTO_INCREMENT ... 325
      쿼리 추가 실행 ... 327
      SQL 인젝션 막기 ... 328
      HTML 인젝션 막기 ... 333
   연습문제 ... 335
11장 폼 처리 ... 337
   폼 만들기 ... 337
   제출된 데이터 추출 ... 339
      옛날 방법에 의지하는 register_globals ... 340
      기본 값 ... 341
      입력 형식 ... 342
      입력 보안 처리 ... 350
   예제 프로그램 ... 352
   연습문제 ... 355
12장 쿠키와 세션, 인증 ... 357
   PHP의 쿠키 ... 357
      쿠키 설정 ... 359
      쿠키 접근 ... 360
      쿠키 삭제 ... 361
   HTTP 인증 ... 361
      계정 이름과 암호 저장 ... 364
      암호 보호 ... 365
   세션 ... 370
      세션 시작 ... 370
      세션 끝내기 ... 374
      세션 보안 ... 375
   연습문제 ... 380
13장 자바스크립트 살펴보기 ... 381
   자바스크립트와 HTML 텍스트 ... 382
      문서 제목에 스크립트 사용 ... 384
      오래된 비표준 브라우저 ... 384
      자바스크립트 파일 포함 ... 385
      자바스크립트 오류 디버깅 ... 386
   주석 ... 389
   세미콜론 ... 389
   변수 ... 390
      문자열 변수 ... 390
      숫자형 변수 ... 391
      배열 ... 391
   연산자 ... 392
      산술 연산자 ... 392
      대입 연산자 ... 393
      비교 연산자 ... 394
      논리 연산자 ... 394
      변수 증가와 감소 ... 394
      문자열 연결 ... 395
      이스케이프 문자 ... 395
   변수 입력 ... 396
   함수 ... 397
   전역 변수 ... 398
      지역 변수 ... 398
   문서 객체 모델 ... 400
      비호환 브라우저 ... 402
      DOM ... 404
   자기 진단 문제 ... 405
14장 자바스크립트의 표현식과 흐름제어 ... 407
   표현식 ... 407
      문자 형식과 변수 ... 408
   연산자 ... 410
      연산자 우선순위 ... 410
      결합성 ... 411
      관계형 연산자 ... 412
   with 문 ... 415
   onError ... 416
   try...catch ... 418
   조건문 ... 419
      if 문 ... 419
switch 문 ... 420
      ? 연산자 ... 422
   반복문 ... 422
      while 루프 ... 422
      do...while 루프 ... 423
      for 루프 ... 424
      반복문 빠져나오기 ... 425
      continue 문 ... 426
   명백한 형변환 ... 427
   연습문제 ... 427
15장 자바스크립트의 함수, 오브젝트, 배열 ... 429
   자바스크립트 함수 ... 429
      함수 정의 ... 430
      값 반환 ... 432
      배열 반환 ... 434
   자바스크립트 오브젝트 ... 435
      클래스 정의 ... 435
      오브젝트 생성 ... 437
      오브젝트 접근 ... 438
prototype 키워드 ... 438
   자바스크립트 배열 ... 441
      숫자형 배열 ... 441
      연관 배열 ... 443
      다중 배열 ... 444
      배열 메소드 ... 445
   연습문제 ... 451
16장 자바스크립트와 PHP 검증, 오류 처리 ... 453
   자바스크립트로 사용자 입력 검증 ... 453
      첫 번째 .html 문서 검증 ... 454
      두 번째 .html 문서 검증 ... 456
   정규 표현식 ... 460
      메타 문자로 매칭 ... 461
      난해한 문자 매칭 ... 461
      괄호로 그룹 만들기 ... 463
      문자 클래스 ... 463
      몇 가지 복잡한 예제 ... 465
      메타 문자 정리 ... 468
      일반 변경자 ... 469
      자바스크립트에 정규 표현식 ... 470
      PHP에 정규 표현식 ... 471
   PHP 검증 후 폼 재출력 ... 472
   연습문제 ... 478
17장 Ajax ... 479
      Ajax란 무엇인가? ... 480
      XMLHttpRequest ... 481
      POST 요청으로 Ajax 구현 ... 484
        readyState 속성 ... 486
        Ajax 과정의 서버 측 동작 ... 487
      POST 대신 GET 사용 ... 489
      XML 요청 보내기 ... 492
        XML에 관해 ... 494
        왜 XML을 사용하는가? ... 496
      Ajax 프레임워크 ... 497
      연습문제 ... 497
18장 CSS 소개 ... 499
   스타일 시트 불러오기 ... 500
      HTML 내부에서 스타일 시트 불러오기 ... 501
   내장된 스타일 설정 ... 501
      ID 사용하기 ... 502
      클래스 사용하기 ... 502
   CSS 규칙 ... 503
      세미콜론 ... 503
      여러 할당 ... 504
      주석 ... 505
   스타일 형식 ... 505
      기본 스타일 ... 506
      사용자 스타일 ... 506
      외부 스타일 시트 ... 507
      내부 스타일 ... 507
      인라인 스타일 ... 507
   CSS 셀렉터 ... 508
      형식 셀렉터 ... 508
      자손 선택자 ... 508
      자식 선택자 ... 509
      근접 형제 셀렉터 ... 511
      ID 셀렉터 ... 511
      클래스 셀렉터 ... 512
      속성 셀렉터 ... 513
      유니버설 셀렉터 ... 514
      그룹으로 선택하기 ... 514
   CSS 종속 ... 515
      스타일 시트 생성자 ... 515
      스타일 시트 방법 ... 516
      스타일 시트 셀렉터 ... 517
      〈div〉와〈span〉의 차이 ... 519
   단위 ... 522
   글씨체와 활판술 ... 524
      font-family ... 524
      font-style ... 525
      font-size ... 525
      font-weight ... 526
   텍스트 스타일 관리 ... 526
      장식 ... 526
      공백 ... 527
      정렬 ... 527
      변환 ... 528
      들여쓰기 ... 528
   CSS 색 ... 529
      짧은 색 문자열 ... 529
      그라디언트 ... 530
   엘리먼트 위치 선정 ... 531
      절대 위치 ... 532
      상대적인 위치 ... 532
      고정된 위치 ... 532
      위치 형식 비교 ... 533
   수도 클래스 ... 534
   수도엘리먼트 ... 537
   단축 규칙 ... 538
   상자 모델과 배치 ... 538
      마진 설정 ... 539
      경계 적용하기 ... 541
      패딩 조절하기 ... 542
      객체 내용 ... 544
   연습문제 ... 544
19장 고급 CSS와 CSS3 ... 545
   속성 선택자 ... 546
      문자열의 일부를 일치하기 ... 546
box-sizing 속성 ... 548
   CSS3 소개 ... 548
background-clip 속성 ... 549
background-origin 속성 ... 550
background-size 속성 ... 551
      다중 배경 ... 552
   CSS3 경계 ... 554
border-color 속성 ... 554
border-radius 속성 ... 555
   상자 그림자 ... 558
   엘리먼트 오버플로우 ... 559
   다중 열 배치 ... 559
   색과 투명도 ... 561
      HSL 색 ... 562
      HSLA 색 ... 563
      RGB 색 ... 563
      RGBA 색 ... 564
      opacity 속성 ... 564
   텍스트 효과 ... 564
      text-shadow 속성 ... 565
      text-overflow 속성 ... 565
      word-wrap 속성 ... 566
   웹 글씨체 ... 567
      구글 웹 글씨체 ... 568
   변형 ... 569
   변환 ... 570
      변환의 속성 ... 571
      변환 기간 ... 571
      변환 지연 ... 571
      변환 시점 ... 572
      속기 문법 ... 573
   연습문제 ... 575
20장 자바스크립트에서 CSS 접근하기 ... 577
   getElementById 함수 다시 살펴보기 ... 577
      O 함수 ... 578
      S 함수 ... 578
      C 함수 ... 580
      함수 포함하기 ... 581
   자바스크립트에서 CSS 속성 접근하기 ... 582
      몇 가지 일반 속성들 ... 583
      다른 속성들 ... 584
   인라인 자바스크립트 ... 586
      this 키워드 ... 587
      스크립트에서 이벤트를 객체에 붙이기 ... 588
      다른 이벤트에 붙이기 ... 588
   새로운 엘리먼트 추가하기 ... 590
      엘리먼트 제거하기 ... 591
      엘리먼트 추가와 제거의 다른 방법들 ... 592
   인터럽트 사용하기 ... 593
setTimeout 사용하기 ... 593
      타임아웃 취소 ... 595
setInterval 사용하기 ... 595
      애니메이션을 위해 인터럽트 사용하기 ... 597
   연습문제 ... 599
21장 종합 프로젝트 ... 601
   소셜 네트워크 사이트 설계 ... 602
   웹사이트에서 ... 602
   functions.php ... 603
      함수 ... 603
   header.php ... 605
setup.php ... 607
   index.php ... 609
signup.php ... 610
      계정 이름 사용 가능성 ... 612
   checkuser.php ... 613
   login.php ... 614
profile.php ... 616
      'About Me' 텍스트 추가 ... 617
      프로파일 이미지 추가 ... 617
      이미지 처리 ... 618
      현재 프로파일 출력 ... 618
   members.php ... 621
      사용자 프로파일 보기 ... 621
      친구 추가와 삭제 ... 622
      모든 멤버 나열 ... 622
   friends.php ... 625
   messages.php ... 628
   logout.php ... 632
styles.css ... 633
부록 A. 연습문제 해답 ... 637
부록 B. 온라인 자료 ... 655
부록 C. MySQL의 FULLTEXT 불용어 ... 659
부록 D. MySQL 함수 ... 663
찾아보기 ... 679
닫기