Learning PHP and MySQL
Chapter 15 Code
Monday, September 25, 2006
Example 15-1 Building a form that validates its fields before submission
<SCRIPT LANGUAGE="JavaScript1.2" SRC="source.js">
</SCRIPT>
<HTML>
<HEAD>
<TITLE>Sample Form</TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript1.2">
function check_valid(form) {
var error = "";
error += verify_username(form.username.value);
error += verify_password(form.password.value);
error += verify_phone(form.phone.value);
error += verify_email(form.email.value);
if (error != "") {
alert(error);
return false;
}
return true;
}
</SCRIPT>
<BODY BGCOLOR="#FFFFFF">
<FORM action="process.php" METHOD="post"
onSubmit="return check_valid(this)" id="test1" name="test1">
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD WIDTH="30%" ALIGN="right">Username</TD>
<TD WIDTH="70%">: <INPUT TYPE="text" NAME="username"></TD>
</TR>
<TR>
<TD ALIGN="right">Password</TD>
<TD>: <INPUT TYPE="password" NAME="password"></TD>
</TR>
<TR>
<TD ALIGN="right">Phone</TD>
<TD>: <INPUT TYPE="phone" NAME="phone"></TD>
</TR>
<TR>
<TD ALIGN="right">Email</TD>
<TD>: <INPUT TYPE="email" NAME="email"></TD>
</TR>
<TR>
<TD> </TD>
<TD><INPUT TYPE="SUBMIT" VALUE="Submit"></TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
Posted by krautgrrl on 09/25 at 04:05 PM
Chapter 15 Code • (0) Comments • (0) Trackbacks • Permalink
Chapter 15 Code • (0) Comments • (0) Trackbacks • Permalink
Tuesday, September 26, 2006
Example 15-2 The file source.js contains functions to check the various fields
// verify username - 6-10 chars, uc, lc, and underscore only.
function verify_username (strng) {
var error = "";
if (strng == "") {
error = "You didn't enter a username.\n";
}
var illegalChars = /\W/; // allow letters, numbers, and underscores
if ((strng.length < 6) || (strng.length > 10)) {
error = "The username is the wrong length. It must be 6-10 characters.\n";
}
else if (illegalChars.test(strng)) {
error = "The username contains illegal characters.\n";
}
return error;
}
// verify password - between 6-8 chars, uppercase, lowercase, and numeral
function verify_password (strng) {
var error = "";
if (strng == "") {
error = "You didn't enter a password.\n";
}
var illegalChars = /[\W_]/; // allow only letters and numbers
if ((strng.length < 6) || (strng.length > 8)) {
error = "The password is the wrong length. It must be 6-8 characters.\n";
}
else if (illegalChars.test(strng)) {
error = "The password contains illegal characters.\n";
}
else if (!((strng.search(/(a-z)+/)) && (strng.search(/(A-Z)+/)) &&
(strng.search(/(0-9)+/)))) {
error = "The password must contain at least one uppercase letter, one
lowercase letter, and one numeral.\n";
}
return error;
}
// verify email
function verify_email (strng) {
var error="";
if (strng == "") {
error = "You didn't enter an email address.\n";
}
var emailFilter=/^.+@.+\..{2,3}$/;
if (!(emailFilter.test(strng))) {
error = "Please enter a valid email address.\n";
}
else {
//test email for illegal characters
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
if (strng.match(illegalChars)) {
error = "The email address contains illegal characters.\n";
}
}
return error;
}
// verify phone number - strip out delimiters and verify for 10 digits
function verify_phone (strng) {
var error = "";
if (strng == "") {
error = "You didn't enter a phone number.\n";
}
//strip out acceptable non-numeric characters
var stripped = strng.replace(/[\(\)\.\-\ ]/g, '');
if (isNaN(parseInt(stripped))) {
error = "The phone number contains illegal characters.";
}
if (!(stripped.length == 10)) {
error = "The phone number is the wrong length. Make sure you included an area
code.\n";
}
return error;
}
Posted by krautgrrl on 09/26 at 02:58 PM
Chapter 15 Code • (0) Comments • (91) Trackbacks • Permalink
Chapter 15 Code • (0) Comments • (91) Trackbacks • Permalink
Wednesday, September 27, 2006
Example 15-3 Using preg_match to return an array of matches that start with ple
<?php
$subject = "example";
$pattern = '/^ple/';
preg_match($pattern, $subject, $matches);
print_r($matches);
?>
This code displays:
Array ( )
Posted by krautgrrl on 09/27 at 11:10 AM
Chapter 15 Code • (0) Comments • (0) Trackbacks • Permalink
Chapter 15 Code • (0) Comments • (0) Trackbacks • Permalink
Example 15-4 Displaying an error from PHP and redisplaying the form with submitted values
<html>
<head>
<title>Sample Form</title>
<script type="text/javascript" src="source.js"></script>
<script type="text/javascript">
function check_valid(form) {
var error = "";
error += verify_username(form.username.value);
error += verify_password(form.password.value);
error += verify_phone(form.phone.value);
error += verify_email(form.email.value);
if (error != "") {
alert(error);
return false;
}
return true;
}
</script>
</head>
<body>
<?php
// Check for form post submit
if ($_POST["submit"]){
require_once('db_login.php');
require_once('DB.php');
$connection = DB::connect("mysql://$db_username:$db_password@$db_host/$db_database");
if (DB::isError($connection)){
die ("Could not connect to the database: <br />". DB::errorMessage($connection));
}
// Remember to use htmlentities to prevent cross-site scripting vulerablities
$username = htmlentities($_POST["username"]);
$password = htmlentities($_POST["password"]);
$email = htmlentities($_POST["email"]);
$phone = htmlentities($_POST["phone"]);
$error = "";
if ($username == ""){
$error .= "Username must not be null.<br />";
}
if ($password == ""){
$error .= "Password must not be null.<br />";
}
if ($email == ""){
$error .= "Email must not be null.<br />";
}
if ($phone == ""){
$error .= "Phone must not be null.<br />";
}
// Query the posts with catagories and user information
$query = "SELECT * FROM `users` WHERE `username`='$username'";
// Execute the database query
$result = $connection->query($query);
if (DB::isError($result)){
die("Could not query the database: <br />".$query." ".DB::errorMessage($result));
}
$user_count = $result->numRows();
if ($user_count > 0) {
$error .= "Error: Username $username is taken already. Please select another.<br />";
}
if ($error){
echo $error;
}
else {
echo "User created successfully.";
exit;
}
}
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST"
onsubmit="return check_valid(this);" id="test1" name="test1">
<table>
<tr>
<td width="30%" align="right">Username:</td>
<td><input type="text" name="username" value="<?php echo
htmlspecialchars(stripslashes($username)); ?>" /></td>
</tr>
<tr>
<td align="right">Password:</td>
<td><input type="password" name="password" value="<?php echo
htmlspecialchars(stripslashes($password)); ?>" /></td>
</tr>
<tr>
<td align="right">Phone:</td>
<td><input type="phone" name="phone" value="<?php echo
htmlspecialchars(stripslashes($phone)); ?>" /></td>
</tr>
<tr>
<td align="right">Email:</td>
<td><input type="email" name="email" value="<?php echo
htmlspecialchars(stripslashes($email)); ?>" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Submit" /></td>
</tr>
</table>
</form>
</body>
</html>
Posted by krautgrrl on 09/27 at 11:13 AM
Chapter 15 Code • (0) Comments • (0) Trackbacks • Permalink
Chapter 15 Code • (0) Comments • (0) Trackbacks • Permalink
Statistics
This page has been viewed 375166 times
Page rendered in 0.1624 seconds
Total Entries: 224
Total Comments: 16
Total Trackbacks: 307338
Most Recent Entry: 09/27/2006 12:39 pm
Most Recent Comment on: 10/26/2007 10:00 am
Total Members: 2
Total Logged in members: 0
Total guests: 7
Total anonymous users: 0
Most Recent Visitor on: 02/10/2012 09:08 am
The most visitors ever was 1103 on 11/20/2007 12:50 pm
