IsLoggedIn()) { header("Location: members.php"); exit(0); } $strTemplateFile = "templates/login.phtml"; $displayHash = Array(); $objRequest = new request(); $blHadProblems = ($objRequest->IsRedirectFollowingConstraintFailure()); $postVars = ''; $displayHash["HADPROBLEMS"] = $blHadProblems; if ($blHadProblems) { // preserve POST variables if there were problems $postVars = $objRequest->GetOriginalRequestObjectFollowingConstraintFailure()->GetPostVariables(); $objFailingRequest = $objRequest->GetOriginalRequestObjectFollowingConstraintFailure(); $arConstraintFailures = $objFailingRequest->GetConstraintFailures(); $displayHash["PROBLEMS"] = Array(); for ($i=0; $i<=sizeof($arConstraintFailures)-1; $i++) { $objThisConstraintFailure = &$arConstraintFailures[$i]; $objThisFailingConstraintObject = $objThisConstraintFailure->GetFailedConstraintObject(); $intTypeOfFailure = $objThisFailingConstraintObject->GetConstraintType(); // get the failed parameter in order to customize the error message $failedParam = $objThisConstraintFailure->getParameterName(); switch ($intTypeOfFailure) { case CT_MINLENGTH: switch($failedParam) { case 'loginusername'; $displayHash["PROBLEMS"][] = "Your username was not long enough. It must be between 3 and 16 characters."; break; case 'loginpassword'; $displayHash["PROBLEMS"][] = "Your password was not long enough. It must be between 4 and 16 characters."; break; } break; case CT_MAXLENGTH: switch($failedParam) { case 'loginusername'; $displayHash["PROBLEMS"][] = "Your username was too long. It must be between 3 and 16 characters."; break; case 'loginpassword'; $displayHash["PROBLEMS"][] = "Your password was too long. It must be between 4 and 16 characters."; break; } break; case CT_PERMITTEDCHARACTERS: switch($failedParam) { case 'loginusername'; $displayHash["PROBLEMS"][] = "Your username contains invalid characters. It must contain only letters and numbers."; break; case 'loginpassword'; $displayHash["PROBLEMS"][] = "Your password contained invalid characters."; break; } break; case CT_EQUALTO: switch($failedParam) { case 'validlogin'; $displayHash["PROBLEMS"][] = "You entered an invalid username or password."; break; case 'loginallowed'; $displayHash["PROBLEMS"][] = "You are not allowed to log in."; break; } break; }; }; }; require_once($strTemplateFile); exit(0); ?>