목차

1장 역동적인 웹 컨텐츠
___HTTP와 HTML: 버너스 리의 기본 개념
______요청/응답 절차
___PHP, MySQL, 자바스크립트가 뛰어난 이유
______PHP
______MySQL
______자바스크립트
___아파치 웹 서버
___오픈 소스
___정리
___자가 진단 문제

2장 개발 서버 설치
___WAMP, MAMP, LAMP는 무엇인가?
___윈도우에 WAMP 설치하기
______설치 시 오류 해결
______설치 후 테스트
______WAMP를 대체 가능한 방법
___맥 OS X에 MAMP 설치하기
______최종 수정 사항
______MAMP를 대체 가능한 방법
___리눅스에 LAMP 설치하기
___원격으로 접속하기
______로그인
______FTP 사용하기
___프로그램 편집기 사용하기
___통합개발환경 사용하기
___자가 진단 문제

3장 PHP 소개
___HTML 내부에 PHP 포함
______PHP 파서 호출
___이 책의 예제
___PHP의 구조
______주석
______기본 문법
______변수의 이해
______연산자
______변수 대입
______다중 라인 명령어
______변수 입력
______상수
______echo와 print 명령어의 차이점
______함수
______변수 범위
___자가 진단 문제

4장 PHP의 표현식과 흐름 제어
 ___표현식
______문자 형식과 변수
___연산자
______연산자 우선순위
______결합성
______관계형 연산자
___조건문
______If 문
______else 문
______elseif 문
______switch 문
______? 연산자
___반복문
______while 문
______do...while 문
______for 반복문
______반복문 빠져나가기
______continue 문
___암묵적 형변환과 명백한 형변환
___PHP의 동적 링킹
______동적 링킹 동작
___자가 진단 문제

5장 PHP 함수와 객체
___PHP 함수
______함수 정의
______변수 반환
______배열 반환
______참조로 전달
______전역 변수 반환
______변수 범위 다시 살펴보기
___파일 포함과 요구
______include문
______include_once
______require와 require_once
___PHP 버전 호환성
___PHP 객체
______전문 용어
______클래스 정의
______객체 생성
______객체 접근법
______생성자
______메소드 작성법
______속성 선언
______상수 선언
______PHP 5의 속성과 메소드
______상속
___자가 진단 문제

6장 PHP 배열
___기본 접근법
______배열의 숫자 인덱스
______연관 배열
______array 키워드를 사용한 대입법
___foreach...as 루프
___다차원 배열
___배열 함수의 사용
______is_array()
______count()
______sort()
______shuffle()
______explode()
______extract()
______compact()
______reset()
______end()
___자가 진단 문제

7장 실용적인 PHP
___printf
______자릿수 설정
______문자열 채우기
______sprintf
___날짜와 시간 함수
______날짜 상수
______checkdate
___파일 처리
______파일이 있는지 검사
______파일 생성
______파일 읽기
______파일 복사
______파일 이동
______파일 삭제
______파일 갱신
______다중 접근으로부터 파일 잠금
______전체 파일 읽기
______파일 업로드
___시스템 콜
______XHTML
______XHTML의 이점
______XHTML 버전
______HTML과의 차이점
______HTML 4.01 문서 유형
______XHTML 1.0 문서 유형
______XHTML 검증
___자가 진단 문제

8장 MySQL 소개
___MySQL 기본
___데이터베이스 용어 정리
______커맨드 라인으로 MySQL 접근
______커맨드 라인 시작하기
______커맨드 라인 인터페이스 
______MySQL 명령어
______데이터 타입
___인덱스
______인덱스 생성
______MySQL 데이터베이스 쿼리하기
______테이블 조인
______논리 연산자 사용하기
___MySQL 함수
___phpMyAdmin으로 MySQL 접근
______윈도우 사용자
______맥 OS X 사용자
______리눅스 사용자
______phpMyAdmin 사용
___자가 진단 문제

9장 MySQL 정복하기
___데이터베이스 디자인
______기본 키(관계형 데이터베이스의 키)
___정규화
______첫 번째 정규 형식
______두 번째 정규 형식
______세 번째 정규 형식
______정규형을 사용하지 않는 경우
___관계
______일대일
______일대다
______다대다
______데이터베이스와 익명성
___트랜젝션
______트랜잭션 저장 엔진
______BEGIN
______COMMIT 
______ROLLBACK 
___EXPLAIN
______백업과 복구
______mysqldump 
______백업 파일 생성
______백업 파일로부터 복구
______CSV 포맷으로 데이터 덤프 하기
______백업 계획
___자가 진단 문제

