last time php
play

Last Time: PHP Arrays IT420: Database Management and Numerically - PDF document

Last Time: PHP Arrays IT420: Database Management and Numerically indexed Organization Associative Sort Files Functions to work with files PHP and MySQL File locking Functions (Chapter 11 PHP and MySQL


  1. Last Time: PHP � Arrays IT420: Database Management and � Numerically indexed Organization � Associative � Sort � Files � Functions to work with files PHP and MySQL � File locking � Functions (Chapter 11 – PHP and MySQL � Optional/variable number of parameters Web Development) � Variable scope Web Database Architecture Why Use DBMS? HTTP API Database Web server with Client browser Management PHP enabled System Goals Today MySQL � Connect from PHP to MySQL � Relational Database Management System � Free � Open source � Portable � High performance � Support available 1

  2. Example Application Use a database from web …(standard header stuff) � Check and filter data coming from user <html> <head> � Connect to the database to use <title> Music search page </title> </head> <body> � Send queries and retrieve results <h1> Search for songs </h1> <form action = "process_search.php" � Process results method = "post"> <p>Enter search keyword: <input name = "searchterm" type = "text"> � Close connection <br/> <input type = "submit" value = "Search"> </p> </form> � All PHP functions return ‘ false ‘ if operation </body> </html> unsuccessful! Database: dbmusic Table: songs(ISBN, Title, SingerID, Length) process_search.php process_search.php //connect $db = new mysqli('localhost','dbmusicwebuser','user123','dbmusic'); if (mysqli_connect_errno()){ echo "<p>Error: Could not connect to database.</p>"; <?php include('footer.inc.php'); $pageTitle = "Music Search Results"; exit; include('header.inc.php'); } ?> <h1>Search results</h1> //construct query $query = "select * from songs where Title like '%$searchterm%'"; <?php $searchterm = $_POST['searchterm']; //query $results = $db->query($query); //check input $searchterm = trim($searchterm); //process results if (!$searchterm){ if ($results){ echo '<p>No search term entered. Go back and try again</p>'; $numRows = $results->num_rows; include('footer.inc.php'); echo "<p>Number of songs found: $numRows</p>"; exit; for ($i = 0; $i < $numRows; $i++){ } $row = $results->fetch_assoc(); if (!get_magic_quotes_gpc()){ echo '<p>Title: '.stripslashes($row['Title']).'</p>'; $searchterm = addslashes($searchterm); } } //free result $results->free(); } //close connection $db->close(); include('footer.inc.php');?> Sample Run Check Modification Results $results = $db->query($someQuery) � $db->affected_rows � $results === TRUE 2

  3. String Manipulation Functions SQL Injection Attacks! � string strip_tags(string stringVar [, string � SQL injection attack occurs when data allowableTags] ) from the user is used to modify a SQL statement � Example: users are asked to enter their � Example: alpha into a Web form textbox � $inputStr = ‘<script> alert(“hi”); </script>’; � User input: 081234 OR TRUE � Should not store this in the db! � echo strip_tags($inputStr); //result: alert(“hi”); SELECT * FROM STUDENT_GRADES WHERE Alpha = 081234 OR TRUE; � Result? (extra space) Class Exercise - dbmusic � songs(ISBN:varchar(25), Title:varchar(120), SingerID:int, Length:int) � Write PHP code to insert new songs in the database, based on user input from a form (POST method): � ISBN � Title � SingerID � Length PHP – DB Summary � Check and filter data coming from user � Connect to the database to use � Send queries and retrieve results � Process results � Free results � Close database connection Always check and handle errors! 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend