So na dann mal los :)
Okey also als erstes nimm ich die Template Datei und rufe beim laden der Datei eine Funktion auf, die die Rechte setzen soll.
Code:
...
<title>Dein Template</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body onload="setze_rechte()">
<div>
<input type="submit" name="edit" id="edit" value="edit" disabled="disabled" />
</div>
...
Wie du siehst binde ich die Datei ajax.js ein. In der ist die Funktion setze_rechte() gespeichert.
Code:
function setze_rechte()
{
var ServerAnfrage;
var ServerAntwort;
/* ==================== Erstelle ServerAnfrage Objekt ==================== */
if(window.XMLHttpRequest)
{
ServerAnfrage = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try
{
ServerAnfrage = new ActiveXObject("Msxml.XMLHTTP");
}
catch(e)
{
try
{
ServerAnfrage = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
ServerAnfrage = false;
}
}
}
else
{
ServerAnfrage = false;
}
/* ==================== Falls keine Objekt erstellt wurden konnte ==================== */
if(!ServerAnfrage)
{
alert("Leider unterstuetzt ihr Browser kein Ajax");
}
else
{
/* ==================== ServerAnfrage senden und Antwort verarbeiten ==================== */
ServerAnfrage.open("GET", "diePhpDatei.php", true);
ServerAnfrage.onreadystatechange = function()
{
if(ServerAnfrage.readyState == 4)
{
if(ServerAnfrage.status == 200)
{
if(ServerAnfrage.responseText == "IS_ADMIN")
{
document.getElementById("edit").disabled = "";
}
else
{
document.getElementById("edit").disabled = "disabled";
}
}
else
{
alert("Leider konnten ihre Rechte nicht ermittelt werden");
}
}
}
ServerAnfrage.send(null);
}
}
Ich überprüfe als erstes ob der Browser XMLHttpRequests unterstützt, womit ich Anfragen senden kann. Die try - catch Blöcke, die darauf folgen, sind für andere Browser wie den Internet Explorer.
Wenn alles gut gegangen ist, hast du nun in der Variable ServerAnfrage ein Requestobjekt.
Als nächstes eröffne ich eine Anfrage an die Datei "meinPhpDatei.php", in welcher überprüft werden soll, ob der User ein Admin ist. Übergeben werden
- Der Name der Datei
- Die Art der Anfrage, möglich sind "GET", "POST", "HEAD".
- (Optional) Hier wären auch noch Variablen möglich, die ich sende via Post,
- (Optional) Hier gebe ich nur an, dass das Script nicht unterbrochen werden soll.
Jetzt definiere ich eine Funktion, die ausgeführt werden soll, wenn der Server eine Anfrage schickt.
Ich Überprüfe die Antwort auf den Fortschritt mit ServerAnfrage.readyState, dort kann der Server nur 5 Antworten schicken:
- 0: uninitialized: Anfrage noch net abgeschickt.
- 1: loading: Der Server läd.
- 2: loaded: Der Server hat fertig geladen.
- 3: interactive: Die ersten Dateien sind geparst, und es kann schon zugegriffen werden.
- 4: complete: alles Fertig.
Anschließen überprüfe ich noch den Status. Dieser Wert kann der Gleiche sein, wie die du schon kennst:
Beispiele:
- 200 = Alles Okey
- 404 = Nicht gefunden.
- 500 = Server Error
- 401 = Zugriff verwährt
- ...
Wenn alles Korrekt abgewickelt wurde, kann ich die Antwort des Servers mit ServerAnfrage.responseText abrufen. In dem Fall gibt das Script entweder IS_ADMIN zurück oder IS_NOT_ADMIN.
Jetzt fehlt nur noch "diePhpDatei.php", welche testen soll, ob der User ein Admin ist.
PHP:
<?php
...
if($e_user_name == "admin")
{
echo "IS_ADMIN";
}
else
{
echo "IS_NOT_ADMIN";
}
?>
...
Hier musst du gucken, wie du auf den ADmin überprüfst.
Als letzes haste hier noch 2 Tests:
Ich hoffe es hilft dir, positive Bewertungen sind wilkommen ;)
greez,
Web_spider