PHP-Script refreshen ohne F5

01/23/2014 21:50 lnqlorlouz#1
Hallo,

ich habe zwar nach PHP-Script refresh geschaut bei Google, aber da kam nur soviel wie die ganze Zeit automatisch zu refreshen und zwar so:
PHP Code:
<?php
header 
("refresh: 8;");?>
Aber ich habe ein Server-Script, dass mir die aktuellen Spieler der Server anzeigt. Und das es aktualisiert wird, muss man natürlich F5 drücken.
Hier das Script:
PHP Code:
<?PHP  
$nextlevel 
$level 1;
$api_url "http://api.wa-sta.net/player/nick/"//API URL
$api_url_server "http://api.wa-sta.net/general/server/";

$api "http://api.wa-sta.net/player/nick/$nickname";
$data file_get_contents($api); //Get the data from the API with file_get_contents
$server file_get_contents($api_url_server);

# SERVER DATA
$json file_get_contents("http://api.wa-sta.net/general/server/&logoff=1");
$json json_decode($json);
$server_timestamp $json->Timestamp;
$timestamp date("H:i:s d.m.Y",($server_timestamp -60*60*24));
$server_worldcount $json->Servers->World->Current;
$server_westcount $json->Servers->West->Current;
$server_eastcount =  $json->Servers->East->Current;
$server_maximum_world =  $json->Servers->World->Maximum;
$server_maximum_west =  $json->Servers->West->Maximum;
$server_maximum_east =  $json->Servers->East->Maximum;
$server_percent_world =  $json->Servers->World->PercentageOfMax;
$server_percent_west =  $json->Servers->West->PercentageOfMax;
$server_percent_east =  $json->Servers->East->PercentageOfMax;
$server_total_players =  $server_worldcount+$server_westcount+$server_eastcount;
 
?>
Das ist nur das Script, der PHP/HTML Ausgabe Code ist:
PHP Code:
                 <?PHP $null 0;
                if (
$server_total_players == 0) { echo '<br>';} elseif ($server_total_players $null) { echo '
<center><div class="container">
    <div class="row">
    <ul class="ds-btn">
        <li>
             <a class="btn btn-lg btn-success " href="/server.php">
         <i class="glyphicon glyphicon-dashboard pull-left"></i><span>World-Server<br><small>'
.$server_worldcount.'</small></span></a> 
                      <a class="btn btn-lg btn-primary " href="/server.php">
         <i class="glyphicon glyphicon-dashboard pull-left"></i><span>West-Server<br><small>'
.$server_westcount.'</small></span></a> 
                      <a class="btn btn-lg btn-info " href="/server.php">
         <i class="glyphicon glyphicon-dashboard pull-left"></i><span>East-Server<br><small>'
.$server_eastcount.'</small></span></a> 
                              <a class="btn btn-lg btn-danger " href="/server.php">
         <i class="glyphicon glyphicon-dashboard pull-left"></i><span>All Players<br><small>'
.$server_total_players.'</small></span></a> 

    </ul>
    </div>
</div></center>'
;} ?>
Wie kann ich das automatisch aktualisieren lassen? Geht das nur mit Ajax oder auch ohne? Ist das nur ein kleiner Code oder ein großer? Vielleicht hat ja einer einen Link dazu.

Danke & Grüße! :p
01/23/2014 21:53 Razor'#2
Hallo,

Ich würde einfach nur den frame dauerhaft aktualisieren lassen. Benutze bitte die SuFu nach "Frame Refresh"
01/23/2014 21:58 lnqlorlouz#3
Quote:
Originally Posted by Razor' View Post
Hallo,

Ich würde einfach nur den frame dauerhaft aktualisieren lassen. Benutze bitte die SuFu nach "Frame Refresh"
Bei Frame Refresh kam nichts bei der SuFu. Habe aber auf einer anderen Seite so etwas gesehen:
HTML Code:
<script>
		function refreshLevelUps(){
			$.ajax({
				type: "GET",
				url: "server/ajax/get_levelups.php",
				success: function(data){
					document.getElementById("latest_levelups").innerHTML = data;
					setTimeout(refreshLevelUps, 10000);
				}
			});
		}
		function refreshServerStatus(){
			$.ajax({
				type: "POST",
				data: "server=all",
				url: "server/ajax/get_serverstatus.php",
				success: function(data){
					document.getElementById("server_status").innerHTML = data;
					setTimeout(refreshServerStatus, 30000);
				}
			});
		}
		refreshLevelUps();
		refreshServerStatus();
		//document.getElementById("latest_levelups").focus();
		</script>
