Login/Logout

Alles, was nicht in die anderen Foren passt, kannst du hier loswerden.
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Login/Logout

Beitrag von farchris »

Hallo,
ich möchte gerne einen Login/Logout Link in meiner Homepage Navigation einbauen.
Ich würde es aber gerne so haben:
Wenn man nicht eingeloggt ist, soll dort "Login" stehen und wenn man eingeloggt ist soll dort "Logout" stehen ...
... und das alles in HTML ...

Danke schonmal!
Rigo
Beiträge: 10
Registriert: 15. Nov 2006, 17:10

Beitrag von Rigo »

Das solltest du in PHP lösen.

Wenn du Admidio korrekt in die Seite eingebunden hast kannst du das in deinem Menü so machen wie ich das gemacht habe.

Code: Alles auswählen

if($g_current_user->login_name > "")
	{
		echo "<a href='/adm_program/system/logout.php'>Logout</a><br>";
		echo $g_current_user->login_name;
	}
		else
	{
		echo "<a href='/adm_program/system/login.php'>Login</a><br>";
	}
Kann natürlich sein das es noch eine andere Lösung gibt aber das war die die ich für mich gefunden habe.So wird mir nämlich dann auch gleich noch mein name im Menü gezeigt ;)
Falls du noch andere Werte in der Userbox dann zeigen willst wie deine E-Mailaddy dann kannst du das alles einsehen in der Profile.php im Modulverzeichnis.
mfg
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Da ich nicht sehr viel Ahnung von php habe ...

Ich würde deine Variante gern auch auf meiner HP nutzen, müsste diesen Programmteil jedoch vom Layout her in der body_top.php unterbringen. Kannst du mir einen Tipp geben, was dazu dort ggf. noch ergänzt werden muss? Einfaches Einfügen führte (wie zu vermuten ;-) nicht zum Ziel.

Danke schon mal - Gruß Joesch
Rigo
Beiträge: 10
Registriert: 15. Nov 2006, 17:10

Beitrag von Rigo »

Das Funktioniert durch einfaches einfügen,wenn du vorher die config von admidio in deinen relevanten dateien eingefügt hast.

mfg
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Rigo hat geschrieben:...wenn du vorher die config von admidio in deinen relevanten dateien eingefügt hast.

mfg
:?: Was ist drunter zu verstehen? Momentan habe ich Admidio in meine HP eingebunden und die Layoutmerkmale in der Body_top und body_bottom eingebunden. Das funktioniert so weit auch ganz gut. Welche config von Admidio muss jetzt wo relevant eingetragen werden?

Gruß Joesch
Benutzeravatar
fasse
Administrator
Beiträge: 6163
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hi Joesch,

du kannst den Programmcode von Rigo schon in die body_top.php einfügen, allerdings musst du dabei noch ein paar Dinge beachten.

Standardmäßig bist du in jeder *.php Datei im "Html-Modus" und du muss dem Server sagen, dass jetzt PHP kommt. Dies geschieht mit den Tags

Code: Alles auswählen

<?php ... jetzt kommt PHP-Code ... ?>
Außerdem solltest du die Links besser absolut setzen.

Hier ist jetzt noch mal das angepasste Beispiel etwas eleganter gelöst:

Code: Alles auswählen

<?php
if($g_session_valid == true)
   {
      echo "<a href='$g_root_path/adm_program/system/logout.php'>Logout</a><br>";
      echo $g_current_user->login_name;
   }
      else
   {
      echo "<a href='$g_root_path/adm_program/system/login.php'>Login</a><br>";
   }
?>
Gruß
Fasse
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Jetzt funktionierts perfekt. Danke euch beiden.

Gruß Joesch
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Beitrag von farchris »

Hallo,
wie kann man in php einen Text hinzufügen.
Also wenn man sich einloggt, dass dann direkt "Hallo name", anstatt nur "name" steht:

<?php
if($g_session_valid == true)
{
echo "<a href='$g_root_path/adm_program/system/logout.php'>Logout</a>";
echo (Hallo) $g_current_user->login_name;
}
else
{
echo "<a href='$g_root_path/adm_program/system/login.php'>Login</a>";
}
?>
Benutzeravatar
fasse
Administrator
Beiträge: 6163
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Code: Alles auswählen

echo "Hallo ". $g_current_user->login_name;
Texte dann einfach in Anführungszeichen und mit einem Punkt kann man dann andere Elemente z.B. Variablen anhängen.

