I too am having trouble with validating my php3 form. I know i am using Javascipt to validate the form which doesn't work??? But would like to know how to do this in PHP3 any suggestions or help or tutorials would help?
Here is what I have:
<!DOCTYPE HTML PUBLIC "-//SoftQuad Software//DTD HoTMetaL PRO 6.0::19990601::extensions to HTML 4.0//EN" "hmpro6.dtd">
<HEAD>
<TITLE>Fiche Datbase Search Form</TITLE>
<SCRIPT LANGUAGE="JavaScript1.1">
<!-- hide from old browsers
function ShowLastup() { // write document last updated string
var update = new Date(document.lastModified)
var theMonth = update.getMonth() + 1
var theDate = update.getDate()
var theYear = update.getYear()
var theHour = update.getHours()
var theMinutes = update.getMinutes()
var minute = new String(theMinutes);
var hour = new String(theHour);
if (hour.length < 2) // add leading zero if needed
hour = "0" + hour;
if (minute.length < 2) // add leading zero if needed
minute = "0" + minute;
if (theYear >= 0 && theYear < 31)
theYear += 100; // After 1/1/2000 it goes to 4 digits
document.writeln("<FONT SIZE=-2>");
document.writeln("<I>Form last updated: " + theMonth + "/" + theDate +
"/" + (theYear+1900) + " " + hour + ":" + minute + "</I>")
document.writeln("</FONT>");
}
function preNsearch(inputForm) { // prepare for name search
var gotname = false;
// It turns out that during the preCsearch, we blank out
// name fields (just in case) which constitutes a "change",
// which triggers preNsearch, which then blanks name, so we
// will have to use gotname to detect that name clues exist.
for (var i = 0; i < inputForm.elements.length; i++) {
if (inputForm.elements.name == "PartyName" ||
inputForm.elements.name == "first_name" ||
inputForm.elements.name == "middle_name") {
if (inputForm.elements.value > "")
gotname = true;
}
}
if (gotname != true)
return(false);
for (i = 0; i < inputForm.elements.length; i++) {
if (inputForm.elements[i].name == "CaseNo" ||
inputForm.elements[i].name == "soc_sec_num")
inputForm.elements[i].value = "";
}
return(true);
}
function preCsearch(inputForm) { // prepare for case search
var gotCaseNo = false;
for (var i = 0; i < inputForm.elements.length; i++) {
if (inputForm.elements.name == "CaseNo") {
if (inputForm.elements.value > "")
gotCaseNo = true;
}
}
for (var i = 0; i < inputForm.elements.length; i++) {
if (inputForm.elements[i].name == "CaseNo") {
if (chkDCaseno(inputForm.elements[i]) == false) {
inputForm.elements[i].focus();
inputForm.elements[i].select();
}
}
else {
if (inputForm.elements[i].name != "search" &&
inputForm.elements[i].name != "cancel" &&
gotCaseNo == true) {
inputForm.elements[i].value = "";
}
}
}
inputForm.search.focus(); // put focus on search button
}
function isEmpty(inputStr) {
if (inputStr == null || inputStr == "") {
return true
}
return false
}
function chkNocase(thisFld, inputForm) // warn if case # has been entered
{
if (!isEmpty(thisFld) && !isEmpty(inputForm.CaseNo.value)) {
alert("WARNING: Name clues ignored when case number has been entered.");
}
}
function soc_sec_numSyntax(msg) { // show soc security num syntax message
alert(msg + ": SSN format is 123-45-6789");
return(false);
}
function caseSyntax(msg) { // show case number syntax message
alert(msg + "Case number format is [yy]yy-nnnn, i.e., 96-123");
return(false);
}
function chkDCaseno(tstFld) { // check format of District case number
var str = new String(tstFld.value);
var tokens = new Array(4); // for four possible parts of case number
tokens[0] = "";
tokens[1] = "";
tokens[2] = "";
tokens[3] = "";
var part = 0; // which part (token) we're reading
var c = ""; // character being tested
var inspace = false;
var indigits = false;
var n = 0;
while (str.charAt(n) == " ") // bypass any leading spaces
n++;
for (; n < str.length; n++) {
c = str.charAt(n);
if (c == "-") { // handle dash right away
part++;
indigits = false;
continue;
}
if (inspace && isbreak(c)) // ignore multiple spaces
continue;
if (parseInt(c) > 0) {
if (indigits == false && n > 0 && tokens[part].length > 0)
part++;
indigits = true;
} else {
if (indigits == true && tokens[part].length > 0)
part++;
indigits = false;
}
if (!inspace && isbreak(c) && tokens[part].length > 0) {
inspace = true;
part++;
} else if (!isbreak(c)) {
inspace = false;
tokens[part] += c;
}
}
for (n = 0; n < tokens.length; n++) {
if (tokens[n].length == 0) { // an empty part
tokens.length = n; // truncate the array
break;
}
}
if (tokens.length == 2) // presume year and seqnum only given
tstFld.value = fixYear(tokens[0]) + "-" + zeroPad(tokens[1], 5);
else if (tokens.length == 4)
tstFld.value = tokens[0] + ":" + fixYear(tokens[1]) + tokens[2] +
zeroPad(tokens[3], 5);
else if (tokens.length == 3) // presume year type seqnum
tstFld.value = fixYear(tokens[0]) + tokens[1] + zeroPad(tokens[2], 5);
else
tstFld.value = "parts " + tokens.length;
return(true);
}
function zeroPad(s, n) { // pad string s to length n with leading zeros
var sno = "";
for (var i = (n - s.length); i > 0; i--) { // add leading zeros to seq
sno += "0";
}
sno += s;
return(sno);
}
function isbreak(c) { // true if character is a break character
if (c == " " || c == ":" || c == "-")
return true;
return false;
}
function chkCaseno(tstFld) { // check format of case number
tstValue = tstFld.value;
if (tstValue.length == 0)
return(true);
inputStr = "" + tstValue; // why is this here?
var postdash = false;
var yrlen = 0; // track the length of the year component
var seqlen = 0; // track the length of the sequence number
var yr = "";
var no = "";
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i);
if ((i == 2 || i == 4) && oneChar == "-") {
postdash = true;
continue;
}
if (oneChar < "0" || oneChar > "9") {
caseSyntax("oneChar < 0 or > 9 at " + i + " (" + oneChar +
"/" + inputStr + ")");
// This doesn't move cursor back properly in 2.0 Netscape on W3.11:
return false;
}
else {
if (postdash) {
seqlen++;
no += oneChar;
} else {
yrlen++;
yr += oneChar;
}
}
}
if (yrlen != 2 && yrlen != 4) {
caseSyntax("yrlen != 2 or 4");
return(false);
}
else if (seqlen < 1 || seqlen > 5) {
caseSyntax("seqlen < 1 or > 5");
return(false);
}
var sno = ""; // string version of case sequence number
for (var i = (5 - no.length); i > 0; i--) { // add leading zeros to seq
sno += "0";
}
sno += no;
yr = fixYear(yr);
tstFld.value = yr + "-" + sno;
return true;
}
function fixYear(yr) { // correct a given 2 digit year to make full 4
// Multiply by one to make it numeric:
if (yr <= 30)
yr = (yr1) + 2000;
else if (yr < 200)
yr = (yr1) + 1900;
return(yr);
}
function prompt(msg) {
window.status = msg
}
function caseNofocus() { // put focus in case number field
document.forms[0].CaseNo.focus();
return(true);
}
function getCookie(Name) {
var search = Name + "="
var RetStr = ""
var offset = 0
var end = 0
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if (end == -1)
end = document.cookie.length
RetStr = unescape(document.cookie.substring(offset, end))
}
}
return (RetStr)
}
var uidcookie = getCookie("uid");
var uid = uidcookie.substring(0,4);
if (uidcookie.length < 5) { // minimum is 4 of ID + 1 of passwd
// window.location.pathname = "/dc/chlogin.html";
}
// end script hiding -->
</SCRIPT>
</HEAD>
<BODY OnLoad="caseNofocus()">
<BLOCKQUOTE>
<FORM action="fischeresult.php3" onsubmit="preCsearch" method="Get">
<P ALIGN="CENTER"><IMG SRC="FicheDatabase.jpg" WIDTH="735"
HEIGHT="159" BORDER="0"></P>
<P ALIGN="CENTER"><IMG SRC="Case.jpg" WIDTH="140" HEIGHT="74"
BORDER="0"></p>
<CENTER><INPUT TYPE="TEXT" size=17 maxlength=17 NAME="CaseNo" STYLE="height: 1cm"
onChange="preCsearch(query)"
onFocus="prompt('Case number is 96-123 or 1996-123 format')"></CENTER>
<P ALIGN="CENTER"><IMG SRC="Judge.jpg" WIDTH="164" HEIGHT="74"
BORDER="0"></P>
<select name="Initials" width=250>
<option selected value="">
<center>
<?php
mysql_connect(hostname, user, password);
$database="fichedb";
@mysql_select_db("$database") or die("unable to select database");
$query="Select initials from judge";
$result=mysql_query($query);
while(list($initials)=mysql_fetch_row($result)) {
print "<option value='$initials'><center>$initials</option>\n";
}
mysql_close();
?>
</select>
<P ALIGN="CENTER"><IMG SRC="Party.jpg" WIDTH="154" HEIGHT="74"
BORDER="0"></P>
<CENTER><INPUT TYPE="TEXT" NAME="PartyName" SIZE="30" MAXLENGTH="55"
STYLE="height: 1cm"
onFocus="prompt('Last or business name; capitalization counts')"
onChange=preNsearch(query)></CENTER>
<P ALIGN="LEFT"></P>
<CENTER> <INPUT TYPE="submit"></center> </p>
<P ALIGN="LEFT"><B></B></P> </FORM></BLOCKQUOTE>
</BODY>