User-Profil mit PHP und MySQL erstellen

PHP:
<?php
$ip	= '192.168.0.1';	// Ip-Adresse, kann auch eine Webseite sein, jedoch ohne http://
$port	= 80;			 // Port

if(($sStatus = fsockopen($ip, $port)) !== false){
	echo 'Online!';
	fclose($sStatus);
} else{
	echo 'Offline!';
}
?>

Wenn du also eingeloggt bist, dann schreibst du den Status des Users in die Session, z.B. so:
PHP:
$_SESSION['userStatus'] = $row->userStatus; // Wenn dein Feld so heißt

Dann kannst du auf den Seiten prüfen, ob der User sie sehen darf, z.B. so:
PHP:
if($_SESSION['userStatus'] == 1){
echo "Adminseite";
} else{
echo "Kein Zutritt!";
}

Willst du für die einzelnen "Benutzergruppen", wie z.B. Admin, User und Gast, unterschiedliche Menüs einbinden, dann machst du es, wie Hunab-Ku gesagt hat, also so:
PHP:
switch($_SESSION['userStatus']){
case 1:
	include('adminMenue.php');
	break;
case 2:
	include('userMenue.php');
	break;
case 3:
	include('gastMenue.php');
	break;
default:
	include('gastMenue.php');
}
 
Zuletzt bearbeitet:
Oder Du hast ein Menue-Script und baust darin das Menue entsprechend den Rechten auf.
Ich arbeite bei mir mit User-Levels und da sieht das dann ungefaehr so aus:
PHP:
if ($user['userlevel']==255)
{
 //Admin-Menu
}
if ($user['userlevel']>0)
{
 //User-Menu
}
//Public-Menu
 
hi

Danke.

Habe gerade das mit dem Status getestet und das kam raus.
Das ist der Fehler der beim aufrug rausgekommen ist:
Code:
Warning: fsockopen() [function.fsockopen]: unable to connect to 192.168.0.1:80 in /home/test/index.php on line 5
Offline
und so habe ich es in die index.php eingebaut:
index.php
Code:
<?php
$ip    = '192.168.0.1';    // Ip-Adresse, kann auch eine Webseite sein, jedoch ohne http://
$port    = 80;             // Port

if(($sStatus = fsockopen($ip, $port)) !== false){
    echo 'Online!';
    fclose($sStatus);
} else{
    echo 'Offline!';
}
?>

Das gleiche problem habe ich bei den anderen skripts.

P.S.: Die IP und den Port habe ich auch angepast.


Den rest mit dem Links ( Menü ) mache ich später.
 
Aja, dann ist der Server halt offline oder es ist ein anderer Fehler, nimm mal folgenden Code:
PHP:
<?php
$ip	 = '192.168.0.1';	// Ip-Adresse, kann auch eine Webseite sein, jedoch ohne http://
$port   = 80;			   // Port
$timeout= 5;				// Timeout in Sekunden

if(($sStatus = @fsockopen($ip, $port,$errNo, $errStr, $timeout)) !== false){
	echo 'Online!';
	fclose($sStatus);
} else{
	echo 'Offline!.<br />';
	echo 'Fehler['.$errNo.']: ' . $errStr;
}
?>
 
Bin auf der suche nach einem Server-Status code für meine Homepage.
Und da fand ich den hier und gleich habe ich den getestet aber der geht nicht so wie ich es brauche.
Also.
Ich gebe meine Daten da ein und rufe es dann mit dem InternetExplorer auf.
Und da kommt das der Server Offline ist, wo der aber Online ist.
Habe dann die IP gelassen aber Den Port in 21 oder 80 geändert und man sehe es kommt Online.
Also ich habe einen CS 1.6 Server auf einem root-Server laufen und die Homepage auf einem anderen root-Server.

Wie kann ich es machen das der CS 1.6 Server Status auch engezeigt wird ?
Oder wo Ran kann es den liegen ?

Würde mich über Hilfe freun.
 
Hi, willkommen im Forum.

