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

Frage Entwicklung PHP

Mitglied: escape

escape (Level 1) - Jetzt verbinden

26.04.2006, aktualisiert 04.05.2006, 5024 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
JavaScript
Automatisch für Links das Title-Attribut setzen
gelöst Frage von d4shoerncheNJavaScript6 Kommentare

Wünsche Euch einen schönen und sonnigen Tag, hoffe bei Euch ist das Wetter auch so wie hier in Hannover? ...

Windows Server
Userspezifische Einstellungen in RDP Sitzung
Frage von ewild13Windows Server3 Kommentare

Hallo, habe ein kleines Problem und sehe wahrscheinlich vor lauter Baeume den Wald nicht. Benutze einen Virtuellen Server mit ...

VB for Applications
Excel VBA Link hinzufügen funktioniert nur, wenn ich im Code einen Haltepunkt setze
gelöst Frage von YotYotVB for Applications4 Kommentare

Moin! Ich habe in Excel 2010 eine Tabelle mit rund 1200 Zeilen (dynamisch), wo in einer Spalte automatisch Hyperlinks ...

Notebook & Zubehör
Netzwerkkarte hat keinen Link
Frage von Windows10GegnerNotebook & Zubehör10 Kommentare

Hallo, ich habe derzeit an meinem ZBook 15 keine Verbindung über die Ethernet Buchse. Die Buchse hat bis vor ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 4 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 11 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 22 StundenWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless16 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...