|
home—lects—exams—hws
D2L—breeze (snow day)
We've been talking about input forms (html elements), and then php scripts to process a submitted form:
<!-- inside form.php (or, form.html) --> <form submit='submit.php' action="post"> Login: <input type='text' name='userid' /> <br /> Remember me?: <input type='checkbox' name='remember' value='yep' /> … </form> |
<!-- inside submit.php --> <?php echo "Hey there ", $_POST['userid']; if (array_has_index('remember',$_POST)) { echo "How could I ever forget?"; // $_POST['remember'] = 'yep' } ?> |
When creating a page which includes something typed in by the user (from a previous text-input), we must be careful! What could the user have typed, that would goof up our web page?
(To be discussed in a future lecture, not today:)
Note that to prevent errors, some php servers used to
enable “magic quotes”:
When setting up the
A poor solution is to always call
/** Return the input from a user form. * @Return the input from a user form, */ function getInput($name) { $formInput = |
Quick q: suppose a user types:
hi <3in a textarea whose name is
We have seen arrays,
and mentioned that if they have all-numeric indices (keys) then
we can process them with a
Then we saw that if an array has keys which aren't all numeric,
we can use a
$myData = array( 'hi' => 'hallo', 'good day' => 'guten Tag', 'see you later' => 'auf wiedersehen' ); foreach ($mydata as $german) { echo $german, "\n"; } foreach ($mydata as $english => $german) { echo "You say '$english', I say '$german'.\n"; } |
Exercise: Let's write a function which takes in an array of strings, and returns one long html-string mentioning each small string on its own HTML line: something like:
test( htmlLines( array( "one fish", "two fish", "green fish", "blue fish" ) ), "one fish<br />two fish<br />green fish<br />blue fish<br />" );
What if we want a web page which lists every file in a directory,
each filename on its own html line?
Easy, with the above as a helper,
plus1
(See lect04c-soln.html)
Exercise: Write a function that takes in an array of key/values pairs, and returning a string that happens to be html for a pull-down menu of those values, where the key is is the desired value for the HTML form.
Optional: extend the above by including an optional parameter: a top-option like “please select:”.
Left as an exercise: Similar to above, make a function that takes in an array, and returns (the html for) a bunch of checkboxes, inside table.
Before calling
; Either: ini_set('date.timezone','America/New_York'); date_default_timezone_set('America/New_York'); echo strtotime('2012-Feb-08 11:03:27'); // don't use '2012.Feb.08 ...'; it returns null. echo date('Y-M-d H:m:s',234234234); |
1Usually, a google search like “php list files” gives good matches; in this particular case we get sidetracked by related functions that deal with file-handles and are iterators. ↩
home—lects—exams—hws
D2L—breeze (snow day)
©2012, Ian Barland, Radford University Last modified 2012.Sep.24 (Mon) |
Please mail any suggestions (incl. typos, broken links) to ibarlandradford.edu |