10장 PHP를 사용해 MySQL 접근
___PHP로 MySQL 데이터베이스 쿼리
______절차
______로그인 파일 생성
______MySQL 연결
___실용적인 예제
______$_POST 배열
______기록 지우기
______폼 디스플레이
______데이터베이스 쿼리
______프로그램 실행
___실용적인 MySQL
______테이블 생성
______테이블 묘사
______테이블 삭제
______데이터 추가
______데이터 추출
______데이터 갱신
______데이터 지우기
______AUTO_INCREMENT 사용
______쿼리 추가 실행
______SQL 인젝션 막기
______HTML 인젝션 막기
___자가 진단 문제

11장 폼 처리
___폼 만들기
___제출된 데이터 추출
______옛날 방법에 의지하는 register_globals
______기본값
______입력 형식
______텍스트 상자
______텍스트 영역
______체크상자
______라디오 버튼
______숨겨진 필드
______Select
______Label
______입력 보안 처리
___예제 프로그램
___자가 진단 문제

12장 Smarty로 템플릿 만들기
___왜 Smarty 인가?
___설치
___스크립트 생성
___템플릿 생성
___실용적인 예제
___자가 진단 문제

13장 쿠키와 세션, 인증
___PHP에서 쿠키
______쿠키 설정
______쿠키 추가
______쿠키 삭제
___HTTP 인증
______계정 이름과 암호 저장
______암호 보호
___세션
______세션 시작
______세션 끝내기
______세션 보안
___자가 진단 문제

14장 자바스크립트 살펴보기
___자바스크립트와 HTML 텍스트
______문서 제목에 스크립트 사용
______오래된 비표준 브라우저
______자바스크립트 파일 포함
______자바스크립트 오류 디버깅
___주석
___세미콜론
___변수
______문자열 변수
______숫자형 변수
______배열
___연산자
______산술 연산자
______대입 연산자
______비교 연산자
______논리 연산자
______변수 증가와 감소
______문자열 연결
______이스케이프 문자
___변수 입력
___함수
___전역 변수
______지역 변수
___문서 오브젝트 모델
______비호환 브라우저
______DOM 
___자기 진단 문제

15장 자바스크립트의 표현식과 흐름 제어
___표현식
______문자 형식과 변수
___연산자
______연산자 우선순위
______결합성
______관계형 연산자
___with 문
___onError
___try...catch
___조건문
______if 문
______switch 문
______연산자
___반복문
______while 루프
______do...while 루프
______for 루프
______반복문 빠져나오기
______continue 문
___명백한 형 변환
___자가 진단 문제

16장 자바스크립트의 함수, 오브젝트, 배열
___자바스크립트 함수
______함수 정의
______값 반환
______배열 반환
___자바스크립트 오브젝트
______클래스 정의
______오브젝트 생성
______오브젝트 접근
______prototype 키워드
___자바스크립트 배열
______숫자형 배열
______연관 배열
______다중 배열
______배열 메소드
___자가 진단 문제

17장 자바스크립트와 PHP 검증, 오류 처리
___자바스크립트로 사용자 입력 검증하기
______.html 문서 검증(첫 번째)
______.html 문서 검증(두 번째)
___정규 표현식
___ ___메타 문자로 매칭
______난해한 문자 매칭
______괄호로 그룹 만들기
______문자 클래스
______범위 표시
______부정(negation)
______몇 가지 복잡한 예제
______메타 문자 정리
______일반 변경자
______자바스크립트에 정규 표현식
______PHP에 정규 표현식
___PHP 검증 후에 폼 다시 출력하기
___자가 진단 문제

18장 Ajax
___Ajax는 무엇인가?
___XMLHttpRequest
______첫 번째 Ajax 프로그램
______POST 대신 GET 사용
______XML 요청 보내기
___자가 진단 문제

19장 Ajax와 그 이상을 위한 YUI
___프레임워크 선택
___YUI
______압축된 버전
______Ajax에 YUI 사용
___YUI의 여러 가지 사용법
______간단한 YUI 달력
___자가 진단 문제

20장 모두 종합
___소셜 네트워크 사이트 설계
______제3자의 애드온에 관해
___웹 사이트에서
___rnfunctions.php
______함수
___rnheader.php
___rnsetup.php
___index.php
___rnsignup.php
______계정 이름 가용성 검사
___rnsignup.php (YUI 버전)
___rncheckuser.php
___rnlogin.php
___rnprofile.php
______‘About Me’ 텍스트 추가
______프로파일 이미지 추가
______이미지 처리
______현재 프로파일 출력
___rnmembers.php
______사용자 프로파일 보기
______친구 추가와 삭제
______모든 멤버 나열
___rnfriends.php
___rnmessages.php
___rnlogout.php

부록 A 각 장의 문제 해답
부록 B 온라인 자료
부록 C MySQL의 FULLTEXT 불용어
부록 D MySQL 함수
부록 E PEAR와 PHPUnit