Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4974 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Switche und Hubs
gelöst 2 VLANs, tragged und mit link aggregation oder Verbinden oder einzeln (1)

Frage von ADORSE zum Thema Switche und Hubs ...

LAN, WAN, Wireless
gelöst TP-Link WA501G als Client einrichten - Keine IP Adresse wir bezogen (14)

Frage von bestelitt zum Thema LAN, WAN, Wireless ...

iOS
Video-Link lässt iPhones und iPads einfrieren

Link von runasservice zum Thema iOS ...

Batch & Shell
Variable setzen können während timeout (3)

Frage von DontFlameMeITryMyBest zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...