Database Normalization, Data Backups, and User Tracking with Cookies in PHP
This guide explores fundamental concepts of database normalization, emphasizing the significance of storing data efficiently and preventing duplication. It outlines the stages of normalization, including First, Second, and Third Normal Forms, to ensure data integrity. Additionally, it covers essential backup strategies for protecting database content and restoring data. Lastly, it delves into user tracking using cookies in PHP, detailing the creation and management of cookies, and common pitfalls to avoid. Enhance your database management and user experience with these essential techniques.
Database Normalization, Data Backups, and User Tracking with Cookies in PHP
E N D
Presentation Transcript
Misc Odds and Ends CSCI 297 Scripting Languages
Today • Database Normalization • Data Backups • Tracking the User with Cookies
Database Normalization • Goal= each piece of information exists only once in the database • creates storage efficiency • more efficient to update • duplicates can create inaccuracies • First Normal Form • no repeating columns with same data types • all columns contain single value • primary key uniquely identifies each row • Second Normal Form • rows do not duplicate information • Third Normal Form • data not dependent on the primary key is moved to another table
First Order two columns w/ same data type Normalization Example Second Order two rows with same info
Backing Up Data • Full Database Back Up • big pain • two possible options from the command line: • mysqldump --opt --all-database > all.sql • mysqlhotcopydatabase /path/for/backup • Full Database Restore • it's really long set of complicated steps • If concerned about data corruption • lock the table(s) • copy the records to a copy of the table(s) • unlock the table(s) • Transactions- updates can be temporary
Cookies- setting in PHP setcookie(name, value, expire, path, domain); • name • name of the cookie value • example: "usrname" • value • the value of the cookie • example = "Bob Smith" • expire • time of when the cookie expires • if empty, then the cookie expires when the browser closes • example : 24 hours from now = time()+24*60*60
Cookies- very simple example • Problem : • Script to either display the user name that is stored in a cookie or save the user name into a cookie • Possible Conditions while running the script: • a cookie was already set • isset ($_COOKIE[…]) • the cookie is being set with form data • isset ($_POST[…]) • the cookie has not been set • neither of the above is true
<?php // we have been here before and the cookie is set if (isset($_COOKIE["usrname"])) echo "Welcome " . $_COOKIE["usrname"] . "<P>"; // script is setting the cookie, expires in two minutes else if (isset($_POST['usrname'])) { setcookie ("usrname", $_POST['usrname'], time()+120); echo "Setting the cookie<P>"; } // first time visitor else { echo "Welcome first time visitor<P>"; echo "<form action='cooktest1.php' method='Post'>"; echo "User Name: <input type='text' name='usrname'><br>"; echo "<input type=submit value='Save Name'<P>"; echo "</form>"; } ?>
Cookies- common error • The setcookie() function must appear before the <html> tag. • This code is okay: else if (isset($_POST['usrname'])) { setcookie ("usrname", $_POST['usrname'], ... echo"The cookie is set.<P>"; } • This code generates an error: else if (isset($_POST['usrname'])) { echo "Setting the cookie...<P>"; setcookie ("usrname", $_POST['usrname'], ... }
Other PHP topics • Objects • Exception Handling • Authentication