mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-08-21 10:37:14 +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.
|
// #299: load CSRF helpers + admin_deny() before the access check below.
|
||||||
require_once(__DIR__ . '/../csrf.php');
|
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("../../config.php");
|
||||||
include_once("../../Database.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("Database.php");
|
||||||
include_once("Data/buidata.php");
|
include_once("Data/buidata.php");
|
||||||
include_once("Data/unitdata.php");
|
include_once("Data/unitdata.php");
|
||||||
|
|||||||
@@ -578,7 +578,9 @@ class Units {
|
|||||||
$j = 1;
|
$j = 1;
|
||||||
for ( $i = $start; $i <= $end; $i ++ ) {
|
for ( $i = $start; $i <= $end; $i ++ ) {
|
||||||
$units[] = $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;
|
$modes[] = 0;
|
||||||
$j ++;
|
$j ++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,11 +36,14 @@ if($session->sit == 0) {
|
|||||||
// update sesiune
|
// update sesiune
|
||||||
$session->gold -= $cost;
|
$session->gold -= $cost;
|
||||||
$_SESSION['gold'] = $session->gold;
|
$_SESSION['gold'] = $session->gold;
|
||||||
// Session nu are proprietatea ->b2; valoarea sta in userarray, de unde
|
// Interogarea de mai sus a prelungit deja b2 in baza de date, atomic.
|
||||||
// o citeste si PopulateVar(). Scrierea directa crea o proprietate
|
// Aici doar marcam bonusul ca activ in sesiune, ca pagina sa arate
|
||||||
// dinamica (depreciata in PHP 8.2) si nu se vedea nicaieri.
|
// corect imediat, fara sa mai citim o data din baza.
|
||||||
$currentB2 = isset($session->userarray['b2']) ? (int) $session->userarray['b2'] : 0;
|
//
|
||||||
$session->userarray['b2'] = ($currentB2 > $now ? $currentB2 : $now) + PLUS_PRODUCTION;
|
// 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
|
// LOG pentru a2b2.php
|
||||||
mysqli_query($database->dblink,
|
mysqli_query($database->dblink,
|
||||||
|
|||||||
@@ -35,11 +35,14 @@ if($session->sit == 0) {
|
|||||||
if(mysqli_affected_rows($database->dblink) == 1) {
|
if(mysqli_affected_rows($database->dblink) == 1) {
|
||||||
$session->gold -= $cost;
|
$session->gold -= $cost;
|
||||||
$_SESSION['gold'] = $session->gold;
|
$_SESSION['gold'] = $session->gold;
|
||||||
// Session nu are proprietatea ->b3; valoarea sta in userarray, de unde
|
// Interogarea de mai sus a prelungit deja b3 in baza de date, atomic.
|
||||||
// o citeste si PopulateVar(). Scrierea directa crea o proprietate
|
// Aici doar marcam bonusul ca activ in sesiune, ca pagina sa arate
|
||||||
// dinamica (depreciata in PHP 8.2) si nu se vedea nicaieri.
|
// corect imediat, fara sa mai citim o data din baza.
|
||||||
$currentB3 = isset($session->userarray['b3']) ? (int) $session->userarray['b3'] : 0;
|
//
|
||||||
$session->userarray['b3'] = ($currentB3 > $now ? $currentB3 : $now) + PLUS_PRODUCTION;
|
// 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
|
// LOG pentru a2b2
|
||||||
mysqli_query($database->dblink,
|
mysqli_query($database->dblink,
|
||||||
|
|||||||
@@ -34,11 +34,14 @@ if($session->sit == 0) {
|
|||||||
if(mysqli_affected_rows($database->dblink) == 1) {
|
if(mysqli_affected_rows($database->dblink) == 1) {
|
||||||
$session->gold -= $cost;
|
$session->gold -= $cost;
|
||||||
$_SESSION['gold'] = $session->gold;
|
$_SESSION['gold'] = $session->gold;
|
||||||
// Session nu are proprietatea ->b4; valoarea sta in userarray, de unde
|
// Interogarea de mai sus a prelungit deja b4 in baza de date, atomic.
|
||||||
// o citeste si PopulateVar(). Scrierea directa crea o proprietate
|
// Aici doar marcam bonusul ca activ in sesiune, ca pagina sa arate
|
||||||
// dinamica (depreciata in PHP 8.2) si nu se vedea nicaieri.
|
// corect imediat, fara sa mai citim o data din baza.
|
||||||
$currentB4 = isset($session->userarray['b4']) ? (int) $session->userarray['b4'] : 0;
|
//
|
||||||
$session->userarray['b4'] = ($currentB4 > $now ? $currentB4 : $now) + PLUS_PRODUCTION;
|
// 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
|
// LOG pentru a2b2
|
||||||
mysqli_query($database->dblink,
|
mysqli_query($database->dblink,
|
||||||
|
|||||||
@@ -36,11 +36,14 @@ if($session->sit == 0) {
|
|||||||
// update sesiune instant
|
// update sesiune instant
|
||||||
$session->gold -= $cost;
|
$session->gold -= $cost;
|
||||||
$_SESSION['gold'] = $session->gold;
|
$_SESSION['gold'] = $session->gold;
|
||||||
// Session nu are proprietatea ->b1; valoarea sta in userarray, de unde
|
// Interogarea de mai sus a prelungit deja b1 in baza de date, atomic.
|
||||||
// o citeste si PopulateVar(). Scrierea directa crea o proprietate
|
// Aici doar marcam bonusul ca activ in sesiune, ca pagina sa arate
|
||||||
// dinamica (depreciata in PHP 8.2) si nu se vedea nicaieri.
|
// corect imediat, fara sa mai citim o data din baza.
|
||||||
$currentB1 = isset($session->userarray['b1']) ? (int) $session->userarray['b1'] : 0;
|
//
|
||||||
$session->userarray['b1'] = ($currentB1 > $now ? $currentB1 : $now) + PLUS_PRODUCTION;
|
// 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
|
// LOG pentru a2b2.php
|
||||||
mysqli_query($database->dblink,
|
mysqli_query($database->dblink,
|
||||||
|
|||||||
@@ -151,7 +151,12 @@ if ($displayarray['access'] == BANNED) {
|
|||||||
<td>
|
<td>
|
||||||
<?php
|
<?php
|
||||||
$tribeArrays = [TRIBE1, TRIBE2, TRIBE3, TRIBE4, TRIBE5, TRIBE6, TRIBE7, TRIBE8, TRIBE9];
|
$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>
|
</td>
|
||||||
</tr>
|
</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"/>
|
<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>
|
<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>
|
</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');
|
var wrap = document.querySelector('.wrapper');
|
||||||
if(wrap) wrap.parentNode.insertBefore(h, wrap);
|
if(wrap) wrap.parentNode.insertBefore(h, wrap);
|
||||||
|
|||||||
Reference in New Issue
Block a user