Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Userspezifischer Link setzen

Mitglied: escape

escape (Level 1) - Jetzt verbinden

26.04.2006, aktualisiert 04.05.2006, 5067 Aufrufe, 14 Kommentare

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.

01.
var successpage = "leer.php"; // The page users go to after login, if they have no personal page.
02.
var loginpage = "/index.php"; //Change this to the page the login panel is on.
03.

04.
var users = new Array();
05.
// Usernames, Passwords & User Pages
06.
users[0] = new Array("user1","passw1","seite1.php");
07.
users[1] = new Array("user2","passw2","seite2.php");
08.
users[2] = new Array("user3","passw2","seite3.php");
09.

10.
// Login Functions
11.
function login(username,password){
12.
var member = null;
13.
var loggedin = 0;
14.
var members = users.length;
15.
for(x=0;x<members && !loggedin; x++){
16.
if((username==users[x][0])&&(password==users[x][1])){
17.
loggedin = 1;
18.
member = x;
19.
break; // User validated, terminate the for loop.
20.
}
21.
} 
22.

23.
if(loggedin==1){
24.
if(users[member][2] != "") {
25.
successpage = users[member][2];
26.
}
27.
setCookie("login",1);
28.
if (top.location.href != location.href){
29.
location.href = successpage; 
30.
}else{
31.
top.location.href = successpage; 
32.
}
33.
}else{
34.
alert('Zugang verweigert, Username oder Passwort falsch!');
35.
} 
36.
}
37.

38.
function logout() {
39.
deleteCookie("login");
40.
if (top.location.href != location.href){
41.
location.href = loginpage; 
42.
}else{
43.
top.location.href = loginpage; 
44.
}
45.
}
46.

47.
// Cookie Handler
48.

49.
var ckTemp = document.cookie;
50.

51.
function setCookie(name, value) { 
52.
if (value != null && value != "")
53.
document.cookie=name + "=" + escape(value) + ";";
54.
ckTemp = document.cookie;
55.
}
56.

57.
function deleteCookie(name) {
58.
if (getCookie(name)) {
59.
document.cookie = name + "=" +
60.
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
61.
}
62.
}
63.

64.
function getCookie(name) { 
65.
var index = ckTemp.indexOf(name + "=");
66.
if(index == -1) return null;
67.
index = ckTemp.indexOf("=", index) + 1;
68.
var endstr = ckTemp.indexOf(";", index);
69.
if (endstr == -1) endstr = ckTemp.length;
70.
return unescape(ckTemp.substring(index, endstr));
71.
}
72.

73.
function checkCookie() {
74.
var temp = getCookie("login");
75.
if(!temp==1) {
76.
alert('Zugriff verweigert, bitte logen Sie sich ein!'); 
77.
if(top.location.href != location.href){
78.
location.href = loginpage; 
79.
}else{
80.
top.location.href = loginpage; 
81.
}
82.
}
83.
}
84.

85.
//Login Panel
86.

87.
function BuildPanel() {
88.
document.write('<form name="logon"><table align="center" border="0"><tr><td align="right">');
89.
document.write('<small><font face="Verdana">Username:</font></small></td>');
90.
document.write('<td><small><font face="Verdana"><input type="text" name="username" size="20"></font></small></td></tr>');
91.
document.write('<tr><td align="center"><small><font face="Verdana">Passwort:</font></small></td>');
92.
document.write('<td><small><font face="Verdana"><input type="password" name="password" size="20"></font></small></td></tr>');
93.
if(imgSubmit == ""){
94.
document.write('<tr><td align="right" colspan="2"><p><input type="button" value="Logon" name="Logon" onclick="login(username.value,password.value)">'); 
95.
} else {
96.
document.write('<tr><td align="center" colspan="2"><p><input type="image" src="'+imgSubmit+'" name="Logon" onclick="login(username.value,password.value)">');
97.
}
98.
if(imgReset == ""){
99.
document.write('<input type="reset" value="Reset" name="Reset">');
100.
} else {
101.
document.write('<input type="image" src="'+imgReset+'" name="Reset" onclick="logon.reset();">');
102.
}
103.
document.write('</p></td></tr></table></form>');
104.
}


