Userspezifischer Link setzen
Hallo erstmal
Komme gleich zum Kern des Problems:
Ich habe ein PHP-Script für ein Login mit Benutzer- und Passwortabfrage das mit Cookies arbeitet. Geht auch alles einwandfrei.
Die Page ist so gemacht, dass nach dem Login jeder user eine eigene individuelle Startseite erhält (das Loginscript leitet den User auf die entsprechende Seite weiter). Alle anderen Seiten, die dann von dort aus verlinkt sind, sind für alle user gleich.
Nun mein Problem:
Wie kann ich einen "Home"-Button setzen, so dass jeder User jeweils wieder auf seine EIGENE,individuelle Startseite zurückkehren kann?
Für eure Hilfe bin ich jetzt schon sehr dankbar.
es grüsst
escape
ps: eventuell hilft das Login-Script weiter.
so das wars, hoffend auf Hilfe!
Komme gleich zum Kern des Problems:
Ich habe ein PHP-Script für ein Login mit Benutzer- und Passwortabfrage das mit Cookies arbeitet. Geht auch alles einwandfrei.
Die Page ist so gemacht, dass nach dem Login jeder user eine eigene individuelle Startseite erhält (das Loginscript leitet den User auf die entsprechende Seite weiter). Alle anderen Seiten, die dann von dort aus verlinkt sind, sind für alle user gleich.
Nun mein Problem:
Wie kann ich einen "Home"-Button setzen, so dass jeder User jeweils wieder auf seine EIGENE,individuelle Startseite zurückkehren kann?
Für eure Hilfe bin ich jetzt schon sehr dankbar.
es grüsst
escape
ps: eventuell hilft das Login-Script weiter.
var successpage = "leer.php"; // The page users go to after login, if they have no personal page.
var loginpage = "/index.php"; //Change this to the page the login panel is on.
var users = new Array();
// Usernames, Passwords & User Pages
users = new Array("user1","passw1","seite1.php");
users[1] = new Array("user2","passw2","seite2.php");
users[2] = new Array("user3","passw2","seite3.php");
// Login Functions
function login(username,password){
var member = null;
var loggedin = 0;
var members = users.length;
for(x=0;x<members && !loggedin; x++){
if((username==users[x])&&(password==users[x][1])){
loggedin = 1;
member = x;
break; // User validated, terminate the for loop.
}
}
if(loggedin==1){
if(users[member][2] != "") {
successpage = users[member][2];
}
setCookie("login",1);
if (top.location.href != location.href){
location.href = successpage;
}else{
top.location.href = successpage;
}
}else{
alert('Zugang verweigert, Username oder Passwort falsch!');
}
}
function logout() {
deleteCookie("login");
if (top.location.href != location.href){
location.href = loginpage;
}else{
top.location.href = loginpage;
}
}
// Cookie Handler
var ckTemp = document.cookie;
function setCookie(name, value) {
if (value != null && value != "")
document.cookie=name + "=" + escape(value) + ";";
ckTemp = document.cookie;
}
function deleteCookie(name) {
if (getCookie(name)) {
document.cookie = name + "=" +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
function getCookie(name) {
var index = ckTemp.indexOf(name + "=");
if(index == -1) return null;
index = ckTemp.indexOf("=", index) + 1;
var endstr = ckTemp.indexOf(";", index);
if (endstr == -1) endstr = ckTemp.length;
return unescape(ckTemp.substring(index, endstr));
}
function checkCookie() {
var temp = getCookie("login");
if(!temp==1) {
alert('Zugriff verweigert, bitte logen Sie sich ein!');
if(top.location.href != location.href){
location.href = loginpage;
}else{
top.location.href = loginpage;
}
}
}
//Login Panel
function BuildPanel() {
document.write('<form name="logon"><table align="center" border="0"><tr><td align="right">');
document.write('<small><font face="Verdana">Username:</font></small></td>');
document.write('<td><small><font face="Verdana"><input type="text" name="username" size="20"></font></small></td></tr>');
document.write('<tr><td align="center"><small><font face="Verdana">Passwort:</font></small></td>');
document.write('<td><small><font face="Verdana"><input type="password" name="password" size="20"></font></small></td></tr>');
if(imgSubmit == ""){
document.write('<tr><td align="right" colspan="2"><p><input type="button" value="Logon" name="Logon" onclick="login(username.value,password.value)">');
} else {
document.write('<tr><td align="center" colspan="2"><p><input type="image" src="'+imgSubmit+'" name="Logon" onclick="login(username.value,password.value)">');
}
if(imgReset == ""){
document.write('<input type="reset" value="Reset" name="Reset">');
} else {
document.write('<input type="image" src="'+imgReset+'" name="Reset" onclick="logon.reset();">');
}
document.write('</p></td></tr></table></form>');
}
so das wars, hoffend auf Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 31239
Url: https://administrator.de/contentid/31239
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
14 Kommentare
Neuester Kommentar
Alternativ hast Du auch die Möglichkeit die Variablen anstatt in der Session, im Cookie zu speichern.
Kleines Beispiel
<snipp>
setCookie("login",1);
//setze Userhomepahe in Cookie
setCookie("homepage", successpage);
if (top.location.href != location.href){
location.href = successpage;
}else{
top.location.href = successpage;
}
</snipp>
Den Wert kannst Du dann wieder aus dem Cookie holen, wenn Du ihn brauchst.
Hoffe es ist verständlich
Lobo
Kleines Beispiel
<snipp>
setCookie("login",1);
//setze Userhomepahe in Cookie
setCookie("homepage", successpage);
if (top.location.href != location.href){
location.href = successpage;
}else{
top.location.href = successpage;
}
</snipp>
Den Wert kannst Du dann wieder aus dem Cookie holen, wenn Du ihn brauchst.
Hoffe es ist verständlich
Lobo
Hi,
natürlich...
Also, eine gute Beschreibung einer Session findest du hier:
http://www.tutorials.de/forum/php/2046-suche-tuts-zu-php-und-session.ht ...
Nun, ein kleines Code-Besipiel:
Um den Namen auf einer anderen Seite abzufragen:
Ich hoffe, ich konnte dir ein bisschen weiterhelfen...
Wenn weitere Fragen sind, einfach posten.
pi
natürlich...
Also, eine gute Beschreibung einer Session findest du hier:
http://www.tutorials.de/forum/php/2046-suche-tuts-zu-php-und-session.ht ...
Nun, ein kleines Code-Besipiel:
<?php
//Bei deinem ersten Aufruf startest du eine Session und speicherst den Namen ab
session_start(); //Die Session wird gestartet
$_SESSION[ 'username' ] = 'dummyUser'; //Namen setzen
?>
Um den Namen auf einer anderen Seite abzufragen:
session_start();
if( $_SESSION[ 'username' ] == 'dummyUser' ) {
//hier Code für den Userspezifischen-Link..
}
Ich hoffe, ich konnte dir ein bisschen weiterhelfen...
Wenn weitere Fragen sind, einfach posten.
pi
Den Code für das Auslesen des Cookie hast Du bereits; daher bin ich nicht näher drauf eingegangen....
--> function getCookie(name)
Diese liefert Dir den Inhalt des Cookie zurück und da der Cookie clientseitig gespeichert wird, hast Du auch keine Probleme mit der abgrenzung der einzelnen User.
Allerdings muss ich pi Recht geben, die Variante mit den Sessions ist die schönere und sicher auch in grösseren Applikationen die leistungsfähigere.
Lobo
--> function getCookie(name)
Diese liefert Dir den Inhalt des Cookie zurück und da der Cookie clientseitig gespeichert wird, hast Du auch keine Probleme mit der abgrenzung der einzelnen User.
Allerdings muss ich pi Recht geben, die Variante mit den Sessions ist die schönere und sicher auch in grösseren Applikationen die leistungsfähigere.
Lobo
Hi,
du brauchst das session_register nicht.
Schau dir mal folgenden Code an:
index.php
test.php
Du musst einfach einen Wert in eine Variable speichern (mit $_SESSION[ 'Variablenname' ] = 'irgendein Wert von der Variable')
Dann kannst du ihn auch einfach so wieder auslesen.
Ist die Variable nicht gesetzt, steht auch nichts drin.
greetz,
pi
du brauchst das session_register nicht.
Schau dir mal folgenden Code an:
index.php
<?php
session_start();
$_SESSION[ 'username' ] = 'dummy';
echo( '<a href="test.php">weiter...</a>' );
?>
<?php
session_start();
echo( 'Username mit Session ausgelesen: '.$_SESSION['username'] );
?>
Dann kannst du ihn auch einfach so wieder auslesen.
Ist die Variable nicht gesetzt, steht auch nichts drin.
greetz,
pi
Freut mich, dass es geht!
Noch ein kleiner Tip:
Es klingt so, als hättest du in jede der Seiten deinen if...elseif...elseif...-Code reinkopiert.
Einfacher und besser zu warten (falls mal ein User hinzukommt, müsstest du ja sämtliche Seiten ändern) ist es, deine session_start...if...elseif...elsif...-Code in eine Datei zu schreiben (z.B. userCheck.php) und diese dann in jede der Seiten, die es benötigt, per include einzufügen.
Somit musst du nur diese eine Datei ändern, falls sich mal was tut
Beispiel:
Noch ein kleiner Tip:
Es klingt so, als hättest du in jede der Seiten deinen if...elseif...elseif...-Code reinkopiert.
Einfacher und besser zu warten (falls mal ein User hinzukommt, müsstest du ja sämtliche Seiten ändern) ist es, deine session_start...if...elseif...elsif...-Code in eine Datei zu schreiben (z.B. userCheck.php) und diese dann in jede der Seiten, die es benötigt, per include einzufügen.
Somit musst du nur diese eine Datei ändern, falls sich mal was tut
Beispiel:
//userCheck.php
session_start();
if($_SESSION['User1']) echo '<a href="seite1.php?' . SID . '"></a>';
elseif ($_SESSION['User2']) echo '<a href="seite2.php?' . SID . '"></a>';
elseif ($_SESSION['User3']) echo '<a href="seite3.php?' . SID . '"></a>';
//andere Seite
include( "standards/userCheck.php" ) //je nach Pfadstrukutr halt...
...weiterer Code