Gruß
Fasse
farchris
Beiträge: 37
Registriert: 8. Sep 2006, 17:45

Beitrag von farchris »

Hallo, danke!
Wie könnte ich den nun noch ein ! hinter "$g_current_user->login_name;" machen?
Benutzeravatar
fasse
Administrator
Beiträge: 6163
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Punkt dahinter und dann wieder Anführungszeichen.

Code: Alles auswählen

echo "Hallo ". $g_current_user->login_name. "!";
Es müsste aber auch so klappen:

Code: Alles auswählen

echo "Hallo $g_current_user->login_name!";
kalypso
Beiträge: 11
Registriert: 5. Mär 2010, 12:50

Login Logout

Beitrag von kalypso »

Haben diesen Code eingebunden (body_top.php). Jedoch funktioniert bei mir nicht. Es wird nur der LOGIN Link angezeigt obwohl eingeloggt.
Dj_PD
Beiträge: 61
Registriert: 23. Okt 2009, 12:04

Beitrag von Dj_PD »

Ich habe damit auch immer wieder mal Probleme und kann es mir nicht erklären.

Ich glaube da stimmt was nicht mit der Kontrolle ob jemand eingeloggt ist oder nicht. Oder vielleicht auch mit der common.php, die man nicht mehrmals auslesen kann. Ich weiß es nicht.

Ich wollte in dem sidebar online plugin auch rein schreiben, dass er es nur anzeigen soll, wenn der User Online ist, jedoch macht er das einfach nicht. Auch bewirkt die Variable "$plg_show_self = 0;" bewirkt bei mir keine Änderung, da auch hier die "$g_valid_login" benötigt wird und die ist ja leer.

Da ich das Sidebar Online Plugin in der my_body_bottom.php einbinden will habe ich dann nochmal versucht, die Abfrage vor dem includen zu machen, also:

Code: Alles auswählen

<?php 
if ($g_session_valid == true)
{ 
include($g_root_path."/adm_plugins/sidebar_online/sidebar_online.php");
} else {
echo "Nur wenn du angemeldet bist, kannst du sehen wer Online ist."; 
}
?>
Allerdings funktioniert das auch nicht.

Wenn ich mir $g_session_valid oder $g_valid_login ausgeben lasse, ist die Variable leer und ich kann mir einfach nicht vorstellen warum. Vielleicht wird Sie ja an einer Stelle einfach gelöscht, so dass man die Variable nicht mehrmals auslesen kann oder, keine Ahnung, weil sich die Adresse auch mal ändert. Ich weiß es einfach nicht.
Für einen Laien ist es aber ziemlich schwer, nach zu vollziehen wo der Fehler liegt, wenn es keinen sichtbaren Fehler gibt.
Die Variable ist einfach leer und wenn ich eine if-Abfrage mit "if ($g_session_valid == true)" mache, ist diese eben nicht true und er zeigt mir else an oder eben nichts.
Aber warum die Variable jetzt leer ist, kann ich nicht nach vollziehen.


Wäre echt schön, wenn die Admin bzw. die Entwickler hier nochmal schauen könnten.
Oder vielleicht sagen könnten woran es liegen kann.

Gruss
Dj
Jochen
Team
Beiträge: 1506
Registriert: 22. Feb 2006, 18:11

Beitrag von Jochen »

Hallo DJ,

probiers mal hiermit:

Code: Alles auswählen

if ($g_valid_login)
{
    include(SERVER_PATH.'/adm_plugins/sidebar_online/sidebar_online.php');
} 
else
{
    echo 'Nur wenn du angemeldet bist, kannst du sehen wer Online ist.';
}
Gruß Jochen
Dj_PD
Beiträge: 61
Registriert: 23. Okt 2009, 12:04

Beitrag von Dj_PD »

:oops: :oops: :oops:

Hääää? Es geht!!! Vielen Dank!!! :roll:

Aber warum?
Ich habe die if-Abfrage auch mit $g_valid_login getestet und da funktionierte es nicht.
Kannst du mir erklären, warum es jetzt geht?
Also, der einzige Unterschied ist jetzt im include, aber warum sollte es daran liegen?

Gruss
Dj




P.S.: Jetzt kann ich auch nochmal das plugin "loginbar" weiter machen und euch mal zukommen lassen.
Antworten