General fixes

+Special chars can now be used in villages name
+Some clean-up
This commit is contained in:
iopietro
2018-05-22 19:16:35 +02:00
parent 12ba3ec154
commit c340eb267e
2 changed files with 100 additions and 129 deletions
+1 -2
View File
@@ -3996,8 +3996,7 @@ class MYSQLi_DB implements IDbConnection {
function setVillageName($vid, $name) { function setVillageName($vid, $name) {
list($vid, $name) = $this->escape_input((int) $vid, $name); list($vid, $name) = $this->escape_input((int) $vid, $name);
if(!empty($name)) if(!empty($name)){
{
$q = "UPDATE " . TB_PREFIX . "vdata set name = '$name' where wref = $vid"; $q = "UPDATE " . TB_PREFIX . "vdata set name = '$name' where wref = $vid";
return mysqli_query($this->dblink, $q); return mysqli_query($this->dblink, $q);
} }
+40 -68
View File
@@ -14,76 +14,47 @@ class Profile {
public function procProfile($post) { public function procProfile($post) {
global $session; global $session;
if($session->access == BANNED){
header("Location: banned.php");
exit();
}
if(isset($post['ft'])) { if(isset($post['ft'])) {
switch($post['ft']) { switch($post['ft']) {
case "p1" : case "p1" :
if($session->access!=BANNED){
$this->updateProfile($post); $this->updateProfile($post);
}else{
header("Location: banned.php");
exit;
}
break; break;
case "p3" : case "p3" :
if($session->access!=BANNED){
$this->updateAccount($post); $this->updateAccount($post);
}else{
header("Location: banned.php");
exit;
}
break; break;
case "p4" : case "p4" :
// Vacation mode - by advocaite and Shadow
if($session->access!=BANNED){
$this->setvactionmode($post); $this->setvactionmode($post);
}else{
header("Location: banned.php");
exit;
}
break;
}
}
if(isset($post['s'])) {
switch($post['s']) {
case "4":
if($session->access!=BANNED){
$this->gpack($post);
}else{
header("Location: banned.php");
exit;
}
break; break;
} }
} }
if(isset($post['s']) && $post['s'] == 4) $this->gpack($post);
} }
public function procSpecial($get) { public function procSpecial($get) {
global $session; global $session;
if($session->access == BANNED){
header("Location: banned.php");
exit();
}
if(isset($get['e'])) { if(isset($get['e'])) {
switch($get['e']) { switch($get['e']) {
case 2 : case 2 :
if($session->access!=BANNED){
$this->removeMeSit($get); $this->removeMeSit($get);
}else{
header("Location: banned.php");
exit;
}
break; break;
case 3 : case 3 :
if($session->access!=BANNED){
$this->removeSitter($get); $this->removeSitter($get);
}else{
header("Location: banned.php");
exit;
}
break; break;
case 4 : case 4 :
if($session->access!=BANNED){
$this->cancelDeleting($get); $this->cancelDeleting($get);
}else{
header("Location: banned.php");
exit;
}
break; break;
} }
} }
@@ -91,29 +62,32 @@ class Profile {
private function updateProfile($post) { private function updateProfile($post) {
global $database, $session; global $database, $session;
$birthday = $post['jahr'].'-'.$post['monat'].'-'.$post['tag']; $birthday = $post['jahr'].'-'.$post['monat'].'-'.$post['tag'];
$database->submitProfile($session->uid, $database->RemoveXSS($post['mw']), $database->RemoveXSS($post['ort']), $database->RemoveXSS($birthday), $database->RemoveXSS($post['be2']), $database->RemoveXSS($post['be1'])); $database->submitProfile($session->uid, $database->RemoveXSS($post['mw']), $database->RemoveXSS($post['ort']), $database->RemoveXSS($birthday), $database->RemoveXSS($post['be2']), $database->RemoveXSS($post['be1']));
$varray = $database->getProfileVillages($session->uid); $varray = $database->getProfileVillages($session->uid);
for($i=0;$i<=count($varray)-1;$i++) {
$k = trim($post['dname'.$i]); for($i = 0; $i < count($varray); $i++){
$name = preg_replace("/[^a-zA-Z0-9_\-\s'\"]/", "", $k); $database->setVillageName($varray[$i]['wref'], $database->RemoveXSS(trim($post['dname'.$i])));
$database->setVillageName($varray[$i]['wref'],$database->RemoveXSS($name));
} }
header("Location: spieler.php?uid=".$session->uid); header("Location: spieler.php?uid=".$session->uid);
exit; exit();
} }
private function gpack($post) { private function gpack($post) {
global $database, $session; global $database, $session;
$database->gpack($database->RemoveXSS($session->uid),$database->RemoveXSS($post['custom_url'])); $database->gpack($database->RemoveXSS($session->uid),$database->RemoveXSS($post['custom_url']));
header("Location: spieler.php?uid=".$session->uid); header("Location: spieler.php?uid=".$session->uid);
exit; exit;
} }
/******************************************************* /**
Function to vacation mode - by advocaite and Shadow * Function to vacation mode - by advocaite and Shadow
References: *
********************************************************/ * @param array $post The $_POST array
*/
private function setvactionmode($post){ private function setvactionmode($post){
global $database, $session, $form; global $database, $session, $form;
@@ -122,22 +96,23 @@ class Profile {
unset($_SESSION['wid']); unset($_SESSION['wid']);
$database->setvacmode($session->uid, $post['vac_days']); $database->setvacmode($session->uid, $post['vac_days']);
$database->activeModify(addslashes($session->username), 1); $database->activeModify(addslashes($session->username), 1);
$database->UpdateOnline("logout") or die(mysqli_error($database->dblink)); $database->UpdateOnline("logout");
$session->Logout(); $session->Logout();
header("Location: login.php"); header("Location: login.php");
exit; exit();
}else{ }else{
header("Location: spieler.php?s=".$session->uid);
$form->add("vac", VAC_MODE_WRONG_DAYS); $form->add("vac", VAC_MODE_WRONG_DAYS);
header("Location: spieler.php?s=".$session->uid);
exit(); exit();
} }
} }
/******************************************************* /**
Function to vacation mode - by advocaite and Shadow * Function to vacation mode - by advocaite and Shadow
References: *
********************************************************/ * @param array $post The $_POST array
*/
private function updateAccount($post) { private function updateAccount($post) {
global $database, $session, $form; global $database, $session, $form;
@@ -146,28 +121,24 @@ class Profile {
if($post['pw2'] == $post['pw3']){ if($post['pw2'] == $post['pw3']){
if($database->login($session->username, $post['pw1'])){ if($database->login($session->username, $post['pw1'])){
$database->updateUserField($session->uid, "password", password_hash($post['pw2'], PASSWORD_BCRYPT, ['cost' => 12]), 1); $database->updateUserField($session->uid, "password", password_hash($post['pw2'], PASSWORD_BCRYPT, ['cost' => 12]), 1);
}else {
$form->addError("pw",LOGIN_PW_ERROR);
} }
}else { else $form->addError("pw", LOGIN_PW_ERROR);
$form->addError("pw",PASS_MISMATCH);
} }
else $form->addError("pw", PASS_MISMATCH);
} }
if(!empty($post['email_alt']) && !empty($post['email_neu'])){ if(!empty($post['email_alt']) && !empty($post['email_neu'])){
if($post['email_alt'] == $session->userinfo['email']){ if($post['email_alt'] == $session->userinfo['email']){
$database->updateUserField($session->uid, "email", $post['email_neu'], 1); $database->updateUserField($session->uid, "email", $post['email_neu'], 1);
}else {
$form->addError("email",EMAIL_ERROR);
} }
else $form->addError("email", EMAIL_ERROR);
} }
if(!empty($post['del_pw']) && $post['del']){ if(!empty($post['del_pw']) && $post['del']){
if(password_verify($post['del_pw'], $session->userinfo['password'])){ if(password_verify($post['del_pw'], $session->userinfo['password'])){
$database->setDeleting($session->uid, 0); $database->setDeleting($session->uid, 0);
}else {
$form->addError("del",PASS_MISMATCH);
} }
else $form->addError("del", PASS_MISMATCH);
} }
if(!empty($post['v1'])){ if(!empty($post['v1'])){
@@ -187,6 +158,7 @@ class Profile {
$_SESSION['errorarray'] = $form->getErrors(); $_SESSION['errorarray'] = $form->getErrors();
$_SESSION['valuearray'] = $_POST; $_SESSION['valuearray'] = $_POST;
} }
header("Location: spieler.php?s=3"); header("Location: spieler.php?s=3");
exit; exit;
} }
@@ -198,7 +170,6 @@ class Profile {
if($session->userinfo['sit'.$get['type']] == $get['id']) { if($session->userinfo['sit'.$get['type']] == $get['id']) {
$database->updateUserField($session->uid,"sit".$get['type'],0,1); $database->updateUserField($session->uid,"sit".$get['type'],0,1);
} }
$session->changeChecker(); $session->changeChecker();
} }
@@ -208,6 +179,7 @@ class Profile {
private function cancelDeleting($get) { private function cancelDeleting($get) {
global $database, $session; global $database, $session;
$database->setDeleting($session->uid,1); $database->setDeleting($session->uid,1);
header("Location: spieler.php?s=".$get['s']); header("Location: spieler.php?s=".$get['s']);
exit; exit;