mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-08-10 21:31:01 +00:00
Some important fix
This commit is contained in:
@@ -13,7 +13,11 @@
|
||||
|
||||
// #299: load CSRF helpers + admin_deny() before the access check below.
|
||||
require_once(__DIR__ . '/../csrf.php');
|
||||
session_start();
|
||||
|
||||
// csrf.php porneste deja sesiunea; un al doilea apel doar genereaza un Notice.
|
||||
if (session_status() === PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
include_once("../../config.php");
|
||||
include_once("../../Database.php");
|
||||
|
||||
@@ -45,6 +45,23 @@ if ( !defined('AUTOMATION_MANUAL_RUN') ) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Automation.php presupunea ca apelantul a inclus deja config.php. Cand nu era
|
||||
* asa (de exemplu inclus din alt context), Database.php dadea eroare fatala:
|
||||
* Undefined constant "SQL_SERVER"
|
||||
*
|
||||
* Il incarcam noi daca lipseste. include_once nu-l aduce de doua ori.
|
||||
*/
|
||||
if (!defined('SQL_SERVER')) {
|
||||
$automationConfig = __DIR__ . '/config.php';
|
||||
|
||||
if (is_file($automationConfig)) {
|
||||
include_once($automationConfig);
|
||||
} elseif (is_file(__DIR__ . '/../config.php')) {
|
||||
include_once(__DIR__ . '/../config.php');
|
||||
}
|
||||
}
|
||||
|
||||
include_once("Database.php");
|
||||
include_once("Data/buidata.php");
|
||||
include_once("Data/unitdata.php");
|
||||
|
||||
@@ -578,7 +578,9 @@ class Units {
|
||||
$j = 1;
|
||||
for ( $i = $start; $i <= $end; $i ++ ) {
|
||||
$units[] = $i;
|
||||
$amounts[] = $post[ 't' . $j . '' ];
|
||||
// Formularul trimite doar casutele completate; o unitate necompletata
|
||||
// inseamna zero trupe din tipul acela.
|
||||
$amounts[] = isset($post['t'.$j]) ? $post['t'.$j] : 0;
|
||||
$modes[] = 0;
|
||||
$j ++;
|
||||
}
|
||||
|
||||
@@ -36,11 +36,14 @@ if($session->sit == 0) {
|
||||
// update sesiune
|
||||
$session->gold -= $cost;
|
||||
$_SESSION['gold'] = $session->gold;
|
||||
// Session nu are proprietatea ->b2; valoarea sta in userarray, de unde
|
||||
// o citeste si PopulateVar(). Scrierea directa crea o proprietate
|
||||
// dinamica (depreciata in PHP 8.2) si nu se vedea nicaieri.
|
||||
$currentB2 = isset($session->userarray['b2']) ? (int) $session->userarray['b2'] : 0;
|
||||
$session->userarray['b2'] = ($currentB2 > $now ? $currentB2 : $now) + PLUS_PRODUCTION;
|
||||
// Interogarea de mai sus a prelungit deja b2 in baza de date, atomic.
|
||||
// Aici doar marcam bonusul ca activ in sesiune, ca pagina sa arate
|
||||
// corect imediat, fara sa mai citim o data din baza.
|
||||
//
|
||||
// Session NU are proprietatea ->b2 (momentul expirarii sta in
|
||||
// userarray, care e privat). Are insa ->bonus2, indicatorul public
|
||||
// 0/1 pe care il foloseste restul interfetei.
|
||||
$session->bonus2 = 1;
|
||||
|
||||
// LOG pentru a2b2.php
|
||||
mysqli_query($database->dblink,
|
||||
|
||||
@@ -35,11 +35,14 @@ if($session->sit == 0) {
|
||||
if(mysqli_affected_rows($database->dblink) == 1) {
|
||||
$session->gold -= $cost;
|
||||
$_SESSION['gold'] = $session->gold;
|
||||
// Session nu are proprietatea ->b3; valoarea sta in userarray, de unde
|
||||
// o citeste si PopulateVar(). Scrierea directa crea o proprietate
|
||||
// dinamica (depreciata in PHP 8.2) si nu se vedea nicaieri.
|
||||
$currentB3 = isset($session->userarray['b3']) ? (int) $session->userarray['b3'] : 0;
|
||||
$session->userarray['b3'] = ($currentB3 > $now ? $currentB3 : $now) + PLUS_PRODUCTION;
|
||||
// Interogarea de mai sus a prelungit deja b3 in baza de date, atomic.
|
||||
// Aici doar marcam bonusul ca activ in sesiune, ca pagina sa arate
|
||||
// corect imediat, fara sa mai citim o data din baza.
|
||||
//
|
||||
// Session NU are proprietatea ->b3 (momentul expirarii sta in
|
||||
// userarray, care e privat). Are insa ->bonus3, indicatorul public
|
||||
// 0/1 pe care il foloseste restul interfetei.
|
||||
$session->bonus3 = 1;
|
||||
|
||||
// LOG pentru a2b2
|
||||
mysqli_query($database->dblink,
|
||||
|
||||
@@ -34,11 +34,14 @@ if($session->sit == 0) {
|
||||
if(mysqli_affected_rows($database->dblink) == 1) {
|
||||
$session->gold -= $cost;
|
||||
$_SESSION['gold'] = $session->gold;
|
||||
// Session nu are proprietatea ->b4; valoarea sta in userarray, de unde
|
||||
// o citeste si PopulateVar(). Scrierea directa crea o proprietate
|
||||
// dinamica (depreciata in PHP 8.2) si nu se vedea nicaieri.
|
||||
$currentB4 = isset($session->userarray['b4']) ? (int) $session->userarray['b4'] : 0;
|
||||
$session->userarray['b4'] = ($currentB4 > $now ? $currentB4 : $now) + PLUS_PRODUCTION;
|
||||
// Interogarea de mai sus a prelungit deja b4 in baza de date, atomic.
|
||||
// Aici doar marcam bonusul ca activ in sesiune, ca pagina sa arate
|
||||
// corect imediat, fara sa mai citim o data din baza.
|
||||
//
|
||||
// Session NU are proprietatea ->b4 (momentul expirarii sta in
|
||||
// userarray, care e privat). Are insa ->bonus4, indicatorul public
|
||||
// 0/1 pe care il foloseste restul interfetei.
|
||||
$session->bonus4 = 1;
|
||||
|
||||
// LOG pentru a2b2
|
||||
mysqli_query($database->dblink,
|
||||
|
||||
@@ -36,11 +36,14 @@ if($session->sit == 0) {
|
||||
// update sesiune instant
|
||||
$session->gold -= $cost;
|
||||
$_SESSION['gold'] = $session->gold;
|
||||
// Session nu are proprietatea ->b1; valoarea sta in userarray, de unde
|
||||
// o citeste si PopulateVar(). Scrierea directa crea o proprietate
|
||||
// dinamica (depreciata in PHP 8.2) si nu se vedea nicaieri.
|
||||
$currentB1 = isset($session->userarray['b1']) ? (int) $session->userarray['b1'] : 0;
|
||||
$session->userarray['b1'] = ($currentB1 > $now ? $currentB1 : $now) + PLUS_PRODUCTION;
|
||||
// Interogarea de mai sus a prelungit deja b1 in baza de date, atomic.
|
||||
// Aici doar marcam bonusul ca activ in sesiune, ca pagina sa arate
|
||||
// corect imediat, fara sa mai citim o data din baza.
|
||||
//
|
||||
// Session NU are proprietatea ->b1 (momentul expirarii sta in
|
||||
// userarray, care e privat). Are insa ->bonus1, indicatorul public
|
||||
// 0/1 pe care il foloseste restul interfetei.
|
||||
$session->bonus1 = 1;
|
||||
|
||||
// LOG pentru a2b2.php
|
||||
mysqli_query($database->dblink,
|
||||
|
||||
@@ -151,7 +151,12 @@ if ($displayarray['access'] == BANNED) {
|
||||
<td>
|
||||
<?php
|
||||
$tribeArrays = [TRIBE1, TRIBE2, TRIBE3, TRIBE4, TRIBE5, TRIBE6, TRIBE7, TRIBE8, TRIBE9];
|
||||
echo $tribeArrays[$displayarray['tribe'] - 1];
|
||||
|
||||
// Un cont fara trib (tribe = 0, de exemplu conturile de sistem sau unul
|
||||
// inca neinregistrat complet) dadea indexul -1.
|
||||
$tribeIndex = (int) ($displayarray['tribe'] ?? 0) - 1;
|
||||
|
||||
echo isset($tribeArrays[$tribeIndex]) ? $tribeArrays[$tribeIndex] : '';
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -68,7 +68,7 @@ document.addEventListener('DOMContentLoaded',function(){
|
||||
<path d="M26 32l5 5 11-11" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<defs><linearGradient id="g" x1="8" y1="4" x2="56" y2="58"><stop stop-color="#22c55e"/><stop offset="1" stop-color="#0f172a"/></linearGradient></defs>
|
||||
</svg>
|
||||
<div><h1>TravianZ Installation</h1><p>Setup wizard • v.10.0 Full Refactor&Redesign</p></div>
|
||||
<div><h1>TravianZ Installation</h1><p>Setup wizard • v.11.0 Full Refactor&Redesign</p></div>
|
||||
`;
|
||||
var wrap = document.querySelector('.wrapper');
|
||||
if(wrap) wrap.parentNode.insertBefore(h, wrap);
|
||||
|
||||
Reference in New Issue
Block a user