dalecosp wrote:I'd guess it's herebut I'd really like to see more context. You aren't opening a PHP short tag when you're already in PHP, are you?
That's not it. I remved that earlier but the error persists. Here is the page
<?
<span style="color:darkblue;"?Hello :?=empty($_SESSION['bsd_username'])?" We'd really like to learn your name. Please login or register" : $_SESSION['bsd_username'] . " ( ".$_SESSION['bsd_profession'] .")" ?></span>
if ($_SESSION['loggedin'] === true):
//do nothing
elseif (remembereduser()):
loginremembereduser();
else:
$form="";
render_login_form();
endif;
function render_login_form() {
global $form;
$attribs = array();
require_once "HTML/QuickForm.php";
$form = new HTML_QuickForm('loginform', 'post', $_SERVER['PHP_SELF'],"",NULL,TRUE);
$form->addElement("header", "","Login here");
$form->addElement("hidden","freshtest", getfreshtestid());
$_SESSION['bsd_username'] . " ( ".$_SESSION['bsd_profession'] .")" ?</span>
$form->addElement("text", "username", "Username:", $attribs);
$form->addElement("password", "pwd", "Password:", $attribs);
$form->addElement("checkbox", "rememberme", "", "Remember me", $attribs);
$buttons[] = &HTML_QuickForm::createElement("reset", "reset", "Clear");
$buttons[] = &HTML_QuickForm::createElement("submit", "submit", "Login");
$form->addGroup($buttons, null, null, " ");
$form->addElement("link", "","", FULLPATH."?action=forgottenpassword","Forgotten your password?", $attribs);
$form->addRule("username", "You must supply a username", "required");
$form->addRule("pwd", "You must supply a password", "required");
$form->registerRule('freshtest', 'callback', 'isfreshsubmission');
$form->registerRule('passwordverify', 'callback', 'verifypassword');
$form->addRule("freshtest", "You cannot use the backbutton to login", "freshtest");
$form->addRule("pwd", "Either the username or password is incorrect", "passwordverify");
if ($form->validate()):
return $form->process("login");
else:
$contents = '<div class="loginform">'. $form->tohtml().'</div>';
require_once "template.php";
exit;
endif;
}
function login($value=null){
global $form;
unset($_SESSION['freshtest']);
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $form->exportvalue("username");
$rm = &$form->getelement("rememberme");
setrememberme($rm->getchecked());
}
function setrememberme($state) {
global $db, $dbusertable;
if ($state === true):
$str = "setting oookie";
$expiry = time() + 31536000;
$dbexpiry = $expiry;
else:
$str = "deleting cookie";
$expiry = time() -3600;
$dbexpiry = null;
endif;
$result = $db->query("update $dbusertable set rememberme=? where username=?", array($dbexpiry, $_SESSION['username']));
setcookie("bsd_username", $_SESSION['username'], $expiry);
}
function remembereduser() {
global $db, $dbusertable;
if (!isset($_COOKIE['bsd_username'])) return false;
$num = $db->getOne("Select count(*) from $dbusertable where username=? and rememberme > ?", array (trim($_COOKIE['bsd_username']), time()));
return ($num == 1);
}
function loginremembereduser() {
$_SESSION['loggedin'] = true;
$_SESSION['username'] = trim($_COOKIE['bsd_username']);
setrememberme(true);
}
function verifypassword($value) {
//note cannot use this for crypted passwords, but md5 passwords work ok.
global $form, $db, $dbusertable;
$pwd=trim($value);
$submittedusername = trim($form->exportvalue("username"));
$num = $db->getOne("select count(*) as cnt from $dbusertable where username=? and pwd=?", array($submittedusername, md5($pwd)));
return ($num == 1);
}
function logout() {
unset ($_SESSION['username']);
unset ($_SESSION['loggedin']);
setrememberme(false);
}
?>