01.01-welcome0:49
01.02-how_to_use_the_exercise_files2:30
02.01-blueprint_the_application5:50
02.02-establish_your_work_area6:28
02.03-create_and_style_the_first_page8:47
02.04-include_and_require_files9:05
03.01-links_and_urls9:41
03.02-use_url_parameters8:50
03.03-default_values_for_url_parameters4:45
03.04-encode_url_parameters8:32
03.05-encode_for_html7:19
03.06-challenge_add_pages3:29
03.07-solution_add_pages7:43
04.01-modify_headers8:03
04.02-page_redirection7:01
04.03-output_buffering6:06
05.01-build_forms8:53
05.02-use_form_parameters4:23
05.03-detect_form_submission5:25
05.04-single-page_form_processing6:46
05.05-challenge_add_forms2:14
05.06-solution_add_forms5:04
06.01-mysql_introduction6:16
06.02-create_a_database6:31
06.03-create_a_database_table6:21
06.04-crud_in_mysql4:01
06.05-populate_a_mysql_table6:16
06.06-relational_database_tables4:04
06.07-challenge_pages_table3:54
06.08-solution_pages_table5:18
07.01-database_apis_in_php4:22
07.02-connect_to_mysql_with_php8:56
07.03-retrieve_data8:02
07.04-work_with_retrieved_data6:51
07.05-error_handling (1)00:00
07.06-challenge_list_pages2:04
07.07-solution_list_pages5:09
08.01-find_a_single_record8:23
08.02-use_form_data_to_create_records10:39
08.03-use_form_data_to_update_records11:25
08.04-form_options_from_database_data7:16
08.05-delete_a_record8:24
08.06-challenge_pages_crud3:13
08.07-solution_pages_crud8:04
09.01-common_data_validation_types9:12
09.03-display_validation_errors10:12
09.02-validate_form_values8:24
09.04-problems_with_validation_logic5:46
09.05-challenge_validations2:03
09.06-solution_validations8:05
10.01-understand_sql_injection5:18
10.02-sanitize_data_for_sql8:57
10.03-delimit_data_values3:55
10.04-prepared_statements3:22
11.01-next_steps1:09