php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.02.2012, 18:40  
Neuer Benutzer
 
Registriert seit: 15.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
willi0513 befindet sich auf einem aufstrebenden Ast
Standard 2. Menü anzeigen, wenn User angemeldet ist.

Hallo zusammen,
ich habe links ein Hauptmenü, das für alle zugänglich ist.
Meldet sich jetzt ein User an, bekommt er noch ein 2. horizontales Menü zu sehen.
Mein Problem ist jetzt: Wenn ein angemeldeter User wieder ins Hauptmenü klickt, ist das 2. Menü nicht mehr zu sehen, weil es ja in den Dateien, die ich vom Hauptmenü aus aufrufen kann nicht eingebunden ist.
Hauptmenü und 2. horizontales Menü sind jeweils in einer separaten Datei ausgelagert, die ich mit include einbinde.
Ich möchte jetzt, dass das 2. Menü überall sichtbar ist, solange der User angemeldet ist.
Ich habe schon versucht, das 2. Menü einzubinden, indem ich die $_SESSION Varibale abgefragt habe. Funktioniert aber nicht. Dazu muss die Authentifikationsdatei (bei mir: auth.php) mit eingebunden werden, damit ich die Variable überhaupt abfragen kann. Und dann wird jeder User sofort auf die Loginseite weitergeleitet. Soll natürlich nicht sein, da man das Hauptmenü ja auch benutzen soll, wenn man nicht angemeldet ist.

Ich hoffe, ich konnte mich verständlich ausdrücken.
Hat jemand eine Idee, wie ich sowas umsetzen kann?

Gruß
Willi
willi0513 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.02.2012, 18:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ganz einfach: Beide Menüs werden eingebunden, die Ausgabe wird aber abhängig vom Anmeldestatus ausgeführt.
Zitat:
Und dann wird jeder User sofort auf die Loginseite weitergeleitet.
Dann ist die Scriptlogik wohl falsch.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.02.2012, 23:11  
Neuer Benutzer
 
Registriert seit: 15.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
willi0513 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
die Ausgabe wird aber abhängig vom Anmeldestatus ausgeführt.
Das war ja auch mein Gedanke. Hat bei mir nicht geklappt.

Zitat:
Dann ist die Scriptlogik wohl falsch.
Hier ist mal die auth.php, die ich am Anfang der Seiten einbinde, die man erst nach einer Anmeldung aufrufen kann.

PHP-Code:
<?php
     session_start
();
     
$hostname $_SERVER['HTTP_HOST'];
     
$path dirname($_SERVER['PHP_SELF']);
     
$user $_SESSION['$ID'];
     if (!isset(
$_SESSION['$user']) || !$_SESSION['$user']) {
      echo 
"<script language=\"javascript\">window.location.replace(\"http://www.aktivsingles-hamburg.de/php/login.php?Titel=Du musst dich zuerst anmelden.\")</script>";
      exit;
      }
?>
Von der Logik finde ich es richtig, wenn der User auf die Loginseite weitergeleitet wird.
Wenn ich diese Datei z.B. auf die Startseite einbinde, bekomme ich folgenden Fehler: Undefined index: $ID. Was ja auch logisch ist, wenn er sich noch nicht angemeldet hat.

Im Moment drehe ich mich gerade im Kreis. Binde ich die Datei ein, kann man keine Seite mehr aufrufen, mach ich es nicht, kann ich die $_SESSION Variable nicht abfragen.

Wenn du sagst, es ist ganz einfach, dann hilf mir doch mal auf die Sprünge.
Wo muss ich was ändern, damit es wie gewünscht funktioniert?
Liegt es überhaupt an der auth.php?

Gruß
Willi
willi0513 ist offline   Mit Zitat antworten
Alt 11.02.2012, 23:33  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard

Mal grob schematisch:
PHP-Code:
session_start();
 
echo 
'<nav id="naviLinks">...</nav>';
if (
$_SESSION['userAngemeldet'] === true) {
    echo 
'<nav id="naviOben">...</nav>';
    } 
Wo die Inhalte jetzt herkommen, musst Du wissen.

Ansonsten ist es grober Unfug, nicht angemeldete User per Javascript auf die Loginseite umzuleiten. Javascript läßt sich ja bekanntlich abschalten, womit entweder Sicherheit oder Funktionalität oder beides dahin sind.
__________________
Es ist schon alles gesagt. Nur noch nicht von allen.
drsoong ist offline   Mit Zitat antworten
Alt 11.02.2012, 23:39  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von willi0513 Beitrag anzeigen
PHP-Code:
<?php
     session_start
();
     
$hostname $_SERVER['HTTP_HOST'];
     
$path dirname($_SERVER['PHP_SELF']); # <--
     
$user $_SESSION['$ID']; # <--
     
if (!isset($_SESSION['$user']) || !$_SESSION['$user']) { #<--
      
echo "<script language=\"javascript\">window.location.replace(\"http://www.aktivsingles-hamburg.de/php/login.php?Titel=Du musst dich zuerst anmelden.\")</script>";
      exit;
      }
