Cronjobs - wie mach ich die?

Rechne es lieber rückwirkend aus, in dem du die Differenz der Aktionen ermittelst und daraus den Zuwachs ermittelst. Mit JavaScript kannst du dann auch bei konstantem Wachstum den Stand in Echtzeit anzeigen.
 
Aber javascript arbeitet doch nur, wenn der Browser geöffnet ist, bzw die Site.
So möchte ich das aber nicht verwenden

Lies doch bitte einmal richtig, ich habe den für dich wichtigen Abschnitt fett markiert.

Rechne es lieber rückwirkend aus, in dem du die Differenz der Aktionen ermittelst und daraus den Zuwachs ermittelst.

Der Teil über JavaScript betraf die Zeit, wenn der User eingeloggt ist.

Das andere betraf den Teil, wenn der User nicht eingeloggt ist. Sprich rechne es aus, wenn der User wieder da ist.
 
Hier ein einfaches Beispiel zur Verdeutlichung mithilfe einer Sitzung:
PHP:
session_start();
// Wachstumswerte in Einheiten pro Sekunde
$wachstum = array(
	'holz'  => 3,
	'eisen' => 2,
);
// Ausgangswerte
if( !isset($_SESSION['rohstoffe']) ) {
	$_SESSION['rohstoffe'] = array(
		'holz'  => 100,
		'eisen' => 100
	);
}
if( !isset($_SESSION['letzte_aktualisierung']) ) {
	$_SESSION['letzte_aktualisierung'] = $_SERVER['REQUEST_TIME'];
}

// Aktualisierung der Werte
echo '<ul>';
foreach( $_SESSION['rohstoffe'] as $rohstoff => $einheiten ) {
	$_SESSION['rohstoffe'][$rohstoff] += ($_SERVER['REQUEST_TIME']-$_SESSION['letzte_aktualisierung']) * $wachstum[$rohstoff];
	echo '<li>'.$rohstoff.': <input type="text" id="rohstoff:'.$rohstoff.'" value="'.$_SESSION['rohstoffe'][$rohstoff].'" readonly="readonly"></li>';
}
echo '</ul>';

// Aktualisierung des Zeitpunkts der letzten Aktualisierung der Werte
$_SESSION['letzte_aktualisierung'] = $_SERVER['REQUEST_TIME'];
JavaScript könnte dann zusätzlich eingesetzt werden, um dem Benutzer das Wachstum in Echtzeit anzuzeigen. Die Berechnung findet jedoch serverseitig statt.
 
ok,
ih hatte das mit dem rückwirkend erst falsch verstanden.
danke nochmal für die erklärung und das Script.

*Keks schenk*
mfg
Deniz
 
Hmm,
Ich musste nun dieses Script anwenden, vorher kam immer etwas dazwischen.
Und leider gibt es ein Problem:
Es passiert nichts :(
Es bleiben immer 100 Holz und Eisen.
Kannst du mir nochmal weiterhelfen, oder ein Anderer :)
 
Wird die Sitzung denn erfolgreich weitergeführt? Prüfe mal ob die Sitzungs-ID (session_id()-Funktion) bei jedem Aufruf dieselbe ist.
 
Nur noch die Sessionid drunter geschrieben:
PHP:
<?php
session_start();
// Wachstumswerte in Einheiten pro Sekunde
$wachstum = array(
    'holz'  => 3,
    'eisen' => 2,
);
// Ausgangswerte
if( !isset($_SESSION['rohstoffe']) ) {
    $_SESSION['rohstoffe'] = array(
        'holz'  => 100,
        'eisen' => 100
    );
}
if( !isset($_SESSION['letzte_aktualisierung']) ) {
    $_SESSION['letzte_aktualisierung'] = $_SERVER['REQUEST_TIME'];
}

// Aktualisierung der Werte
echo '<ul>';
foreach( $_SESSION['rohstoffe'] as $rohstoff => $einheiten ) {
    $_SESSION['rohstoffe'][$rohstoff] += ($_SERVER['REQUEST_TIME']-$_SESSION['letzte_aktualisierung']) * $wachstum[$rohstoff];
    echo '<li>'.$rohstoff.': <input type="text" id="rohstoff:'.$rohstoff.'" value="'.$_SESSION['rohstoffe'][$rohstoff].'" readonly="readonly"></li>';
}
echo '</ul>';

// Aktualisierung des Zeitpunkts der letzten Aktualisierung der Werte
$_SESSION['letzte_aktualisierung'] = $_SERVER['REQUEST_TIME'];

$sid = session_id();
echo 'SessionId: '.$sid;
?>
 
Zurück