Nu har jag haft tid att ge ett svar..
Detta är i själva användar editeringen:
<?php
include("include/session.php");
?>
<form action="process.php" method="POST">
<table align="left" border="0" cellspacing="0" cellpadding="3">
<tr>
<td width="118"><div class="content-div">Real Name:</div></td>
<td width="200"><input width="200" type="text" name="name" maxlength="20" value="
<?php
if($form->value("name") == ""){
echo $session->userinfo['name'];
}else{
echo $form->value("name");
}
?>"></td>
</tr>
</table>
(Kortade ner den lite för alla fält ser lika ut)
Detta är en del av process.php som har betydelse till detta:
/**
* procEditAccount - Attempts to edit the user's account
* information, including the password, which must be verified
* before a change is made.
*/
function procEditAccount(){
global $session, $form;
/* Account edit attempt */
$retval = $session->editAccount($_POST['curpass'], $_POST['newpass'], $_POST['email'], $_POST['sid'], $_POST['name'], $_POST['birthday'], $_POST['msn'], $_POST['icq'], $_POST['xfire'], $_POST['location'], $_POST['status'], $_POST['sex']);
/* Account edit successful */
if($retval){
$_SESSION['useredit'] = true;
header("Location: ".$session->referrer);
}
/* Error found with form */
else{
$_SESSION['value_array'] = $_POST;
$_SESSION['error_array'] = $form->getErrorArray();
header("Location: ".$session->referrer);
}
}
Och detta i session.php:
function editAccount($subcurpass, $subnewpass, $subemail, $subsid, $subname, $subbirthday, $submsn, $subicq, $subxfire, $sublocation, $substatus, $subsex){
global $database, $form; //The database and form object
/* New password entered */
if($subnewpass){
/* Current Password error checking */
$field = "curpass"; //Use field name for current password
if(!$subcurpass){
$form->setError($field, "* Current Password not entered");
}
else{
/* Check if password too short or is not alphanumeric */
$subcurpass = stripslashes($subcurpass);
if(strlen($subcurpass) < 4 ||
!eregi("^([0-9a-z])+$", ($subcurpass = trim($subcurpass)))){
$form->setError($field, "* Current Password incorrect");
}
/* Password entered is incorrect */
if($database->confirmUserPass($this->username,md5($subcurpass)) != 0){
$form->setError($field, "* Current Password incorrect");
}
}
/* New Password error checking */
$field = "newpass"; //Use field name for new password
/* Spruce up password and check length*/
$subpass = stripslashes($subnewpass);
if(strlen($subnewpass) < 4){
$form->setError($field, "* New Password too short");
}
/* Check if password is not alphanumeric */
else if(!eregi("^([0-9a-z])+$", ($subnewpass = trim($subnewpass)))){
$form->setError($field, "* New Password not alphanumeric");
}
}
/* Change password attempted */
else if($subcurpass){
/* New Password error reporting */
$field = "newpass"; //Use field name for new password
$form->setError($field, "* New Password not entered");
}
/* Email error checking */
$field = "email"; //Use field name for email
if($subemail && strlen($subemail = trim($subemail)) > 0){
/* Check if valid email address */
$regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
."\.([a-z]{2,}){1}$";
if(!eregi($regex,$subemail)){
$form->setError($field, "* Email invalid");
}
$subemail = stripslashes($subemail);
}
/* Errors exist, have user correct them */
if($form->num_errors > 0){
return false; //Errors with form
}
/* Update password since there were no errors */
if($subcurpass && $subnewpass){$database->updateUserField($this->username,"password",md5($subnewpass));
}
/* Change Email */
if($subemail){
$database->updateUserField($this->username,"email",$subemail);
}
/* Change Steam ID */
if($subsid){
$database->updateUserField($this->username,"sid",$subsid);
}
/* Change Real Name */
if($subname){
$database->updateUserField($this->username,"name",$subname);
}
/* Change Year of Birth */
if($subbirthday){
$database->updateUserField($this->username,"birthday",$subbirthday);
}
/* Change MSN */
if($submsn){
$database->updateUserField($this->username,"msn",$submsn);
}
/* Change ICQ */
if($subicq){
$database->updateUserField($this->username,"icq",$subicq);
}
/* Change X-Fire */
if($subxfire){
$database->updateUserField($this->username,"xfire",$subxfire);
}
/* Change Location */
if($sublocation){
$database->updateUserField($this->username,"location",$sublocation);
}
/* Change Status */
if($substatus){
$database->updateUserField($this->username,"status",$substatus);
}
/* Change Sex */
if($subsex){
$database->updateUserField($this->username,"sex",$subsex);
}
/* Success! */
return true;
}
Jag hoppas någon kan hitta var denna "spärr" ligger.