Laeuft CS ueber TCP oder UDP?
Bei UDP reicht es nicht aus einfach zu versuchen zu "verbinden" (ist nicht ganz das richtige Wort, da die Kommunikation bei UDP verbindungsfrei ablaeuft). Hier muss wirklich ein Datenaustausch stattfinden um sicher zu gehen, dass der Port offen ist und der Server laeuft.
 
Laeuft CS ueber TCP oder UDP?

Was der unterschied ?

Und wie sehe ich das ?

Der CS 1.6 Server wird mit der IP im Start Befell gestartet.

Wie kann man es machen das der CS 1.6 Server mit TCP ( glaube das er damit laufen soll ) leuft ?
 
viper33 hat gesagt.:
Was der unterschied ?
TCP ist verbindungsgebunden, das heisst, dass zwischen den Rechnern eine richtige Verbindung aufgebaut wird und zum Schluss getrennt wird. Hierbei kommt es vor allem darauf an, dass alle Daten zuverlaessig uebertragen werden und weniger auf die Geschwindigkeit. Geht ein Paket unterwegs verloren schickt der Empfaenger eine Info, dass das Paket nochmal geschickt werden muss.
UDP arbeitet ohne Verbindung und auch ohne diese Kontrolle ob ein Paket angekommen ist. Hier ist die Geschwindigkeit im Vordergrund. Pakete werden einfach geschickt und es ist nicht so wichtig ob nun ein Paket mal nicht ankommt.
Wenn ich mich recht erinner laeuft z.B. UnrealTournament (und eben auch die Spiele die auf der UT-Engine basieren) ueber UDP.

viper33 hat gesagt.:
Und wie sehe ich das ?
Das sollte sich im Internet herausfinden lassen, oder auch mit einem simplen Port-Scan.

viper33 hat gesagt.:
Wie kann man es machen das der CS 1.6 Server mit TCP ( glaube das er damit laufen soll ) leuft ?
Ich denke nicht, dass man sich das aussuchen kann, entweder laeuft das ganze ueber TCP oder eben nicht.
 
Allso

Ich kann auf den Server drauf und auch gut spielen, habe auch gut Pings.
Ist auch Stabiel.

Der Server wird auch bei CS in der Server Lieste anhezeigt und ist auch beliebt da immer gleichzeitig ca. 20 User drauf sind.

Aber ich kann den Status vom Server nicht abfragen.

Auf dem Root-Server wo der CS-Server drauf ist ist Linux Debian drauf.

Was ich mir gedacht habe.
Kann es vieleicht sein das Debian eine Standart Firewal hat die den TCP verkar blokt ?

Es muss doch gehen das ich den Status vom Server auslessen kann da es ja Cs-Server Status Skripte gibt aber die gehen bei mir nicht.

#EDIT#
Hier ist was von: http://counter-strike.de/content/server/linux_steam.php

Solltet ihr den Server hinter einer Firewall oder einem Router betreiben, muss der Serverport (Standard ist UDP 27015) von dort auf den CS-Server geforwarded werden.
Ebenso müssen diese Ports geöffnet sein:

UDP 1200
UDP 27000 to 27015 inclusive
TCP 27030 to 27039 inclusive

#/EDIT\#
 
Zuletzt bearbeitet:
Also laut Deinem Text da scheint das ganze ja, wie UT, ueber UDP zu laufen.
Im Grunde nicht verwunderlich da bei Spielen im Grunde eher die Performance als die Zuverlaessigkeit im Vordergrund steht.
Dementsprechend muss bei einer Verbindung mit fsockopen() noch udp:// vor die Addresse des Servers gesetzt werden. Und, wie zuvor schon angesprochen, muss ein Datenaustausch stattfinden um sicher zu sein, dass der Game-Server auch wirklich laeuft.

Als ich mal Debian testweise installiert hab hab ich nichts davon gesehen, dass da standardmaessig ein Paketfilter eingerichtet war. Da Du sagst, dass es ein Root-Server ist solltest Du das ganz einfach ueberpruefen koennen. Mittels iptables -L kannst Du die Filterregeln sehen.
 

Neue Beiträge

Zurück