├── .gitattributes ├── 978-1-4842-8204-5.jpg ├── Contributing.md ├── LICENSE.txt ├── README.md ├── ch1 ├── desktop.ini ├── test.php └── test.txt ├── ch10 ├── checkersarray.php ├── controllers │ ├── CSV.php │ ├── Column.php │ ├── Database.php │ ├── Excel.php │ ├── JSON.php │ ├── Numeric_Column.php │ ├── Table.php │ ├── desktop.ini │ ├── fileType.php │ └── file_type.php ├── createCSV.php ├── createJSON.php ├── data.csv ├── data.json ├── datatest.xlsx ├── desktop.ini ├── display_board.php ├── display_board_version2.php ├── display_board_version3.php ├── game_start_array.php ├── index.php ├── make_move.php ├── models │ ├── Data_Entries.class.php │ ├── Page_Data.class.php │ ├── Table.class.php │ ├── accessData.class.php │ ├── database.php │ └── desktop.ini ├── populateDatabase.php ├── simplexlsx-master │ ├── CHANGELOG.md │ ├── README.md │ ├── composer.json │ ├── desktop.ini │ ├── examples │ │ ├── 01-basic_usage.php │ │ ├── 02-rows_and_rowsEx.php │ │ ├── 03-sheets.php │ │ ├── 04-upload_and_convert_to_html.php │ │ ├── 05-rows_with_header_values_as_keys.php │ │ ├── books.xlsx │ │ ├── countries_and_population.xlsx │ │ └── desktop.ini │ ├── license.md │ └── src │ │ ├── SimpleXLSX.php │ │ ├── SimpleXLSXEx.php │ │ └── desktop.ini ├── start_game.php ├── testdata.xlsx ├── valid_jump.php ├── valid_jump_with_else.php ├── valid_move.php ├── valid_move_version_2.php ├── valid_move_version_2_with_else.php ├── valid_move_with_else.php └── views │ ├── desktop.ini │ ├── dropdown-form-html.php │ ├── file-form-html.php │ ├── fileType-form-html.php │ ├── googleDashboard.php │ ├── page.php │ └── source-html.php ├── ch2 ├── classes │ ├── Page_Data.class.php │ └── desktop.ini ├── css │ ├── desktop.ini │ └── layout.css ├── desktop.ini ├── headers.php ├── index.php ├── indexnav.php ├── indexwithclass.php ├── indexwithcss.php ├── newerindex.php ├── newestindexnav.php ├── newindex.php ├── newindexnav.php ├── secureindexnav.php ├── templates │ ├── desktop.ini │ ├── newerpage.php │ ├── page.php │ ├── pagewithcss.php │ └── pagewithstyle.php ├── test.php ├── test2.php ├── test3.php ├── test4.php ├── unorderedlist.php ├── updatedindexnav.php └── views │ ├── classnavigation.php │ ├── cssnavigation.php │ ├── desktop.ini │ ├── navigation.php │ ├── newestnavigation.php │ ├── projects.php │ ├── securenavigation.php │ └── skills.php ├── ch3 ├── Constructindex.php ├── Privateindex.php ├── argumenttestfunction.php ├── calltestfunction.php ├── calltwicetestfunction.php ├── classes │ ├── Construct_Page_Data.class.php │ ├── Page_Data.class.php │ ├── Private_Page_Data.class.php │ └── desktop.ini ├── desktop.ini ├── index.php ├── indexnewquiz.php ├── indexprintnewquiz.php ├── indexquiz.php ├── indexwithclass.php ├── indexwithnavigation.php ├── printAssocArray.php ├── returntestfunction.php ├── simpleindex.php ├── templates │ ├── desktop.ini │ ├── newerpage.php │ ├── page.php │ ├── pagewithcss.php │ ├── pagewithstyle.php │ └── privatepage.php ├── testAssocArray.php ├── testfunction.php └── views │ ├── classnavigation.php │ ├── desktop.ini │ ├── htmltest.html │ ├── navigation.php │ ├── newquiz.php │ ├── newquizform.php │ ├── newquiznavigation.php │ ├── printnewquiz.php │ ├── printnewquizform.php │ ├── printnewquiznavigation.php │ ├── quiz.php │ ├── quizform.php │ ├── quiznavigation.php │ ├── search.php │ ├── simplenavigation.php │ └── simplesearch.php ├── ch4 ├── classes │ ├── ImageUploader.class.php │ ├── ImagesUploader.class.php │ ├── Page_Data.class.php │ ├── Uploader.class.php │ └── desktop.ini ├── desktop.ini ├── forloop.php ├── imagelistindex.php ├── imageslistindex.php ├── imgs │ ├── bird.jpg │ ├── butterfly.jpg │ ├── desktop.ini │ ├── image4-1.jpg │ ├── image4-2.jpg │ ├── image4-4.jpg │ ├── lizard.jpg │ ├── mushroom.jpg │ └── sun.jpg ├── index.php ├── listindex.php ├── securelistindex.php ├── templates │ ├── desktop.ini │ └── page.php ├── views │ ├── checkFile.php │ ├── checkImageFile.php │ ├── desktop.ini │ ├── gallery.php │ ├── imagelistnavigation.php │ ├── imagesUpload.php │ ├── imagesUploadForm.php │ ├── imageslistnavigation.php │ ├── imageupload.php │ ├── imageuploadForm.php │ ├── listgallery.php │ ├── listnavigation.php │ ├── navigation.php │ ├── securelistgallery.php │ ├── securelistnavigation.php │ ├── showgallery.php │ ├── testUploadForm.php │ ├── upload.php │ └── uploadForm.php └── whileloop.php ├── ch6 ├── desktop.ini └── poll │ ├── completepollindex.php │ ├── controllers │ ├── completepoll.php │ ├── desktop.ini │ ├── finalpoll.php │ ├── newestpoll.php │ ├── newpoll.php │ └── poll.php │ ├── desktop.ini │ ├── finalpollindex.php │ ├── index.php │ ├── models │ ├── FinalPoll.class.php │ ├── NewPoll.class.php │ ├── NewestPoll.class.php │ ├── Page_Data.class.php │ ├── Poll.class.php │ ├── database.php │ └── desktop.ini │ ├── newestpollindex.php │ ├── newpollindex.php │ ├── pollindex.php │ └── views │ ├── completepoll-html.php │ ├── desktop.ini │ ├── finalpoll-html.php │ ├── page.php │ └── poll-html.php ├── ch7 ├── blog │ ├── admin.php │ ├── adminWithNavigation.php │ ├── controllers │ │ ├── admin │ │ │ ├── desktop.ini │ │ │ ├── editor.php │ │ │ ├── entries.php │ │ │ ├── neweditor.php │ │ │ └── newesteditor.php │ │ ├── blog.php │ │ ├── desktop.ini │ │ ├── newblog.php │ │ └── updatedblog.php │ ├── css │ │ ├── blog.css │ │ ├── desktop.ini │ │ └── newblog.css │ ├── desktop.ini │ ├── index.php │ ├── insertadminWithNavigation.php │ ├── models │ │ ├── Blog_Entry_Table.class.php │ │ ├── New_Blog_Entry_Table.class.php │ │ ├── Newest_Blog_Entry_Table.class.php │ │ ├── Page_Data.class.php │ │ ├── Updated_Blog_Entry_Table.class.php │ │ ├── database.php │ │ └── desktop.ini │ ├── newadminWithNavigation.php │ ├── newestadminWithNavigation.php │ ├── newindex.php │ ├── updatedadminWithNavigation.php │ ├── updatedindex.php │ └── views │ │ ├── admin │ │ ├── admin-navigation.php │ │ ├── desktop.ini │ │ ├── editor-admin-navigation.php │ │ ├── editor-html.php │ │ ├── insert-admin-navigation.php │ │ ├── insert-editor-html.php │ │ ├── new-admin-navigation.php │ │ ├── newest-admin-navigation.php │ │ └── updated-admin-navigation.php │ │ ├── desktop.ini │ │ ├── entry-html.php │ │ ├── list-entries-html.php │ │ ├── new-list-entries-html.php │ │ ├── page.php │ │ └── updated-entries-html.php └── desktop.ini ├── ch8 ├── blog │ ├── admin.php │ ├── anotheradmin.php │ ├── controllers │ │ ├── admin │ │ │ ├── anothereditor.php │ │ │ ├── anotherentries.php │ │ │ ├── desktop.ini │ │ │ ├── editor.php │ │ │ ├── entries.php │ │ │ ├── neweditor.php │ │ │ ├── newentries.php │ │ │ ├── newesteditor.php │ │ │ ├── newestentries.php │ │ │ ├── updatededitor.php │ │ │ └── updatedentries.php │ │ ├── blog.php │ │ ├── comments.php │ │ ├── desktop.ini │ │ ├── newblog.php │ │ ├── newcomments.php │ │ ├── searchblog.php │ │ ├── searched.php │ │ ├── searchedblog.php │ │ ├── searchedcomments.php │ │ ├── searchingblog.php │ │ ├── updatedblog.php │ │ └── updatedcomments.php │ ├── css │ │ ├── blog.css │ │ ├── desktop.ini │ │ └── newblog.css │ ├── desktop.ini │ ├── index.php │ ├── models │ │ ├── Blog_Entry_Table.class.php │ │ ├── Comment_Table.class.php │ │ ├── New_Blog_Entry_Table.class.php │ │ ├── Newest_Blog_Entry_Table.class.php │ │ ├── Page_Data.class.php │ │ ├── Searched_Blog_Entry_Table.class.php │ │ ├── Table.class.php │ │ ├── database.php │ │ └── desktop.ini │ ├── newadmin.php │ ├── newindex.php │ ├── searchedindex.php │ ├── searchindex.php │ ├── searchingindex.php │ ├── updatedadmin.php │ ├── updatedindex.php │ └── views │ │ ├── admin │ │ ├── admin-navigation.php │ │ ├── another-admin-navigation.php │ │ ├── another-editor-html.php │ │ ├── another-entries-html.php │ │ ├── desktop.ini │ │ ├── editor-html.php │ │ ├── entries-html.php │ │ ├── new-editor-html.php │ │ ├── new-entries-html.php │ │ ├── newest-admin-navigation.php │ │ ├── newest-editor-html.php │ │ ├── updated-admin-navigation.php │ │ ├── updated-editor-html.php │ │ └── updated-entries-html.php │ │ ├── comment-form-html.php │ │ ├── comments-html.php │ │ ├── desktop.ini │ │ ├── entries-html.php │ │ ├── entry-html.php │ │ ├── new-entries-html.php │ │ ├── page.php │ │ ├── search-entries-html.php │ │ ├── search-form-html.php │ │ ├── searched-comment-form-html.php │ │ ├── searched-comments-html.php │ │ ├── searched-entries-html.php │ │ ├── searched-form-html.php │ │ ├── searched-results-html.php │ │ ├── searching-entries-html.php │ │ ├── searching-form-html.php │ │ ├── updated-comment-form-html.php │ │ └── updated-entries-html.php └── desktop.ini ├── ch9 ├── blog │ ├── admin.php │ ├── completeadmin.php │ ├── controllers │ │ ├── admin │ │ │ ├── completeeditor.php │ │ │ ├── completeentries.php │ │ │ ├── completegallery.php │ │ │ ├── completeimages.php │ │ │ ├── completelogin.php │ │ │ ├── completeusers.php │ │ │ ├── desktop.ini │ │ │ ├── editor.php │ │ │ ├── entries.php │ │ │ ├── gallery.php │ │ │ ├── images.php │ │ │ ├── login.php │ │ │ ├── logineditor.php │ │ │ ├── loginentries.php │ │ │ ├── logingallery.php │ │ │ ├── loginimages.php │ │ │ ├── newestimages.php │ │ │ ├── newimages.php │ │ │ ├── newlogin.php │ │ │ ├── newsessioneditor.php │ │ │ ├── newsessionentries.php │ │ │ ├── newsessiongallery.php │ │ │ ├── newsessionimages.php │ │ │ ├── newsessionlogin.php │ │ │ ├── newsessionusers.php │ │ │ ├── secureeditor.php │ │ │ ├── secureentries.php │ │ │ ├── securegallery.php │ │ │ ├── secureimages.php │ │ │ ├── sessioneditor.php │ │ │ ├── sessionentries.php │ │ │ ├── sessiongallery.php │ │ │ ├── sessionimages.php │ │ │ ├── sessionlogin.php │ │ │ ├── sessionusers.php │ │ │ ├── updatededitor.php │ │ │ ├── updatedentries.php │ │ │ ├── updatedgallery.php │ │ │ ├── updatedimages.php │ │ │ ├── users.php │ │ │ ├── valideditor.php │ │ │ ├── validentries.php │ │ │ ├── validgallery.php │ │ │ ├── validimages.php │ │ │ └── validusers.php │ │ ├── blog.php │ │ ├── comments.php │ │ ├── desktop.ini │ │ └── searched.php │ ├── css │ │ ├── blog.css │ │ ├── desktop.ini │ │ └── newblog.css │ ├── desktop.ini │ ├── error-log.log │ ├── imgs │ │ ├── bird.jpg │ │ ├── butterfly.jpg │ │ ├── desktop.ini │ │ ├── lizard.jpg │ │ └── mushroom.jpg │ ├── index.php │ ├── loginadmin.php │ ├── models │ │ ├── Admin_Table.class.php │ │ ├── Admin_User.class.php │ │ ├── Blog_Entry_Table.class.php │ │ ├── Comment_Table.class.php │ │ ├── New_Admin_Table.class.php │ │ ├── New_Admin_User.class.php │ │ ├── Page_Data.class.php │ │ ├── Table.class.php │ │ ├── Updated_Blog_Entry_Table.class.php │ │ ├── Uploader.class.php │ │ ├── database.php │ │ ├── desktop.ini │ │ └── updateddatabase.php │ ├── newadmin.php │ ├── newestadmin.php │ ├── newsessionadmin.php │ ├── secureadmin.php │ ├── sessionadmin.php │ ├── updatedadmin.php │ ├── validadmin.php │ └── views │ │ ├── admin │ │ ├── admin-navigation.php │ │ ├── complete-admin-form-html.php │ │ ├── complete-admin-navigation.php │ │ ├── complete-editor-html.php │ │ ├── complete-entries-html.php │ │ ├── complete-images-html.php │ │ ├── complete-login-form-html.php │ │ ├── complete-logout-form-html.php │ │ ├── completegallery.php │ │ ├── desktop.ini │ │ ├── editor-html.php │ │ ├── entries-html.php │ │ ├── gallery.php │ │ ├── images-html.php │ │ ├── login-admin-navigation.php │ │ ├── login-editor-html.php │ │ ├── login-entries-html.php │ │ ├── login-form-html.php │ │ ├── login-images-html.php │ │ ├── logingallery.php │ │ ├── logout-form-html.php │ │ ├── new-admin-form-html.php │ │ ├── new-admin-navigation.php │ │ ├── new-session-admin-form-html.php │ │ ├── new-session-admin-navigation.php │ │ ├── new-session-editor-html.php │ │ ├── new-session-entries-html.php │ │ ├── new-session-images-html.php │ │ ├── new-session-login-form-html.php │ │ ├── new-session-logout-form-html.php │ │ ├── newest-admin-navigation.php │ │ ├── newest-images-html.php │ │ ├── newsessiongallery.php │ │ ├── secure-admin-navigation.php │ │ ├── secure-editor-html.php │ │ ├── secure-entries-html.php │ │ ├── secure-images-html.php │ │ ├── securegallery.php │ │ ├── session-admin-form-html.php │ │ ├── session-admin-navigation.php │ │ ├── session-editor-html.php │ │ ├── session-entries-html.php │ │ ├── session-images-html.php │ │ ├── session-login-form-html.php │ │ ├── sessiongallery.php │ │ ├── updated-admin-navigation.php │ │ ├── updated-editor-html.php │ │ ├── updated-entries-html.php │ │ ├── updated-images-html.php │ │ ├── updatedgallery.php │ │ ├── valid-admin-form-html.php │ │ ├── valid-admin-navigation.php │ │ ├── valid-editor-html.php │ │ ├── valid-entries-html.php │ │ ├── valid-images-html.php │ │ └── validgallery.php │ │ ├── checkImageFile.php │ │ ├── comment-form-html.php │ │ ├── comments-html.php │ │ ├── desktop.ini │ │ ├── entries-html.php │ │ ├── entry-html.php │ │ ├── form-html.php │ │ ├── page.php │ │ └── results-html.php ├── desktop.ini └── hasher.php └── errata.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /978-1-4842-8204-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/978-1-4842-8204-5.jpg -------------------------------------------------------------------------------- /Contributing.md: -------------------------------------------------------------------------------- 1 | # Contributing to Apress Source Code 2 | 3 | Copyright for Apress source code belongs to the author(s). However, under fair use you are encouraged to fork and contribute minor corrections and updates for the benefit of the author(s) and other readers. 4 | 5 | ## How to Contribute 6 | 7 | 1. Make sure you have a GitHub account. 8 | 2. Fork the repository for the relevant book. 9 | 3. Create a new branch on which to make your change, e.g. 10 | `git checkout -b my_code_contribution` 11 | 4. Commit your change. Include a commit message describing the correction. Please note that if your commit message is not clear, the correction will not be accepted. 12 | 5. Submit a pull request. 13 | 14 | Thank you for your contribution! -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Apress Source Code 2 | 3 | This repository accompanies [*PHP 8 for Absolute Beginners*](https://link.springer.com/book/10.1007/978-1-4842-8205-2) by Jason Lengstorf, Thomas Blom Hansen, and Steve Prettyman (Apress, 2022). 4 | 5 | [comment]: #cover 6 |  7 | 8 | Download the files as a zip using the green button, or clone the repository to your machine using Git. 9 | 10 | ## Releases 11 | 12 | Release v1.0 corresponds to the code in the published book, without corrections or updates. 13 | 14 | ## Contributions 15 | 16 | See the file Contributing.md for more information on how you can contribute to this repository. -------------------------------------------------------------------------------- /ch1/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch1/test.php: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ch1/test.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ch10/checkersarray.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ch10/controllers/CSV.php: -------------------------------------------------------------------------------- 1 | returnCSVTitles($file,'','', true); 9 | require_once "views/dropdown-form-html.php"; 10 | } 11 | ?> -------------------------------------------------------------------------------- /ch10/controllers/Database.php: -------------------------------------------------------------------------------- 1 | returnDatabaseTables($database); 9 | require_once "views/dropdown-form-html.php"; 10 | } 11 | ?> -------------------------------------------------------------------------------- /ch10/controllers/Excel.php: -------------------------------------------------------------------------------- 1 | returnExcelTitles($file,'','', true); 10 | require_once "views/dropdown-form-html.php"; 11 | } 12 | ?> -------------------------------------------------------------------------------- /ch10/controllers/JSON.php: -------------------------------------------------------------------------------- 1 | returnJSONTitles($file,'','', true); 9 | require_once "views/dropdown-form-html.php"; 10 | } 11 | ?> -------------------------------------------------------------------------------- /ch10/controllers/Table.php: -------------------------------------------------------------------------------- 1 | returnDatabaseTitles($database, $columns,'',true); 10 | require_once "views/dropdown-form-html.php"; 11 | } 12 | ?> -------------------------------------------------------------------------------- /ch10/controllers/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch10/controllers/fileType.php: -------------------------------------------------------------------------------- 1 | returnDatabases(); 10 | require_once "views/dropdown-form-html.php"; 11 | } 12 | else if($file_type == "Excel") { 13 | $type = "Excel"; 14 | $file_type = ".xlsx"; 15 | require_once "views/file-form-html.php"; 16 | } 17 | else if($file_type == "JSON") { 18 | $type = "JSON"; 19 | $file_type = ".json"; 20 | require_once "views/file-form-html.php"; 21 | } 22 | else if($file_type == "CSV") { 23 | $type = "CSV"; 24 | $file_type = ".csv"; 25 | require_once "views/file-form-html.php"; 26 | } 27 | } 28 | ?> -------------------------------------------------------------------------------- /ch10/controllers/file_type.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ch10/createCSV.php: -------------------------------------------------------------------------------- 1 | rows(); 8 | $file = fopen("data.csv","w"); 9 | foreach ($values as $value) { 10 | fputcsv($file, $value); 11 | } 12 | echo "data.csv created"; 13 | fclose($file); 14 | } else { 15 | echo SimpleXLSX::parseError(); 16 | } 17 | ?> 18 | -------------------------------------------------------------------------------- /ch10/createJSON.php: -------------------------------------------------------------------------------- 1 | rows()); 9 | file_put_contents("data.json", $netJSON); 10 | echo "data.json created"; 11 | } else { 12 | echo SimpleXLSX::parseError(); 13 | } 14 | ?> 15 | -------------------------------------------------------------------------------- /ch10/data.csv: -------------------------------------------------------------------------------- 1 | "Last Name","First Name",Gender,"Assignment Average","Discussion Average","Research Paper","Semester Percent","Semester Grade" 2 | Abraham,Nicole,F,6.5,0,0,7,F 3 | Adams,Cynthia,NB,62.96875,10,25,98,A 4 | Anderson,Matt,M,44.28125,5,25,74,C 5 | Apple,Drew,NB,62.96875,10,25,98,A 6 | Biden,Nate,MX,60.85625,10,22.75,94,A 7 | Carrol,Joshua,M,32.5,0,2.5,35,F 8 | Hitman,Jim,M,61.5875,9.5,20.75,92,A 9 | Johnson,Grant,NB,64.59375,10,24.875,99,A 10 | Jones,Andra,F,42.25,8.5,14,65,D 11 | Mohammed,Alex,M,65,10,25,100,A 12 | Sewell,Chris,M,56.46875,5,23.75,85,B 13 | Smith,Nick,M,63.375,8.5,25,97,A 14 | Washington,Clay,M,64.1875,10,22.75,97,A 15 | Watson,Hieu,NB,63.375,10,25,98,A 16 | Wilson,Amos,M,61.18125,10,18.25,89.43,B 17 | Xie,Hannah,F,63.78125,10,25,99,A 18 | Zen,Akrem,M,58.5,10,19.5,88,B 19 | -------------------------------------------------------------------------------- /ch10/data.json: -------------------------------------------------------------------------------- 1 | [["Last Name","First Name","Gender","Assignment Average","Discussion Average","Research Paper","Semester Percent","Semester Grade"],["Abraham","Nicole","F",6.5,0,0,7,"F"],["Adams","Cynthia","NB",62.96875,10,25,98,"A"],["Anderson","Matt","M",44.28125,5,25,74,"C"],["Apple","Drew","NB",62.96875,10,25,98,"A"],["Biden","Nate","MX",60.85625,10,22.75,94,"A"],["Carrol","Joshua","M",32.5,0,2.5,35,"F"],["Hitman","Jim","M",61.5875,9.5,20.75,92,"A"],["Johnson","Grant","NB",64.59375,10,24.875,99,"A"],["Jones","Andra","F",42.25,8.5,14,65,"D"],["Mohammed","Alex","M",65,10,25,100,"A"],["Sewell","Chris","M",56.46875,5,23.75,85,"B"],["Smith","Nick","M",63.375,8.5,25,97,"A"],["Washington","Clay","M",64.1875,10,22.75,97,"A"],["Watson","Hieu","NB",63.375,10,25,98,"A"],["Wilson","Amos","M",61.18125,10,18.25,89.43,"B"],["Xie","Hannah","F",63.78125,10,25,99,"A"],["Zen","Akrem","M",58.5,10,19.5,88,"B"]] -------------------------------------------------------------------------------- /ch10/datatest.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch10/datatest.xlsx -------------------------------------------------------------------------------- /ch10/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch10/display_board.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ch10/display_board_version2.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ch10/index.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP Dashboard demo"); 8 | 9 | $pageRequested = isset( $_GET['page'] ); 10 | //default controller file_type 11 | $controller = "file_type"; 12 | if ( $pageRequested ) { 13 | $controller = $_GET['page']; 14 | } 15 | include_once "controllers/$controller.php"; 16 | $pageData->setContent($info); 17 | include_once "views/page.php"; 18 | echo $page; 19 | ?> 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /ch10/make_move.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ch10/models/Table.class.php: -------------------------------------------------------------------------------- 1 | db = $db; 9 | } 10 | protected function executeSQL ( $sql, $data = NULL) { 11 | //create a PDOStatement object 12 | $statement = $this->db->prepare( $sql ); 13 | try{ 14 | //use the dynamic data and run the query 15 | $statement->execute( $data ); 16 | } catch (Exception $e) { 17 | $exceptionMessage = "
You tried to run this sql: $sql
18 |
Exception: $e
"; 19 | trigger_error($exceptionMessage); 20 | } 21 | //return the PDOStatement object 22 | return $statement; 23 | } 24 | } 25 | ?> 26 | -------------------------------------------------------------------------------- /ch10/models/database.php: -------------------------------------------------------------------------------- 1 | getMessage(); 11 | $pageData->setContent("$e
"); 12 | exit(); 13 | } 14 | } 15 | ?> -------------------------------------------------------------------------------- /ch10/models/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch10/simplexlsx-master/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shuchkin/simplexlsx", 3 | "description": "Parse and retrieve data from Excel XLSx files. MS Excel 2007 workbooks PHP reader.", 4 | "keywords": ["php", "excel", "xlsx", "parser", "backend"], 5 | "homepage": "https://github.com/shuchkin/simplexlsx", 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "Sergey Shuchkin (SMSPILOT)", 10 | "email": "sergey.shuchkin@gmail.com", 11 | "homepage": "https://github.com/shuchkin" 12 | } 13 | ], 14 | "autoload": { 15 | "classmap": [ 16 | "src/SimpleXLSX.php" 17 | ] 18 | }, 19 | "require": { 20 | "php": ">=5.5", 21 | "ext-simplexml": "*", 22 | "ext-zlib": "*", 23 | "ext-libxml": "*", 24 | "ext-mbstring": "*" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ch10/simplexlsx-master/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch10/simplexlsx-master/examples/01-basic_usage.php: -------------------------------------------------------------------------------- 1 | Parse books.xslx'; 11 | if ($xlsx = SimpleXLSX::parse('books.xlsx')) { 12 | print_r($xlsx->rows()); 13 | } else { 14 | echo SimpleXLSX::parseError(); 15 | } 16 | echo '20 | "; 21 | ?> -------------------------------------------------------------------------------- /ch10/views/fileType-form-html.php: -------------------------------------------------------------------------------- 1 | 6 | 7 |'; 17 | -------------------------------------------------------------------------------- /ch10/simplexlsx-master/examples/02-rows_and_rowsEx.php: -------------------------------------------------------------------------------- 1 | rows() and rowsEx()'; 11 | if ($xlsx = SimpleXLSX::parse('books.xlsx')) { 12 | // ->rows() 13 | echo '$xlsx->rows()
'; 14 | echo ''; 15 | print_r($xlsx->rows()); 16 | echo ''; 17 | 18 | // ->rowsEx(); 19 | echo '$xlsx->rowsEx()
'; 20 | echo ''; 21 | print_r($xlsx->rowsEx()); 22 | echo ''; 23 | } else { 24 | echo SimpleXLSX::parseError(); 25 | } 26 | -------------------------------------------------------------------------------- /ch10/simplexlsx-master/examples/books.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch10/simplexlsx-master/examples/books.xlsx -------------------------------------------------------------------------------- /ch10/simplexlsx-master/examples/countries_and_population.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch10/simplexlsx-master/examples/countries_and_population.xlsx -------------------------------------------------------------------------------- /ch10/simplexlsx-master/examples/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch10/simplexlsx-master/src/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch10/start_game.php: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /ch10/testdata.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch10/testdata.xlsx -------------------------------------------------------------------------------- /ch10/valid_move.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ch10/valid_move_version_2.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ch10/views/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch10/views/dropdown-form-html.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
" 17 | . $dropdown . 18 | "
19 | "; 20 | ?> -------------------------------------------------------------------------------- /ch10/views/file-form-html.php: -------------------------------------------------------------------------------- 1 | Select $type Data File15 |
Will soon load $fileToLoad.php
"; 12 | } 13 | //end of changes 14 | require "templates/newerpage.php"; 15 | echo $page; 16 | ?> 17 | -------------------------------------------------------------------------------- /ch2/secureindexnav.php: -------------------------------------------------------------------------------- 1 | title = "Thomas Blom Hansen: Portfolio site"; 8 | $pageData->content = $nav; 9 | //changes begin here 10 | $navigationIsClicked = isset($_GET['page']); 11 | if ($navigationIsClicked ) { 12 | $fileToLoad = $_GET['page']; 13 | } else { 14 | $fileToLoad = "skills"; 15 | } 16 | include_once "views/$fileToLoad.php"; 17 | $pageData->content .= $info; 18 | //end of changes 19 | require "templates/newerpage.php"; 20 | echo $page; 21 | ?> 22 | -------------------------------------------------------------------------------- /ch2/templates/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch2/templates/newerpage.php: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 |Static Text
2 | This text was generated by PHP!"; 4 | ?> 5 |This text was not.
6 | -------------------------------------------------------------------------------- /ch2/test2.php: -------------------------------------------------------------------------------- 1 | This is some text."; 3 | ?> 4 |Some of this text is static,
5 | "; ?> 6 | This text is enclosed in paragraph tags that were generated by PHP. 7 | "; ?> 8 | -------------------------------------------------------------------------------- /ch2/test3.php: -------------------------------------------------------------------------------- 1 | I am $myName and I have a friend called $friendsName."; 5 | ?> 6 | -------------------------------------------------------------------------------- /ch2/test4.php: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ch2/unorderedlist.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |Read all about my skills and my formal training
4 | "; 5 | ?> 6 | -------------------------------------------------------------------------------- /ch3/Constructindex.php: -------------------------------------------------------------------------------- 1 | title = "Building and processing HTML forms with PHP"; 9 | $pageData->content = $nav; 10 | $pageData->content .= "16 | Try quiz again? 17 |
"; 18 | return $response; 19 | } 20 | ?> 21 | -------------------------------------------------------------------------------- /ch3/views/newquizform.php: -------------------------------------------------------------------------------- 1 | 4 |Is it hard fun to learn PHP?
5 | 9 | 10 | "; 11 | ?> 12 | -------------------------------------------------------------------------------- /ch3/views/newquiznavigation.php: -------------------------------------------------------------------------------- 1 | 4 | Search on bing 5 | Dynamic quiz 6 | 7 | "; 8 | ?> 9 | -------------------------------------------------------------------------------- /ch3/views/printnewquiz.php: -------------------------------------------------------------------------------- 1 | "; 12 | $info .= print_r($_POST, true); 13 | $info .= ""; 14 | } else { 15 | include_once "views/printnewquizform.php"; 16 | } 17 | //declare a new function 18 | function showQuizResponse( $answer ){ 19 | $response = "You clicked $answer
"; 20 | $response .= "21 | Try quiz again? 22 |
"; 23 | return $response; 24 | } 25 | ?> 26 | -------------------------------------------------------------------------------- /ch3/views/printnewquizform.php: -------------------------------------------------------------------------------- 1 | 4 |Is it hard fun to learn PHP?
5 | 9 | 10 | "; 11 | ?> 12 | -------------------------------------------------------------------------------- /ch3/views/printnewquiznavigation.php: -------------------------------------------------------------------------------- 1 | 4 | Search on bing 5 | Dynamic quiz 6 | 7 | "; 8 | ?> 9 | -------------------------------------------------------------------------------- /ch3/views/quiz.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /ch3/views/quizform.php: -------------------------------------------------------------------------------- 1 | 4 |Is it hard fun to learn PHP?
5 | 9 | 10 | "; 11 | ?> 12 | -------------------------------------------------------------------------------- /ch3/views/quiznavigation.php: -------------------------------------------------------------------------------- 1 | 4 | Search on bing 5 | Dynamic quiz 6 | 7 | "; 8 | ?> 9 | -------------------------------------------------------------------------------- /ch3/views/search.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /ch3/views/simplenavigation.php: -------------------------------------------------------------------------------- 1 | 4 | Search on bing 5 | Dynamic quiz 6 | 7 | "; 8 | ?> 9 | -------------------------------------------------------------------------------- /ch3/views/simplesearch.php: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | "; 7 | ?> 8 | -------------------------------------------------------------------------------- /ch4/classes/ImageUploader.class.php: -------------------------------------------------------------------------------- 1 | filename = $_FILES[$key]['name']; 11 | $this->fileData = $_FILES[$key]['tmp_name']; 12 | } 13 | 14 | public function saveIn( $folder ) { 15 | $this->destination = $folder; 16 | } 17 | 18 | public function save(){ 19 | //no code here yet 20 | } 21 | } 22 | ?> 23 | -------------------------------------------------------------------------------- /ch4/classes/Uploader.class.php: -------------------------------------------------------------------------------- 1 | destination = $folder; 9 | } 10 | 11 | public function save(){ 12 | //no code here yet 13 | } 14 | } 15 | ?> 16 | -------------------------------------------------------------------------------- /ch4/classes/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch4/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch4/forloop.php: -------------------------------------------------------------------------------- 1 | "; 4 | } 5 | ?> 6 | 7 | -------------------------------------------------------------------------------- /ch4/imagelistindex.php: -------------------------------------------------------------------------------- 1 | setTitle("Dynamic image gallery"); 9 | $pageData->setContent($nav); 10 | $navigationIsClicked = isset($_GET['page']); 11 | if ( $navigationIsClicked ) { 12 | $fileToLoad = $_GET['page']; 13 | } else { 14 | $fileToLoad = "securelistgallery"; 15 | } 16 | include_once "views/$fileToLoad.php"; 17 | $pageData->appendContent($info); 18 | require "templates/page.php"; 19 | echo $page; 20 | ?> 21 | 22 | -------------------------------------------------------------------------------- /ch4/imageslistindex.php: -------------------------------------------------------------------------------- 1 | setTitle("Dynamic image gallery"); 9 | $pageData->setContent($nav); 10 | $navigationIsClicked = isset($_GET['page']); 11 | if ( $navigationIsClicked ) { 12 | $fileToLoad = $_GET['page']; 13 | } else { 14 | $fileToLoad = "securelistgallery"; 15 | } 16 | include_once "views/$fileToLoad.php"; 17 | $pageData->appendContent($info); 18 | require "templates/page.php"; 19 | echo $page; 20 | ?> 21 | 22 | -------------------------------------------------------------------------------- /ch4/imgs/bird.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch4/imgs/bird.jpg -------------------------------------------------------------------------------- /ch4/imgs/butterfly.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch4/imgs/butterfly.jpg -------------------------------------------------------------------------------- /ch4/imgs/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch4/imgs/image4-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch4/imgs/image4-1.jpg -------------------------------------------------------------------------------- /ch4/imgs/image4-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch4/imgs/image4-2.jpg -------------------------------------------------------------------------------- /ch4/imgs/image4-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch4/imgs/image4-4.jpg -------------------------------------------------------------------------------- /ch4/imgs/lizard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch4/imgs/lizard.jpg -------------------------------------------------------------------------------- /ch4/imgs/mushroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch4/imgs/mushroom.jpg -------------------------------------------------------------------------------- /ch4/imgs/sun.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/php8-for-absolute-beginners/f4160d8b8d9bb2bb430f4698ae5016f2a5ce9f05/ch4/imgs/sun.jpg -------------------------------------------------------------------------------- /ch4/index.php: -------------------------------------------------------------------------------- 1 | setTitle("Dynamic image gallery"); 9 | $pageData->setContent($nav); 10 | $navigationIsClicked = isset($_GET['page']); 11 | if ( $navigationIsClicked ) { 12 | $fileToLoad = $_GET['page']; 13 | } else { 14 | $fileToLoad = "gallery"; 15 | } 16 | include_once "views/$fileToLoad.php"; 17 | $pageData->appendContent($info); 18 | require "templates/page.php"; 19 | echo $page; 20 | ?> 21 | 22 | -------------------------------------------------------------------------------- /ch4/listindex.php: -------------------------------------------------------------------------------- 1 | setTitle("Dynamic image gallery"); 9 | $pageData->setContent($nav); 10 | $navigationIsClicked = isset($_GET['page']); 11 | if ( $navigationIsClicked ) { 12 | $fileToLoad = $_GET['page']; 13 | } else { 14 | $fileToLoad = "listgallery"; 15 | } 16 | include_once "views/$fileToLoad.php"; 17 | $pageData->appendContent($info); 18 | require "templates/page.php"; 19 | echo $page; 20 | ?> 21 | 22 | -------------------------------------------------------------------------------- /ch4/securelistindex.php: -------------------------------------------------------------------------------- 1 | setTitle("Dynamic image gallery"); 9 | $pageData->setContent($nav); 10 | $navigationIsClicked = isset($_GET['page']); 11 | if ( $navigationIsClicked ) { 12 | $fileToLoad = $_GET['page']; 13 | } else { 14 | $fileToLoad = "securelistgallery"; 15 | } 16 | include_once "views/$fileToLoad.php"; 17 | $pageData->appendContent($info); 18 | require "templates/page.php"; 19 | echo $page; 20 | ?> 21 | 22 | -------------------------------------------------------------------------------- /ch4/templates/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch4/templates/page.php: -------------------------------------------------------------------------------- 1 |$e
"); 11 | exit(); 12 | } 13 | ?> -------------------------------------------------------------------------------- /ch6/poll/models/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch6/poll/newestpollindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL site poll example"); 8 | include_once "models/database.php"; 9 | include_once "controllers/newestpoll.php"; 10 | $pageData->setContent($info); 11 | require "views/page.php"; 12 | echo $page; 13 | ?> 14 | -------------------------------------------------------------------------------- /ch6/poll/newpollindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL site poll example"); 8 | include_once "controllers/newpoll.php"; 9 | $pageData->setContent($info); 10 | require "views/page.php"; 11 | echo $page; 12 | ?> 13 | -------------------------------------------------------------------------------- /ch6/poll/pollindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL site poll example"); 8 | include_once "controllers/poll.php"; 9 | $pageData->setContent($info); 10 | $pageData->appendContent("$e
"); 11 | exit(); 12 | } 13 | ?> -------------------------------------------------------------------------------- /ch7/blog/models/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch7/blog/newadminWithNavigation.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "entries"; 19 | } 20 | //load the controller 21 | include_once "controllers/admin/$contrl.php"; 22 | $pageData->appendContent($info); 23 | include_once "views/page.php"; 24 | echo $page; 25 | ?> 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ch7/blog/newestadminWithNavigation.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "entries"; 19 | } 20 | //load the controller 21 | include_once "controllers/admin/$contrl.php"; 22 | $pageData->appendContent($info); 23 | include_once "views/page.php"; 24 | echo $page; 25 | ?> 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ch7/blog/newindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 7 | include_once "models/database.php"; 8 | include_once "controllers/newblog.php"; 9 | $pageData->setContent($info); 10 | include_once "views/page.php"; 11 | echo $page; 12 | ?> 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ch7/blog/updatedadminWithNavigation.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "entries"; 19 | } 20 | //load the controller 21 | include_once "controllers/admin/$contrl.php"; 22 | $pageData->appendContent($info); 23 | include_once "views/page.php"; 24 | echo $page; 25 | ?> 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ch7/blog/updatedindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 7 | include_once "models/database.php"; 8 | include_once "controllers/updatedblog.php"; 9 | $pageData->setContent($info); 10 | include_once "views/page.php"; 11 | echo $page; 12 | ?> 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ch7/blog/views/admin/admin-navigation.php: -------------------------------------------------------------------------------- 1 | 5 | All entries 6 | Editor 7 | "; 8 | ?> -------------------------------------------------------------------------------- /ch7/blog/views/admin/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch7/blog/views/admin/editor-admin-navigation.php: -------------------------------------------------------------------------------- 1 | 5 | All entries 6 | Editor 7 | "; 8 | ?> -------------------------------------------------------------------------------- /ch7/blog/views/admin/editor-html.php: -------------------------------------------------------------------------------- 1 | 5 | 18 | 19 | "; 20 | ?> 21 | -------------------------------------------------------------------------------- /ch7/blog/views/admin/insert-admin-navigation.php: -------------------------------------------------------------------------------- 1 | 5 | All entries 6 | Editor 7 | "; 8 | ?> -------------------------------------------------------------------------------- /ch7/blog/views/admin/insert-editor-html.php: -------------------------------------------------------------------------------- 1 | 5 |You tried to run this sql: $sql
18 |
Exception: $e
"; 19 | trigger_error($exceptionMessage); 20 | } 21 | //return the PDOStatement object 22 | return $statement; 23 | } 24 | } 25 | ?> 26 | -------------------------------------------------------------------------------- /ch8/blog/models/database.php: -------------------------------------------------------------------------------- 1 | getMessage(); 10 | $pageData->setContent("$e
"); 11 | exit(); 12 | } 13 | ?> -------------------------------------------------------------------------------- /ch8/blog/models/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch8/blog/newadmin.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "newestentries"; 19 | } 20 | //load the controller 21 | include_once "models/database.php"; 22 | include_once "controllers/admin/$contrl.php"; 23 | $pageData->appendContent($info); 24 | include_once "views/page.php"; 25 | echo $page; 26 | ?> 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ch8/blog/newindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 7 | include_once "models/database.php"; 8 | include_once "controllers/newblog.php"; 9 | $pageData->setContent($info); 10 | include_once "views/page.php"; 11 | echo $page; 12 | ?> 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ch8/blog/searchedindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 7 | include_once "models/database.php"; 8 | 9 | $pageRequested = isset( $_GET['page'] ); 10 | //default controller is searchedblog 11 | $controller = "searchedblog"; 12 | if ( $pageRequested ) { 13 | //if user submitted the search form 14 | if ( $_GET['page'] === "search" ) { 15 | //load the search by overwriting default controller 16 | $controller = "searched"; 17 | } 18 | } 19 | include_once "controllers/$controller.php"; 20 | include_once "views/searched-form-html.php"; 21 | $pageData->setContent($info); 22 | include_once "views/page.php"; 23 | echo $page; 24 | ?> 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ch8/blog/searchindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 7 | include_once "models/database.php"; 8 | include_once "controllers/searchblog.php"; 9 | //new code: include the search view before the blog controller 10 | include_once "views/search-form-html.php"; 11 | //end of new code 12 | $pageData->setContent($info); 13 | include_once "views/page.php"; 14 | echo $page; 15 | ?> 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ch8/blog/searchingindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 7 | include_once "models/database.php"; 8 | 9 | $pageRequested = isset( $_GET['page'] ); 10 | //default controller is searchingblog 11 | $controller = "searchingblog"; 12 | if ( $pageRequested ) { 13 | //if user submitted the search form 14 | if ( $_GET['page'] === "search" ) { 15 | //load the search by overwriting default controller 16 | $controller = "search"; 17 | } 18 | } 19 | include_once "controllers/$controller.php"; 20 | include_once "views/searching-form-html.php"; 21 | $pageData->setContent($info); 22 | include_once "views/page.php"; 23 | echo $page; 24 | ?> 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ch8/blog/updatedadmin.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "updatedentries"; 19 | } 20 | //load the controller 21 | include_once "models/database.php"; 22 | include_once "controllers/admin/$contrl.php"; 23 | $pageData->appendContent($info); 24 | include_once "views/page.php"; 25 | echo $page; 26 | ?> 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ch8/blog/updatedindex.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 7 | include_once "models/database.php"; 8 | include_once "controllers/updatedblog.php"; 9 | $pageData->setContent($info); 10 | include_once "views/page.php"; 11 | echo $page; 12 | ?> 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ch8/blog/views/admin/admin-navigation.php: -------------------------------------------------------------------------------- 1 | 5 | All entries 6 | Editor 7 | "; 8 | ?> -------------------------------------------------------------------------------- /ch8/blog/views/admin/another-admin-navigation.php: -------------------------------------------------------------------------------- 1 | 5 | All entries 6 | Editor 7 | "; 8 | ?> -------------------------------------------------------------------------------- /ch8/blog/views/admin/another-entries-html.php: -------------------------------------------------------------------------------- 1 | element 9 | $info = "$commentData->txt
15 |$commentData->txt
15 |You tried to run this sql: $sql
18 |
Exception: $e
"; 19 | trigger_error($exceptionMessage); 20 | } 21 | //return the PDOStatement object 22 | return $statement; 23 | } 24 | } 25 | ?> 26 | -------------------------------------------------------------------------------- /ch9/blog/models/database.php: -------------------------------------------------------------------------------- 1 | getMessage(); 10 | $pageData->setContent("$e
"); 11 | exit(); 12 | } 13 | ?> -------------------------------------------------------------------------------- /ch9/blog/models/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch9/blog/models/updateddatabase.php: -------------------------------------------------------------------------------- 1 | getMessage(); 10 | $pageData->setContent("$e
"); 11 | exit(); 12 | } 13 | ?> -------------------------------------------------------------------------------- /ch9/blog/newadmin.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "newentries"; 19 | } 20 | //load the controller 21 | include_once "models/database.php"; 22 | include_once "controllers/admin/$contrl.php"; 23 | $pageData->appendContent($info); 24 | include_once "views/page.php"; 25 | echo $page; 26 | ?> 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ch9/blog/newestadmin.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "newestentries"; 19 | } 20 | //load the controller 21 | include_once "models/database.php"; 22 | include_once "controllers/admin/$contrl.php"; 23 | $pageData->appendContent($info); 24 | include_once "views/page.php"; 25 | echo $page; 26 | ?> 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ch9/blog/secureadmin.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "secureentries"; 19 | } 20 | //load the controller 21 | include_once "models/updateddatabase.php"; 22 | include_once "controllers/admin/$contrl.php"; 23 | $pageData->appendContent($info); 24 | include_once "views/page.php"; 25 | echo $page; 26 | ?> 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ch9/blog/updatedadmin.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "updatedentries"; 19 | } 20 | //load the controller 21 | include_once "models/updateddatabase.php"; 22 | include_once "controllers/admin/$contrl.php"; 23 | $pageData->appendContent($info); 24 | include_once "views/page.php"; 25 | echo $page; 26 | ?> 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ch9/blog/validadmin.php: -------------------------------------------------------------------------------- 1 | setTitle("PHP/MySQL blog demo"); 9 | $pageData->setCss(""); 10 | $pageData->setContent($nav); 11 | //new code begins here 12 | $navigationIsClicked = isset( $_GET['page'] ); 13 | if ( $navigationIsClicked ) { 14 | //prepare to load corresponding controller 15 | $contrl = $_GET['page']; 16 | } else { 17 | //prepare to load default controller 18 | $contrl = "validentries"; 19 | } 20 | //load the controller 21 | include_once "models/updateddatabase.php"; 22 | include_once "controllers/admin/$contrl.php"; 23 | $pageData->appendContent($info); 24 | include_once "views/page.php"; 25 | echo $page; 26 | ?> 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ch9/blog/views/admin/admin-navigation.php: -------------------------------------------------------------------------------- 1 | 5 | All entries 6 | Editor 7 | Image manager 8 | "; 9 | ?> 10 | -------------------------------------------------------------------------------- /ch9/blog/views/admin/complete-admin-navigation.php: -------------------------------------------------------------------------------- 1 | 5 | All entries 6 | Editor 7 | Image manager 8 | Image gallery 9 | Create Admin User 10 | "; 11 | ?> 12 | -------------------------------------------------------------------------------- /ch9/blog/views/admin/complete-entries-html.php: -------------------------------------------------------------------------------- 1 | element 9 | $info .= "$loginFormMessage
"; 14 | ?> -------------------------------------------------------------------------------- /ch9/blog/views/admin/complete-logout-form-html.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | "; 8 | ?> -------------------------------------------------------------------------------- /ch9/blog/views/admin/desktop.ini: -------------------------------------------------------------------------------- 1 | [ . S h e l l C l a s s I n f o ] 2 | C o n f i r m F i l e O p = 0 3 | I c o n R e s o u r c e = C : \ P r o g r a m F i l e s \ G o o g l e \ D r i v e F i l e S t r e a m \ 6 4 . 0 . 4 . 0 \ G o o g l e D r i v e F S . e x e , 2 3 4 | -------------------------------------------------------------------------------- /ch9/blog/views/admin/entries-html.php: -------------------------------------------------------------------------------- 1 | element 9 | $info = "$commentData->txt
15 |