So etwas könnte das doch sein oder?
01/23/2014 22:00 Razor'#4
Ganz genau, das ist es. Du solltest nur das time out runterstellen.
01/24/2014 06:11 #dynastie#5
Ich verwende für meinen Server einen Serverstatus. Die Seite aktualisiert sich bzw. lädt alle 60 Sekunden neu. Habe deinen Code nicht überflogen, aber vielleicht hilft dir sogar die simple Lösung via html-meta.

<meta http-equiv="refresh" content="300" />

Innerhalb des Head-Bereiches einfügen dann wird die Seite alle 300 Sekunden aufgerufen. Sind dann in der gleichen Datei noch die Aufrufe der Funktionen, dann hast du das, was du brauchst.
01/24/2014 16:48 lnqlorlouz#6
Quote:
Originally Posted by #dynastie View Post
Ich verwende für meinen Server einen Serverstatus. Die Seite aktualisiert sich bzw. lädt alle 60 Sekunden neu. Habe deinen Code nicht überflogen, aber vielleicht hilft dir sogar die simple Lösung via html-meta.

<meta http-equiv="refresh" content="300" />

Innerhalb des Head-Bereiches einfügen dann wird die Seite alle 300 Sekunden aufgerufen. Sind dann in der gleichen Datei noch die Aufrufe der Funktionen, dann hast du das, was du brauchst.
Hab ich schon benutzt. Ist aber nicht das Gelbe vom Ei.
01/24/2014 19:53 xEncounter#7
Für einen einfachen Refresh -->


PHP Code:
$seite $_SERVER['PHP_SELF'];
$sekunden "10";
header("Refresh: $sekunden; url=$seite"); 
"10" kann ersetzt werden durch irgendeine beliebige Ganzzahl.
01/24/2014 20:07 3lue#8
Quote:
Originally Posted by xEncounter View Post
Für einen einfachen Refresh -->


PHP Code:
$seite $_SERVER['PHP_SELF'];
$sekunden "10";
header("Refresh: $sekunden; url=$seite"); 
"10" kann ersetzt werden durch irgendeine beliebige Ganzzahl.



Quote:
Originally Posted by #dynastie View Post
Ich verwende für meinen Server einen Serverstatus. Die Seite aktualisiert sich bzw. lädt alle 60 Sekunden neu. Habe deinen Code nicht überflogen, aber vielleicht hilft dir sogar die simple Lösung via html-meta.

<meta http-equiv="refresh" content="300" />

Innerhalb des Head-Bereiches einfügen dann wird die Seite alle 300 Sekunden aufgerufen. Sind dann in der gleichen Datei noch die Aufrufe der Funktionen, dann hast du das, was du brauchst.
Habt ihr eigentlich mal den Beitrag oben gelesen? Das sind genau die Lösungen, die er nicht sucht!
01/24/2014 20:43 adistoe#9
[Only registered and activated users can see links. Click Here To Register...]
Hoffe, das hilft dir weiter :)
01/24/2014 20:51 Heigan#10
Binde dir jQuery ein. Benutz die jQuery Ajax-Funktionen.
Wer PHP kann wird mir JavaScript keine großen Probleme haben. Und so schlimm wie früher ist das auch nicht mehr ;) Heutzutage wird JavaScript sowieso immer mehr kommen. Besser du eignest es dir an.
01/24/2014 20:53 Crossside#11
einfachste wäre du nutzt nicht Php sondern ein Javascript:

Quote:
<script>
function refresh()
{
document.location.href=document.location.href;
}
setTimeout(refresh,ZEIT_IN_MS);
</script>
Oder das andere vorgeschlagene HTML Script (Meta blah blah..weist schon).
01/25/2014 15:24 .Shalom#12
Stichwort: Ajax.