?>
Von der Logik finde ich es richtig, wenn der User auf die Loginseite weitergeleitet wird.
Netter Vorsatz, wenn Dein Script nicht so fehlerhaft wäre.

Zitat:
$_SESSION['$ID']
Wat soll der Quark?

Lesen:
http://www.php.net/manual/en/language.types.string.php
  Mit Zitat antworten
Alt 12.02.2012, 17:10  
Neuer Benutzer
 
Registriert seit: 15.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
willi0513 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

@meikel:
Ich habe es mir einmal durchgelesen, weiß aber nicht worauf du hinaus willst. Also habe ich einmal andere Varianten ausprobiert:
["$ID"], ["ID"], ['ID']
Bekomme aber immer eine Fehlermeldung. Entweder:
Undefined variable: ID
oder Undefined index:
oder beides.
Kannst du mir bitte erklären, warum das Quark ist. Ich will ja gerne dazu lernen.

@drsoong:
Dein Ansatz werde ich mal weiter entwickeln. Muss dann allerdings vieles umschreiben.
Ich mache die Weiterleitung jetzt mit der header-Function. Gibt es noch eine andere Möglichkeit, die die Sicherheit und Funktionalität gewährleistet?

Ist denn die Weiterleitung auf die Login-Seite grundsätzlich OK?
willi0513 ist offline   Mit Zitat antworten
Alt 12.02.2012, 17:23  
Neuer Benutzer
 
Benutzerbild von ddmler
 
Registriert seit: 12.02.2012
Beiträge: 1
PHP-Kenntnisse:
Fortgeschritten
ddmler befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von willi0513 Beitrag anzeigen
Ich habe es mir einmal durchgelesen, weiß aber nicht worauf du hinaus willst. Also habe ich einmal andere Varianten ausprobiert:
["$ID"], ["ID"], ['ID']
Bekomme aber immer eine Fehlermeldung. Entweder:
Undefined variable: ID
oder Undefined index:
oder beides.
Kannst du mir bitte erklären, warum das Quark ist. Ich will ja gerne dazu lernen.
Er will darauf hinaus, dass ['$ID'] die Variable nicht ersetzt (wie im verlinkten PHP Manual auch steht). Bei ["$ID"] kommt "undefined variable: ID", was auch richtig ist, denn deine Variable ID wurde nicht gesetzt. "Undefined Index" bedeutet einfach, dass du nicht vorher irgendwo die ID in deine Session Variable gespeichert hast als Index "ID".
ddmler ist offline   Mit Zitat antworten
Alt 12.02.2012, 22:13  
Neuer Benutzer
 
Registriert seit: 15.12.2011
Beiträge: 6
PHP-Kenntnisse:
Anfänger
willi0513 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe gerade einmal ein bisschn gegoogelt und mir die Unterschiede durchgelesen.
Jetzt muss ich meikel zustimmen, dass das Quark ist.

Obwohl bisher alles so funktionierte, wie ich es brauchte. Kann dann aber ja nur Zufall sein.

Danke für eure Antworten.

Gruß
Willi
willi0513 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Hilfestellung beim Erstellen eines etwas komplexeren Queries Daniel Datenbanken 1 24.12.2011 11:17
Projektausschreibung: Adressverwaltung mit Multi-User nach meinen Wünschen alschwa Gewerblich 0 24.09.2011 12:42
dynamische Tabellen - so wie der User will Qwerz Off-Topic Diskussionen 1 15.08.2011 19:00
Zeit anzeigen die ein User für ein Quiz braucht bricktop72 PHP Einsteiger 5 16.07.2011 17:42
[Algorhytmus] User Klassifizierung HCi PHP-Fortgeschrittene 4 12.05.2011 12:16
Datei für den User umbenennen... Thallius PHP Tipps 2010 5 01.11.2010 14:00
LOCK tables... Samhayne Datenbanken 41 18.02.2010 11:15
Eingeloggt User anzeigen Extremefall PHP Tipps 2009 14 03.01.2010 18:34
Projekt: User über Intranetpage erstellen, auf einen VoIP-Server beta1234 PHP Tipps 2009 2 22.07.2009 13:21
Hilfe bei User Online anzeige pitti752002 PHP Tipps 2009 6 05.04.2009 22:44
Problem mit Datenbankverbindung: Werde immer vergeblich als user Nobody angemeldet. spacemanspiff PHP Tipps 2009 2 13.02.2009 14:28
[Erledigt] user prüfen und das richtige anzeigen douggy PHP Tipps 2008 4 02.12.2008 13:41
Session: Untersch. Seiten f. eingeloggte User und norm. User PHP Tipps 2005-2 2 20.07.2005 12:46
[Erledigt] MySQL user rausfinden Datenbanken 4 26.05.2005 12:15
Alle user die online sind anzeigen - wann und wie löschen? PHP Tipps 2005 11 24.05.2005 16:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
undefined index php session bei menu <= 2, php login wen man eigeloggt ist soll er dies anzeigen, menüpunkt anzeigen wenn eingelogt, script user hat sich angemeldet, welcher user ist angemeldet php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum