CICS 515 b Internet Programming Week 2 Mike Feeley
1
CICS 515 b Internet Programming Week 2 Mike Feeley 1 Software - - PowerPoint PPT Presentation
CICS 515 b Internet Programming Week 2 Mike Feeley 1 Software infrastructure stuff MySQL and PHP store files in public_html run on remote.mss.icics.ubc.ca access as http://ws.mss.icics.ubc.ca/~username/... see wiki for
1
patched.js&use_mirror=umn
2
3
4
5
~% /usr/local/mysql/bin/mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 420 Server version: 5.0.41 MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use feeley_database; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql>
6
mysql> show tables; +---------------------------+ | Tables_in_feeley_database | +---------------------------+ | student | +---------------------------+ 1 row in set (0.00 sec) mysql> mysql> describe student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | sid | int(11) | NO | PRI | | | | name | varchar(32) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.36 sec) mysql>
7
mysql> drop table student; Query OK, 0 rows affected (0.19 sec) mysql> show tables; Empty set (0.00 sec) mysql> CREATE TABLE student (
Query OK, 0 rows affected (0.02 sec) mysql> DESCRIBE student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | sid | int(11) | NO | PRI | | | | name | varchar(30) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.02 sec)
8
<html> <body> <?php echo "Hello."; ?> </body> </html> foo.php:
9
<html> <body> <?php $sid[0] = 10; $name[0] = "First Student"; $sid[1] = 20; $name[1] = "Second Student"; echo "<table border=2>"; echo "<tr><td>".$sid[0]."</td><td>".$name[0]."</td></tr>"; echo "<tr><td>".$sid[1]."</td><td>".$name[1]."</td></tr>"; echo "</table>"; ?> </body> </html>
10
<html> <body> <?php $sid[0] = 10; $name[0] = "First Student"; $sid[1] = 20; $name[1] = "Second Student"; echo "<table border=2>"; for ($i=0; $i<2; $i++) { echo "<tr><td>".$sid[$i]."</td><td>".$name[$i]."</td></tr>"; } echo "</table>"; ?> </body> </html>
11
<?php $dbhost = ':/.autofs/homes/ubccshome/f/feeley/cics515/mysql/var/mysql.sock'; $dbuser = 'feeley'; $dbpass = 'feeley'; $dbname = 'feeley_database'; ?> <?php $conn = mysql_connect($dbhost, $dbuser, $dbpass)
mysql_select_db($dbname); ?>
12
<?php $dbhost = ':/.autofs/homes/ubccshome/f/feeley/cics515/mysql/var/mysql.sock'; ... [mysqld] port = 8743 socket = /.autofs/homes/ubccshome/f/feeley/cics515/mysql/var/mysql.sock datadir = /.autofs/homes/ubccshome/f/feeley/cics515/mysql/var
13
<html> <body> <?php include 'dbconfig.php'; include 'opendb.php'; $rows = mysql_query ("SELECT * FROM student ORDER BY sid"); echo "<table border=2>\n"; echo "<tr><td><b>SID</b></td><td><b>Name</b></td></tr>\n"; while ($row = mysql_fetch_assoc ($rows)) echo "<tr><td>".$row['sid']."</td><td>".$row['name']."</td></tr>\n"; echo "</table>\n"; mysql_close (); ?> </body> </html>
listStudents.php:
14
<html> <body> <?php include 'dbconfig.php'; include 'opendb.php'; $rows = mysql_query ("SELECT * FROM student ORDER BY sid"); echo "<table border=2>\n"; echo "<tr><td><b>SID</b></td><td><b>Name</b></td></tr>\n"; while ($row = mysql_fetch_assoc ($rows)) echo "<tr><td>".$row['sid']."</td><td>".$row['name']."</td></tr>\n"; echo "</table>\n"; mysql_close (); ?> </body> </html>
web server
Apache
<html> <body> <table border=2> <tr><td><b>SID</b></td><td><b>Name</b></td></tr> <tr><td>10</td><td>First Student</td></tr> <tr><td>20</td><td>Second Student</td></tr> </table> </body> </html>
web browser
IE, Safari, Firefox, etc.
mysql> select * from student order by sid; +-----+----------------+---------+ | sid | name | country | +-----+----------------+---------+ | 10 | First Student | NULL | | 20 | Second Student | NULL | +-----+----------------+---------+ 2 rows in set (0.04 sec)
database
MySql
15
<form method=“?” action=“?”>
16
<html> <body> <form method="post" action="simplePost.php"> <input name="p1" type="text" size="20"> <input name="p2" type="number"> <input name="Submit" value="POST" type="submit"> </form> <form method="get" action="simpleGet.php"> <input name="p1" type="text" size="20"> <input name="p2" type="number"> <input name="submit" value="GET" type="submit"> </form> </body> </html> <html> <body> <?php $p1 = $_GET['p1']; $p2 = $_GET['p2']; echo "<table>\n"; echo "<tr><td>p1</td><td>$p1</td></tr>"; echo "<tr><td>p2</td><td>$p2</td></tr>"; echo "</table>"; ?> </body> </html> <html> <body> <?php $p1 = $_POST['p1']; $p2 = $_POST['p2']; echo "<table>\n"; echo "<tr><td>p1</td><td>$p1</td></tr>"; echo "<tr><td>p2</td><td>$p2</td></tr>"; echo "</table>"; ?> </body> </html>
simpleForm.html: simpleGet.php: simplePost.php:
17
18
<html> <body> <?php echo "<form method='post' action=${_SERVER['PHP_SELF']}>"; echo " <input name='action' type='hidden' value='submitted'>"; echo " <input name='p1' type='text' size='20'>"; echo " <input name='p2' type='number'>"; echo " <input name='Submit' value='POST' type='submit'>"; echo "</form>"; if (isset($_POST['action']) && $_POST['action']=='submitted') { $p1 = $_POST['p1']; $p2 = $_POST['p2']; echo "<table>\n"; echo "<tr><td>p1</td><td>$p1</td></tr>"; echo "<tr><td>p2</td><td>$p2</td></tr>"; echo "</table>"; } ?> </body> </html>
19
20
if (isset($_POST['action']) && $_POST['action']=='submitted') { $sid = $_POST['sid']; $name = $_POST['name']; if (isset($_POST['insert'])) mysql_query ("INSERT INTO student(sid,name) VALUES($sid,'$name')"); } $rows = mysql_query ("SELECT * FROM student ORDER BY sid"); echo "<table border=2>\n"; echo "<tr><td><b>SID</b></td><td><b>Name</b></td></tr>\n"; while ($row = mysql_fetch_assoc ($rows)) echo "<tr><td>".$row['sid']."</td><td>".$row['name']."</td></tr>\n"; echo "</table>\n"; echo "<form method='post' action=${_SERVER['PHP_SELF']}>"; echo "<table border=1>"; echo "<tr><td> <td align=center>sid<td align=center>name"; echo "<input type='hidden' name='action' value='submitted'>"; echo "<tr><td><input type='submit' name='insert' value='Insert'>"; echo "<td><input name='sid' type='text' size='10'>"; echo "<td><input name='name' type='text' size='30'>"; echo "</table>"; echo "</form>";
21
22
<html> <body> <?php include 'dbconfig.php'; include 'opendb.php'; if (isset($_POST['action']) && $_POST['action']=='submitted') { $selected = $_POST['selected']; $sid = $_POST['sid']; $name = $_POST['name']; $iSid = $_POST['iSid']; $iName = $_POST['iName']; if (isset($_POST['update'])) { foreach ($selected as $i) mysql_query ("UPDATE student set name='".$name[$i]."' WHERE sid=".$sid[$i]); } else if (isset($_POST['insert'])) { mysql_query ("INSERT INTO student(sid,name) VALUES ($iSid,'$iName')"); } else if (isset($_POST['delete'])) { foreach ($selected as $i) mysql_query ("DELETE FROM student WHERE sid=".$sid[$i]); } } echo "<form method='post' action=${_SERVER['PHP_SELF']}>\n"; echo "<table border=1>\n"; echo "<tr><td> </td><td><b>SID</b></td>"; echo "<td><b>Name</b></td></tr>\n"; $rows = mysql_query ("SELECT sid, name FROM student ORDER BY sid"); for ($i=0; $i<mysql_numrows($rows); $i++) { $sid = mysql_result ($rows, $i, 'sid'); $name = mysql_result ($rows, $i, 'name'); echo "<tr>\n"; echo "<td><input name='selected[]' type='checkbox' value='$i'>\n"; echo "<td>$sid<input type='hidden' name='sid[]' value='$sid'>\n"; echo "<td><input name='name[]' type='text' size='30' value='$name'>\n"; echo "</tr>\n"; } echo "<input type='hidden' name='action' value='submitted'>\n"; echo "<tr><td><input type='submit' name='insert' value='Insert'>\n"; echo "<td><input name='iSid' type='text' size='10'>\n"; echo "<td><input name='iName' type='text' size='30'>\n"; echo "</table>\n"; echo "<input type='submit' name='update' value='Update'>\n"; echo "<input type='submit' name='delete' value='Delete'>\n"; echo "</form>\n"; mysql_close (); ?> </body> </html>
23
<html> <body> <form method='post' action=/~feeley/515-0/enterstudents.php> <table border=1> <tr><td> </td><td><b>SID</b></td><td><b>Name</b></td></tr> <tr> <td><input name='selected[]' type='checkbox' value='0'> <td>10<input type='hidden' name='sid[]' value='10'> <td><input name='name[]' type='text' size='30' value='First Student'> </tr> <tr> <td><input name='selected[]' type='checkbox' value='1'> <td>20<input type='hidden' name='sid[]' value='20'> <td><input name='name[]' type='text' size='30' value='Second Student'> </tr> <input type='hidden' name='action' value='submitted'> <tr><td><input type='submit' name='insert' value='Insert'> <td><input name='iSid' type='text' size='10'> <td><input name='iName' type='text' size='30'> </table> <input type='submit' name='update' value='Update'> <input type='submit' name='delete' value='Delete'> </form> </body> </html>
24
echo "<form method='post' action=${_SERVER['PHP_SELF']}>\n"; echo "<table border=1>\n"; echo "<tr><td> </td><td><b>SID</b></td>"; echo "<td><b>Name</b></td></tr>\n"; $rows = mysql_query ("SELECT sid, name FROM student ORDER BY sid"); for ($i=0; $i<mysql_numrows($rows); $i++) { $sid = mysql_result ($rows, $i, 'sid'); $name = mysql_result ($rows, $i, 'name'); echo "<tr>\n"; echo "<td><input name='selected[]' type='checkbox' value='$i'>\n"; echo "<td>$sid<input type='hidden' name='sid[]' value='$sid'>\n"; echo "<td><input name='name[]' type='text' size='30' value='$name'>\n"; echo "</tr>\n"; } echo "<input type='hidden' name='action' value='submitted'>\n"; echo "<tr><td><input type='submit' name='insert' value='Insert'>\n"; echo "<td><input name='iSid' type='text' size='10'>\n"; echo "<td><input name='iName' type='text' size='30'>\n"; echo "</table>\n"; echo "<input type='submit' name='update' value='Update'>\n"; echo "<input type='submit' name='delete' value='Delete'>\n"; echo "</form>\n";
25
if (isset($_POST['action']) && $_POST['action']=='submitted') { $selected = $_POST['selected']; $sid = $_POST['sid']; $name = $_POST['name']; $iSid = $_POST['iSid']; $iName = $_POST['iName']; if (isset($_POST['update'])) { foreach ($selected as $i) mysql_query ("UPDATE student SET name='".$name[$i]."' WHERE sid=".$sid[$i]); } else if (isset($_POST['insert'])) { mysql_query ("INSERT INTO student(sid,name) VALUES ($iSid,'$iName')"); } else if (isset($_POST['delete'])) { foreach ($selected as $i) mysql_query ("DELETE FROM student WHERE sid=".$sid[$i]); } }
26
http://localhost/~feeley/515-0/ enterstudents.php? sid[]=10& name[]=First+Student& sid[]=20& name[]=Second+Student& selected[]=0& action=submitted& iSid=& iName=& update=Update
27
function max ($arg0, $arg1) { if ($arg0>$arg1) return $arg0; else return $arg1; }
<?php function getStudents () { return mysql_query ("SELECT sid, name FROM student ORDER BY sid"); } function insertStudent ($sid, $name) { mysql_query ("INSERT INTO student(sid,name) VALUES ($sid,'$name')"); } function updateStudent ($sid, $name) { mysql_query ("UPDATE student SET name='$name' WHERE sid=$sid"); } function deleteStudent ($sid) { mysql_query ("DELETE FROM student WHERE sid='$sid'"); } ?>
studentLib.php:
28
... if (isset($_POST['update'])) { foreach ($selected as $i) updateStudent ($sid[$i], $name[$i]); } else if (isset($_POST['insert'])) { insertStudent ($iSid, $iName); } else if (isset($_POST['delete'])) { foreach ($selected as $i) deleteStudent ($sid[$i]); } } echo "<form method='post' action=${_SERVER['PHP_SELF']}>\n"; echo "<table border=1>\n"; echo "<tr><td> </td><td><b>SID</b></td>"; echo "<td><b>Name</b></td></tr>\n"; $rows = getStudents (); ...
29
$foo = "blah"; function a() { $foo = "blah blah"; echo $foo; } a(); echo $foo; $foo = "blah"; function a() { global $foo; $foo = "blah blah"; echo $foo; } a(); echo $foo;
30
foo ($a, $b) { echo $a.$b; } foo ($x, $y); fooref (&$a, &$b) { echo $a.$b; } foo (&$x, &$y); fooref ($x, $y);
31
function updateStudent ($sid, $name) { $result = mysql_query ("UPDATE studentx SET name='$name' WHERE sid=$sid"); if (!$result) die ("updateStudent failed with db error: ".mysql_error()); } function updateStudent ($sid, $name) { mysql_query ("UPDATE studentx SET name='$name' WHERE sid=$sid") or die ("updateStudent failed with db error: ".mysql_error()); }
32
class StudentDBException extends Exception {} function updateStudent ($sid, $name) { $result = mysql_query ("UPDATE student SET name='$name' WHERE sid=$sid"); if (!$result) throw new StudentDBException (mysql_error()); } try { if (isset($_POST['action']) && $_POST['action']=='submitted') { $selected = $_POST['selected']; $sid = $_POST['sid']; $name = $_POST['name']; $iSid = $_POST['iSid']; $iName = $_POST['iName']; if (isset($_POST['update'])) { foreach ($selected as $i) updateStudent ($sid[$i], $name[$i]); ... echo "</form>\n"; } catch (StudentDBException $e) { die ("Student database error: ".$e->getMessage()); } mysql_close ();
studentLib.php: enterStudents.php:
33
34
<body> <script type="text/javascript"> document.write ("Hello from embedded JavaScript."); </script> </body> <head> <script language="JavaScript" src="blah.js"></script> </head> document.write ("Hello from separate file JavaScript.<br>");
blah.html: blah.html: blah.js:
35
<script type="text/javacript"> function checkBox (row) { document.getElementById('checkbox'+row).checked = true; } </script> ... for ($i=0; $i<mysql_numrows($rows); $i++) { $sid = mysql_result ($rows, $i, 'sid'); $name = mysql_result ($rows, $i, 'name'); echo "<tr>\n"; echo "<td><input id='checkbox$i' "; echo "name='selected[]' type='checkbox' value='$i'>\n"; echo "<td>$sid<input type='hidden' name='sid[]' value='$sid'>\n"; echo "<td><input name='name[]' type='text' size='30' value='$name'"; echo "onchange='checkBox($i)'>\n"; echo "</tr>\n"; }
36
<script type="text/javascript"> function checkBox (row) { var box = document.getElementById('checkbox'+row); var name = document.getElementById('name'+row); name.disabled = !box.checked; } </script> ... echo "<td><input id='checkbox$i' "; echo "name='selected[]' type='checkbox' value='$i'"; echo " onchange='checkBox($i)'>\n"; echo "<td>$sid<input type='hidden' name='sid[]' value='$sid'>\n"; echo "<td><input id='name$i' name='name[]' type='text' size='30'"; echo " value='$name' disabled='true'>\n";
37
38
39