Form data validation, regular expressions
Strings matching patterns in parentheses are stored in an array
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Regular expressions in PHP
Author: Elena Machkasova elenam@morris.umn.edu
Last modified: 4/13/06
-->
<?php
$test = $_GET["input"];
?>
<html>
<head>
<title>
Form data processing
</title>
</head>
<body>
<?php
// each expression in parentheses gets stored into a separate array
// element
$pattern = "^([a-z0-9]+)@([a-z._]+)$";
if (!eregi($pattern, $test, $chunks)) {
print "Invalid string<br/>\n";
}
else {
foreach ($chunks as $chunk) {
print "$chunk<br/>\n";
}
}
?>
</body>
</html>
http://rynite.morris.umn.edu/~elenam/1101_fall06/php_examples/regexp/ereg_parsing.php?input=elenam@morris.umn.edu
(change the input in the link to test).
Using a function parse_url to parse a url
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
parse_url function in PHP
Author: Elena Machkasova elenam@morris.umn.edu
Last modified: 4/13/06
-->
<?php
function display_url($url) {
$chunks = parse_url($url); // chopping up the url
print "<h3>Parsing url</h3>\n";
print "<ul>";
foreach ($chunks as $chunk_name => $chunk) {
print "<li> $chunk_name is $chunk</li>";
}
print "</ul>\n";
}
?>
<html>
<head>
<title>
parse_url function in PHP
</title>
</head>
<body>
<?php
$url1 = "http://cda.mrs.umn.edu/~elenam/1101_spring06/examples/regexp.html";
$url2 = "http://rynite.morris.umn.edu/~elenam/php_examples/ifelse/days_switch.php?input=16";
$url3 = "http://cda.mrs.umn.edu/~elenam/1101_spring06/resources.html#examples";
// displaying all three urls
display_url($url1);
display_url($url2);
display_url($url3);
?>
</body>
</html>
http://rynite.morris.umn.edu/~elenam/1101_fall06/php_examples/regexp/parse_url.php
Validating a form data and displaying errors so that the user can resubmit
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Displaying error messages for forms
Author: Elena Machkasova
Last Modifed: 4/13/2006
-->
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$submit = $_POST["submit"]; // check if the user got here through a form
function display_form($style1 = "", $style2 = "", $name_value="",
$email_value = "") {
print "<form name=\"theform\" method=\"POST\"
action=\"http://rynite.morris.umn.edu/~elenam/1101_fall06/php_examples/regexp/error_messages.php\">
<table border=\"0\">
<tr>
<td $style1>Enter your name:</td>
<td>
<input type = \"text\" name = \"name\" $name_value>
</td>
</tr>
<tr>
<td $style2>Enter your e-mail:</td>
<td>
<input type = \"text\" name = \"email\" $email_value>
</td>
</tr>
<tr>
<td>
<input type=\"submit\" name = \"submit\" value=\"submit\">
</td>
</tr>
</table>
</form><br/>";
}
?>
<html>
<head>
<title>
Displaying errors
</title>
</head>
<body>
<?php
$style1 = "";
$style2 = "";
$error_style = "style = \"color: red\"";
$message = "";
$name_value = "";
$email_value = "";
$errors = false;
if (!isset($submit)) {
display_form(); // display the form
}
else {
// start validation
if (!eregi("^[a-z ]+$", $name)) {
$style1 = $error_style;
$message = $message."The name is empty or has illegal characters<br/>";
$errors = true;
} else {
$name_value = "value = \"$name\"";
}
if (!eregi("^([a-z0-9]+)@([a-z._]+)$", $email)) {
$style2 = $error_style;
$message = $message."The e-mail is empty or has illegal characters<br/>";
$errors = true;
} else {
$email_value = "value = \"$email\"";
}
if (!$errors) {
print "Thank you, $name, for submitting your information!<br/>\n";
} else {
// priniting the form
display_form($style1, $style2, $name_value, $email_value);
// printing the error message
print "<p $error_style>$message You need to resubmit the form</p>";
}
}
?>
</body>
</html>
http://rynite.morris.umn.edu/~elenam/1101_fall06/php_examples/regexp/error_messages.php
UMM CSci 1101