so das wars, hoffend auf Hilfe!
Mitglied: pi314
27.04.2006 um 15:14 Uhr
Hi,

wie wäre es mit einer Session, die du bei der Anmeldung startest und dann in einer Session-Variable den Usernamen ablegst.

Dann kannst du bei jeder Seite prüfen (per include oder so), ob eine Session existiert und dann je nach Username einen eigenen Link setzen...

so long,
pi
Bitte warten ..
Mitglied: escape
27.04.2006 um 18:58 Uhr
hi
Danke für die Antwort, dachte ich mir fasst, dass es mit einer Session gehen muss (mit viel googeln rausgefunden). Nur leider habe ich keinen Plan wie und wo ich es machen kann.
Bin leider ein totaler Anfänger.
Könntest du mir eventuell helfen?
Bitte warten ..
Mitglied: lobotomie
28.04.2006 um 13:11 Uhr
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
Bitte warten ..
Mitglied: pi314
28.04.2006 um 16:24 Uhr
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:
01.
<?php
02.
   //Bei deinem ersten Aufruf startest du eine Session und speicherst den Namen ab
03.
   session_start();  //Die Session wird gestartet
04.
   $_SESSION[ 'username' ] = 'dummyUser';  //Namen setzen
05.
 ?>
Um den Namen auf einer anderen Seite abzufragen:
01.
session_start();
02.
if( $_SESSION[ 'username' ] == 'dummyUser' ) {
03.
   //hier Code für den Userspezifischen-Link..
04.
}
Ich hoffe, ich konnte dir ein bisschen weiterhelfen...
Wenn weitere Fragen sind, einfach posten.

pi
Bitte warten ..
Mitglied: escape
28.04.2006 um 16:51 Uhr
Um den Namen auf einer anderen Seite
abzufragen:
01.
session_start();
02.
> if( $_SESSION[ 'username' ] == 'dummyUser' )
03.
> {
04.
>    //hier Code für den
05.
> Userspezifischen-Link..
06.
> }
07.
> 

Danke dir vielmals für deine Antwort, konnte es nachvollziehen.

Jedoch habe ich noch eine Frage, was muss ich noch zusätzlich eintragen, denn ich habe ja etwa 4 User, die sobald sie ihre Startsiete verlassen alle auf die selben Seiten weitersurfen und eben ich brauche ja dann ein "home" button.
Deine Abfrage bezieht sich ja immer nur auf den einen User.. Ich muss aber den Code in allen unterseiten eintragen und dort muss ja immer überprüft werden wer gerade ohnlie ist.

Wie sieht dann noch bitte der Eintrag für
//hier Code für den
Userspezifischen-Link..
aus.

Ich hoffe ich nerve nicht, aber ich denke es sind sicherlich die letzten Fragen.
Danke sehr
Bitte warten ..
Mitglied: escape
28.04.2006 um 16:53 Uhr
Den Wert kannst Du dann wieder aus dem
Cookie holen, wenn Du ihn brauchst.

Als erstes möchte ich mich auch bei dir für deine Antwort bedanken.

Kannst du mit bitte erklären wie der Code lautet damit ich den Cookie wieder auslesen kann. Bzw. Wie sehen dann der Link für den "home-Button" aus.

Merci vielmols
Bitte warten ..
Mitglied: escape
28.04.2006 um 19:18 Uhr
so ich habe dies gemacht:
nachdem ich den obigen Link zur Session erklärung gelesen habe

auf der userindividuellen Seite das eingebaut:

01.

02.
   //Bei deinem ersten Aufruf startest du eine Session und speicherst den Namen ab
03.
   session_start();  //Die Session wird gestartet
04.
   $_SESSION[ 'username' ] = 'User1';  //Namen setzen
05.
   session_register("username"); //Ist das richtig so um zu speichern?
06.

07.
auf den allgemeinen Seite für den Home Link dies (erstamls für 2User)

01.
session_start();
02.
if(!session_is_registered('username') == "User1") 
03.
{
04.
echo "<a href='../userseite1.php'>Startseite</a>"; //hier Code für den Userspezifischen-Link..
05.
}
06.
else
07.
    {
08.
echo "<a href='../userseite2.php'>Startseite</a>"; //hier Code für den Userspezifischen-Link..   
09.
 }
10.
geht aber immer noch nicht, denn es erhalten beide immer den gleichen Link zur Home.

Was ist hier echt noch falsch
Bitte warten ..
Mitglied: pi314
29.04.2006 um 15:56 Uhr
hi,

hab einen Beitrag zum Thema Cookie geschrieben. Sollte eigentlich ein Tuorial werden, ist es aus irgendwelchen Gründen aber nicht , deswegen hier kein Link.

Schau doch mal unter Entwicklung>PHP nach...

so long,
pi
Bitte warten ..
Mitglied: escape
29.04.2006 um 16:09 Uhr
hallo @pi314

das mit dem Cookie ist denke ich eh gestorben... mit gefällt die erste Varieante von dir viel besser.
Aber wie ich in meinem letzten Beitrag geschrieben habe, komme ich nicht weiter, habe mir den Link den du gepostet hast durchgelesen und eben zum obigen ergebis gekommen, aber es ist immer noch ein Fehler drin..

Kannst du mit bitte helfen. Danke


<<so ich habe dies gemacht:
<<nachdem ich den obigen Link zur Session erklärung gelesen habe

<<auf der userindividuellen Seite das eingebaut:


01.

02.

03.
   //Bei deinem ersten Aufruf startest du eine Session und speicherst den Namen ab
04.
   session_start();  //Die Session wird gestartet
05.
   $_SESSION[ 'username' ] = 'User1';  //Namen setzen
06.
   session_register("username"); //Ist das richtig so um zu speichern?
07.
<<auf den allgemeinen Seite für den Home Link dies (erstamls für 2User)


01.

02.
session_start();
03.
if(!session_is_registered('username') == "User1") 
04.
{
05.
echo "<a href='../userseite1.php'>Startseite</a>"; //hier Code für den Userspezifischen-Link..
06.
}
07.
else
08.
    {
09.
echo "<a href='../userseite2.php'>Startseite</a>"; //hier Code für den Userspezifischen-Link..   
10.
 }
11.
<<geht aber immer noch nicht, denn es erhalten beide immer den gleichen Link zur Home.

<<Was ist hier echt noch falsch
Bitte warten ..
Mitglied: lobotomie
02.05.2006 um 15:07 Uhr
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
Bitte warten ..
Mitglied: pi314
02.05.2006 um 18:45 Uhr
Hi,

du brauchst das session_register nicht.

Schau dir mal folgenden Code an:

index.php
01.
<?php
02.
	session_start();
03.
	$_SESSION[ 'username' ] = 'dummy';
04.
	echo( '<a href="test.php">weiter...</a>' );
05.
 ?>
test.php
01.
<?php
02.
	session_start();
03.
	echo( 'Username mit Session ausgelesen: '.$_SESSION['username'] );
04.
 ?>
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
Bitte warten ..
Mitglied: escape
03.05.2006 um 22:07 Uhr
Salü
Ich bedanke mich bei allen für die Hilfe. Alles geht wie ich es wollte..
Daher zeige ich hier mal schnell wie ich es gelöst habe:

Auf der Seite die Jeder User für sich alleine hat, wird eine Session gestartet

01.

02.

03.
session_start(); 
04.
$_SESSION['User1'] = 'User1';
05.

06.

Dann wird in allen anderen Seiten dies eingegeben:

01.

02.
session_start();
03.
if($_SESSION['User1']) echo '<a href="seite1.php?' . SID . '"></a>';
04.
elseif ($_SESSION['User2']) echo '<a href="seite2.php?' . SID . '"></a>';
05.
elseif ($_SESSION['User3']) echo '<a href="seite3.php?' . SID . '"></a>';
06.
natürlich soviel wie man User hat, der Name User1 usw. kann geändert werden

