1. Урок 1. 00:01:33
    Introduction: How to Get the Most Out of the Course
  2. Урок 2. 00:02:40
    Recommended Software Overview
  3. Урок 3. 00:04:35
    Install XAMPP on Windows
  4. Урок 4. 00:05:31
    Install XAMPP on MAC OS X
  5. Урок 5. 00:03:51
    Install XAMPP on Ubuntu Linux
  6. Урок 6. 00:02:25
    Install Atom on Windows
  7. Урок 7. 00:03:25
    Install Atom on MAC OS X
  8. Урок 8. 00:02:25
    Install Atom on Ubuntu Linux
  9. Урок 9. 00:03:59
    Write Your First PHP Code: Display a Message in Your Web Browser
  10. Урок 10. 00:04:17
    Variables in PHP: What They are, How to Create Them, and How to Name Them
  11. Урок 11. 00:04:59
    Basic Variable Types: Strings and Numbers
  12. Урок 12. 00:03:03
    Basic Variable Types: Boolean and Null
  13. Урок 13. 00:05:37
    Perform Operations on Variables: Operators
  14. Урок 14. 00:03:37
    Strings: Using Single or Double Quotes and Variable Interpolation
  15. Урок 15. 00:05:05
    Introduction to Arrays: Create an Array and Access its Elements
  16. Урок 16. 00:03:40
    Assign Manual Array Indexes and Create Associative Arrays
  17. Урок 17. 00:06:47
    Create and Access Multidimensional Arrays
  18. Урок 18. 00:03:25
    Process Each Element of an Array: foreach Loops
  19. Урок 19. 00:02:32
    Process the value and index of each array element using a foreach loop
  20. Урок 20. 00:05:31
    Run Code Conditionally: the if Construct
  21. Урок 21. 00:04:30
    Compare One Value to another: Comparison Operators
  22. Урок 22. 00:03:03
    Run Code Multiple Times Based on a Condition: While Loops
  23. Урок 23. 00:04:13
    Run Code a Specific Number Of Times: For Loops
  24. Урок 24. 00:02:44
    Add More Conditions to an If Statement Using Elseif
  25. Урок 25. 00:03:13
    Perform Different Actions Based on Different Conditions: The Switch Statement
  26. Урок 26. 00:05:51
    The Language of Web Pages: an Introduction To Html
  27. Урок 27. 00:05:37
    Use Head and Body Elements to Structure An Html Document
  28. Урок 28. 00:02:55
    Structure the Content of your Page Using Heading and Paragraph Elements
  29. Урок 29. 00:03:20
    Give Text Emphasis or Importance Using the em and Strong Elements
  30. Урок 30. 00:03:56
    Display Ordered and Unordered Lists of Items
  31. Урок 31. 00:05:33
    Insert Images Into an Html Document
  32. Урок 32. 00:04:18
    Add a Link from One Page to Another Using a Hyperlink
  33. Урок 33. 00:05:05
    Add Semantic Structure to The Body of an Html Document
  34. Урок 34. 00:07:06
    Create Dynamic Content: Mixing HTML and PHP
  35. Урок 35. 00:04:33
    Use PHP Control Structures Mixed with HTML
  36. Урок 36. 00:04:50
    Make HTML More Readable: Use Whitespace and Comments
  37. Урок 37. 00:05:41
    Make PHP Easier To Maintain: Use Comments and Coding Standards
  38. Урок 38. 00:03:34
    Where to Store Data in a Dynamic Website: An Introduction to Databases
  39. Урок 39. 00:07:53
    Access the Database Server Using phpMyAdmin And Create a Database
  40. Урок 40. 00:08:56
    Use Tables to Store Structured Data in a Database
  41. Урок 41. 00:06:01
    Select Some Data from The Database: An Introduction to Sql
  42. Урок 42. 00:06:09
    Using Indexes: Make Queries Faster and Order the Result Set
  43. Урок 43. 00:04:56
    Connect to the Database from PHP
  44. Урок 44. 00:05:21
    Query the Database from PHP And Get the Results
  45. Урок 45. 00:04:19
    Combine PHP and HTML to Show a Formatted List of Articles
  46. Урок 46. 00:03:24
    Add a New Page to Show a Single Article
  47. Урок 47. 00:05:36
    Passing Data in the URL: Send the Article ID Using the Query String
  48. Урок 48. 00:05:04
    Avoid SQL Injection: Validate the ID Passed in from the Query String
  49. Урок 49. 00:07:30
    Don't Repeat Yourself: Extract Repeated Code to a Separate File
  50. Урок 50. 00:04:31
    Organise and Secure Access to the Included Files
  51. Урок 51. 00:05:23
    Getting Data From the User: An Introduction to Forms in HTML
  52. Урок 52. 00:05:21
    Change the Method the Form Uses to Send its Data: get vs post
  53. Урок 53. 00:05:09
    Get Different Types of Data from the User: Basic Input Types
  54. Урок 54. 00:05:17
    Access Data from the form on the Server
  55. Урок 55. 00:02:29
    Add a Multi-line Text Control: the textarea Element
  56. Урок 56. 00:03:58
    Present a Fixed List of Options: the Select Element
  57. Урок 57. 00:04:03
    Toggle an Option on or off: checkboxes
  58. Урок 58. 00:03:00
    Select only one Option from a List: Radio Buttons
  59. Урок 59. 00:05:36
    Add an Accessible Caption to Each Input: the Label Element
  60. Урок 60. 00:02:49
    Make the Form Easier to Use: fieldsets and placeholders
  61. Урок 61. 00:02:42
    Common form Control Attributes: readonly, disabled and autofocus
  62. Урок 62. 00:06:24
    Validate Input Using HTML5 form Validation
  63. Урок 63. 00:03:12
    Add a Form to Insert a New Article
  64. Урок 64. 00:04:38
    Insert Data Into the Database: The SQL INSERT INTO Statement
  65. Урок 65. 00:04:15
    Insert a New Article Into the Database and Get the ID of the New Record
  66. Урок 66. 00:06:14
    How SQL Injection Attacks Work
  67. Урок 67. 00:02:09
    Avoid SQL Injection Attacks: Escape Input
  68. Урок 68. 00:04:09
    Avoid SQL Injection Attacks: Use Prepared Statements
  69. Урок 69. 00:07:03
    Functions: Define and Call a Function in PHP
  70. Урок 70. 00:03:57
    Create a Function to Connect to the Database
  71. Урок 71. 00:04:20
    Validate the Form Data and redisplay the Form with Error Messages if Invalid
  72. Урок 72. 00:04:41
    Maintain Previously-supplied Data When redisplaying an Invalid Form
  73. Урок 73. 00:05:03
    Avoid Cross-site Scripting (XSS) Attacks: Escape Untrusted Content
  74. Урок 74. 00:01:39
    Insert NULL if the Publication Date is Empty
  75. Урок 75. 00:05:23
    Validate the Publication Date is a Valid Date and Time
  76. Урок 76. 00:05:19
    Redirect to the Article Page After Inserting a New Article
  77. Урок 77. 00:06:06
    Editing Existing Articles: Create a Function to Get a Single Article
  78. Урок 78. 00:04:22
    Add a Form for Editing an Existing Article
  79. Урок 79. 00:05:39
    Add a Validation Function and Validate the Form Data
  80. Урок 80. 00:02:40
    Change Existing Data in the Database: The SQL UPDATE Statement
  81. Урок 81. 00:04:05
    Update an Existing Article in the Database
  82. Урок 82. 00:02:55
    Create a Function to Redirect to Another URL
  83. Урок 83. 00:01:46
    Delete Existing Data in the Database: The SQL DELETE Statement
  84. Урок 84. 00:03:19
    Delete an Existing Article in the Database
  85. Урок 85. 00:02:21
    Use the POST Request Method to Delete the Article
  86. Урок 86. 00:02:42
    Get Confirmation from the User Before Deleting the Article
  87. Урок 87. 00:04:16
    Improve Database Performance: Only use SELECT * when Necessary
  88. Урок 88. 00:05:29
    Make the Web Browser Remember you Between Visits: An Introduction to Sessions
  89. Урок 89. 00:06:04
    Store Data in the Browser: Cookies in PHP
  90. Урок 90. 00:04:59
    Store a Value in the Session to Log in and Log out a User
  91. Урок 91. 00:04:19
    Add a Login form and Process the User's Login Credentials
  92. Урок 92. 00:03:21
    Completely Destroy the Session on Logout and Redirect ack to the Index Page
  93. Урок 93. 00:01:57
    Increase Security: Prevent Session Fixation Attacks
  94. Урок 94. 00:04:02
    Restrict Access to a Page to a Logged-in User Only
  95. Урок 95. 00:04:24
    Classes and Objects: An Introduction to Object-Oriented PHP
  96. Урок 96. 00:03:46
    Object Attributes: Adding Properties to a Class
  97. Урок 97. 00:03:27
    Object Functions: Adding Methods to a Class
  98. Урок 98. 00:02:35
    Object Initialisation: the Constructor Method
  99. Урок 99. 00:02:43
    Control Access: Public and Private visibility of Properties and Methods
  100. Урок 100. 00:03:49
    Public Properties vs Getter and Setter Methods
  101. Урок 101. 00:03:47
    Static Properties and Methods
  102. Урок 102. 00:03:48
    Constants: Using Define and const to Create Constant Values
  103. Урок 103. 00:04:04
    Inheritance: Using the Extends Keyword to reuse Code and reduce Repetition
  104. Урок 104. 00:02:53
    Overriding Methods and Using the Parent Keyword to Call the Parent Class Code
  105. Урок 105. 00:04:04
    Control Access: Protected Visibility of Properties and Methods
  106. Урок 106. 00:05:33
    Add a Database Class and Connect to the Database Using PHP Data Objects (PDO)
  107. Урок 107. 00:02:14
    Queries in PDO: Change the Index Page to Use the New Database Class
  108. Урок 108. 00:05:16
    Catch Database Errors Using Exceptions and try ... catch Blocks
  109. Урок 109. 00:05:51
    Prepared Statements with Named Parameters in PDO: view an Individual Article
  110. Урок 110. 00:03:39
    Create an Article Class and Use it on the Index and Article Pages
  111. Урок 111. 00:02:44
    Fetch the Database Record as an Object Instead of an Array
  112. Урок 112. 00:05:39
    Update the Article Record Using PDO
  113. Урок 113. 00:04:49
    Move the Validation Function to the Article Class
  114. Урок 114. 00:03:03
    Delete the Article Record Using PDO
  115. Урок 115. 00:06:17
    Insert a new Article Record Using PDO and get the ID of the New Record
  116. Урок 116. 00:02:38
    Create a User Class and a Method to Authenticate a User
  117. Урок 117. 00:02:22
    Create a Table to Store User Data in the Database
  118. Урок 118. 00:04:42
    Authenticate the User with Data from the Database
  119. Урок 119. 00:06:24
    Store Passwords Securely: PHP Password Hashing Functions
  120. Урок 120. 00:02:09
    Store the Password as a Hash in the Database and Verify it on Login
  121. Урок 121. 00:03:14
    Convert the auth Include into a Class
  122. Урок 122. 00:02:46
    Convert the url Include into a Class
  123. Урок 123. 00:03:48
    Autoloading Classes: Require Class Files Automatically
  124. Урок 124. 00:04:05
    Add an Initialisation Script Including an Autoloader
  125. Урок 125. 00:03:48
    Returning a Value Using Require: Add a Script to get the Database Connection
  126. Урок 126. 00:03:54
    Move all Authentication-related Code to the Auth Class
  127. Урок 127. 00:06:46
    Create an Admin Index and Load Classes Relative to the site root Directory
  128. Урок 128. 00:06:51
    Displaying Tabular Data in HTML: Tables
  129. Урок 129. 00:02:59
    Display the Admin List of Articles in a Table and Restrict Access to the Page
  130. Урок 130. 00:05:05
    Add Sitewide Navigation Links
  131. Урок 131. 00:04:41
    Move the Edit and Delete Article Scripts to the admin Area
  132. Урок 132. 00:03:11
    Move the New Article Script to the admin Area
  133. Урок 133. 00:03:07
    Pagination: Split Database Results up Into Pages
  134. Урок 134. 00:02:43
    Add a Method to the Article Class to get a Single Page of Article Records
  135. Урок 135. 00:03:38
    Add a Paginator Class and Calculate the offset and Limit from the Page Number
  136. Урок 136. 00:03:35
    Get the Page Number from the Query String
  137. Урок 137. 00:03:55
    Validate the Page Number using the filter_var Function
  138. Урок 138. 00:03:36
    Add Previous and Next Pagination Links
  139. Урок 139. 00:04:13
    Calculate the Total Number of Records and Pages
  140. Урок 140. 00:05:01
    Add Pagination to the admin Index and Create Shared Pagination Links
  141. Урок 141. 00:04:59
    Uploading Files: Add a Form to Upload an Article Image
  142. Урок 142. 00:03:05
    Handle the Upload Error Code
  143. Урок 143. 00:06:25
    Restrict the Size of all Uploaded Files using PHP Configuration Settings
  144. Урок 144. 00:01:41
    Restrict the Size of an Uploaded File in an Individual Form
  145. Урок 145. 00:04:06
    Restrict the Type of an Uploaded File
  146. Урок 146. 00:04:20
    Create a Folder for Uploads and Move the Uploaded File into it
  147. Урок 147. 00:03:02
    Sanitise the Uploaded Filename as a Security Precaution
  148. Урок 148. 00:03:05
    Don't Overwrite Existing Files in the Uploads Folder
  149. Урок 149. 00:03:30
    Save the Filename to the Article Record in the Database
  150. Урок 150. 00:02:00
    Display the Uploaded Image if an Article has one
  151. Урок 151. 00:02:22
    Delete the Previous image File when an Article Image is Updated
  152. Урок 152. 00:04:16
    Add an Option to Delete an Article's Image file
  153. Урок 153. 00:02:26
    Database Relationships: Create a Table and Data for Categories
  154. Урок 154. 00:03:48
    One-to-one Relationships Between Tables
  155. Урок 155. 00:02:01
    One-to-many Relationships Between Tables
  156. Урок 156. 00:04:07
    Joins: Selecting Data from Multiple, Related Tables at Once
  157. Урок 157. 00:04:00
    Relationship Constraints
  158. Урок 158. 00:05:47
    Many-to-many Relationships Between Tables
  159. Урок 159. 00:06:11
    Show an Article's Categories on the Individual Article Page
  160. Урок 160. 00:03:14
    Get an Article's Categories in an Object Method
  161. Урок 161. 00:05:37
    Add a Category Class and form Inputs to edit an Article's Categories
  162. Урок 162. 00:07:40
    Insert Article Categories while Avoiding Duplicate Records in the Join Table
  163. Урок 163. 00:04:19
    Insert Article Categories more Efficiently using a Single Query
  164. Урок 164. 00:04:20
    Delete Article Category Records if Unchecked in the Form
  165. Урок 165. 00:04:27
    Add Categories When Inserting a new Article Record
  166. Урок 166. 00:09:27
    Pagination and Joins: Show Categories in the Index Page
  167. Урок 167. 00:06:11
    Execute Code in the Browser: An Introduction to JavaScript
  168. Урок 168. 00:05:23
    Using the jQuery Library
  169. Урок 169. 00:02:59
    Add jQuery and a Custom Script file to the CMS
  170. Урок 170. 00:07:24
    Add Delete Confirmation Using JavaScript and POST
  171. Урок 171. 00:05:40
    Client-side form Validation Using the jQuery Validation Plugin
  172. Урок 172. 00:06:15
    An Introduction to Ajax with PHP
  173. Урок 173. 00:05:31
    Use JSON to Safely Encode Structured Data in an Ajax Request
  174. Урок 174. 00:03:19
    Only Show an Individual Article if it's been Published
  175. Урок 175. 00:03:41
    Only Show Published Articles on the Index Page
  176. Урок 176. 00:04:06
    Use the DateTime Class and the Time Element to Show the Published Date and Time
  177. Урок 177. 00:02:20
    Show the Published Date and Time of Articles in the admin Area
  178. Урок 178. 00:07:48
    Publish Unpublished Articles Using an Ajax Request
  179. Урок 179. 00:05:55
    Add Styling and Formatting to HTML: an Introduction to CSS
  180. Урок 180. 00:03:00
    Using CSS Frameworks: Bootstrap et al
  181. Урок 181. 00:03:11
    Add a General Layout and Style the Navigation Links
  182. Урок 182. 00:02:41
    Add Styling and Layout to Forms and Tables
  183. Урок 183. 00:03:23
    Add a Custom Stylesheet and Style the List of Articles
  184. Урок 184. 00:03:57
    Add a Date and Time Picker Plugin to make Selecting Dates and Times Easier
  185. Урок 185. 00:02:49
    Add a Contact Page for Sending an Email
  186. Урок 186. 00:04:28
    Validate the Submitted Contact Form
  187. Урок 187. 00:02:52
    Get Access to a Mail Server
  188. Урок 188. 00:05:35
    How to Send Email from PHP: the Mail Function and PHPMailer
  189. Урок 189. 00:03:28
    Send Email from the Contact Page Using PHPMailer
  190. Урок 190. 00:05:04
    Extract Environment-dependent Settings out into a Single Configuration File
  191. Урок 191. 00:02:32
    Deny Direct Access to the config file from a Browser
  192. Урок 192. 00:05:36
    Handing Errors and Exceptions: user-defined Handling Functions
  193. Урок 193. 00:04:54
    Display Error and Exception Details Depending on the Environment
  194. Урок 194. 00:04:25
    HTTP Status Codes and Handling Ajax Errors
  195. Урок 195. 00:06:01
    Deployment: Publish your Code on a Live Server
  196. Урок 196. 00:01:39
    Conclusion: Where to go from Here
  197. Урок 197. 00:00:49
    Bonus - Please Watch!