Die Links sehen dann bei mir so aus, damit wird immer die Session übergeben:

01.

02.

03.
echo '<a href="eineseite.php?' . SID . '"></a>'; 
04.

05.
Bitte warten ..
Mitglied: pi314
04.05.2006 um 11:42 Uhr
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:
01.
//userCheck.php
02.
session_start();
03.
if($_SESSION['User1']) echo '<a href="seite1.php?' . SID . '"></a>';
04.
elseif ($_SESSION['User2']) echo '<a href="seite2.php?' . SID . '"></a>';
05.
elseif ($_SESSION['User3']) echo '<a href="seite3.php?' . SID . '"></a>';
01.
//andere Seite
02.
include( "standards/userCheck.php" ) //je nach Pfadstrukutr halt...
03.
...weiterer Code
Bitte warten ..
Mitglied: escape
04.05.2006 um 12:05 Uhr


Danke für den Tipp, manchmal sieht man vor lauter Bäumen den Wald nicht... ich kenne diesen Include Befehl, wäre aber nie auf die Idee gekommen in so zu verwenden...
Echt geil, merci nochmals!

Gruss
escape
Bitte warten ..
Ähnliche Inhalte
HTML
Link nicht vollständig
Frage von jensgebkenHTML33 Kommentare

Hallo Gemeinschaft, ich erstelle mit Word einen Serienbrief, den ich per Mail versende. Nun mein Problem der Wordserienbrief holt ...

Outlook & Mail
Outlook Link Problem
gelöst Frage von bytetixOutlook & Mail5 Kommentare

Hallo zusammen, mir ist ein kleines Problem bzgl. Outlook und Dateifreigaben auf dem Fileserver (Win Server 2012 R2) aufgefallen. ...

Batch & Shell
Symbolic Link erkennen
gelöst Frage von zimbosmurfBatch & Shell5 Kommentare

Hallo! Gibt es eine Möglichkeit, in einer Windows-Batchdatei zu erkennen, ob ein bestimmter Pfad ein "echter" Odner" oder ein ...

Microsoft Office
Link auf Tabellenblatt
gelöst Frage von sardldbMicrosoft Office2 Kommentare

Hallo Zusammen Ich habe eine Execl Mappe mit mehreren Tabellenblätter (alle Sonntage im Jahr 2015). In der ersten Tabelle ...

Neue Wissensbeiträge
Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 10 StundenWindows Mobile

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 2 TagenInternet5 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 2 TagenWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 3 TagenWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Heiß diskutierte Inhalte
TK-Netze & Geräte
TAPI auf einem Win2016Server installieren und einrichten
Frage von wstabelTK-Netze & Geräte32 Kommentare

Hallo liebe Admins, ich habe folgende Situation: 1 Windows Server 2016 Standard als DC 1 SNOM 710 IP-Telefon 1 ...

Off Topic
Darf ich ein Forum erstellen das Produkte eines Herstellers betrifft?
Frage von cyberwallOff Topic9 Kommentare

Hallo Community, ich habe da eine "rechtliche" bzw. allgemeine Frage zum erstellen von Foren. Darf ich als "normale Person" ...

E-Mail
Rechtssichere Archivierung von emails
Frage von gerd33E-Mail7 Kommentare

Hallo zusammen, bin gerade dabei, eine revisions- und rechtsichere email-archivierung aucf meinem Server zu projektieren. Da eigentlich nur ich ...

Router & Routing
Unbekannte IPv4 Adresse im Routerprotokoll(Portweiterleitung)
gelöst Frage von tklustigRouter & Routing6 Kommentare

Hallo Leute, folgender Screenshot(ScanVersusPortForwarding.jpg) zeigt die im Routerprotokoll aufgezeigten Portweiterleitungen und alle von einem IPScanner eruierten IPv4 Adressen in ...