ich beschäftige mich mit einem login. ich habe eine websteite und oben sind eingabefelder für username und passwort. und darunter ist internetangebo.
wenn man sich einloggt. sollten die felder für username und passwort verschwinden und nur den „nickname“ an deren stelle erscheinen. nur das man jetzt inserate, artikel inserieren kann.
ein script hätte ich schon. doch das mit dem verschwinden der eingaben, geht nicht. danke schon mal im voraus.
ganz im ernst: wenn dir das "nichtverschwinden"der loginbox schon probleme bereitet solltest du noch nicht an sicherheitsrelevanten dingen (wie z. b. login) arbeiten sondern dich erst noch ein wenig mehr in php einarbeiten
Wenn ich es mir nach Deiner Beschreibung bildlich vorstelle, dann rufst Du in etwas die selbe Seite wieder auf, nur, daß man dann eingeloggt ist und die Felder verschwinden sollen…
Du hast sicherlich ein oder mehrere Variablen in der Session registriert, wenn man sich eingeloggt hat
z.B. $_SESSION[‚user‘] oder so etwas
also kannst Du doch ganz einfach mit einer if-Bedingung die Felder anzeigen lassen (oder eben nicht.
<?php if(!$_SESSION['user']) # wenn keine Session-Variable {
?\>
"HTML LogIn Formularfelder" # Zeige Deine Felder an
<?php } ?\>
Notfalls schick mir doch mal Dein Script per email
IBO
[[email protected]](mailto:[email protected])
Hallo,
Sie haben bereits mehrere dieser Anfragen gestellt. Ich kann ihnen auch bei künftigen Anfragen dieser Art leider nicht weiterhelfen, da Sie scheinbar nicht wirklich wissen, was Sie tun.
Ich möchte Ihnen empfehlen, sich die Grundlagen in einem Volkshochschulkurs anzueignen.
Hallo max12neu,
loggt sich der Benutzer via Javascript & AJAX ein, oder lädt die Seite für den login neu?. Bei einem Neuladen musst du einfach via if überprüfen ob der Benutzer angemeldet ist und nur wenn er eben nicht angemeldet ist die Login-Form ausgeben. Bei Javascript musst du nach dem Container wie document.getElementsByClassName oder document.getElementsById heraussuchen ihn aus dem DOM löschen und den Benutzernamen hinzufügen. Google einfach mal „DOM manipulations javascript“ oder so
na Du schickst die Formulardaten an das loginscript selbst. Also prüfst Du am Start des Scripts einfach, ob Formulardaten da sind (was ja bedeutet, dass jemand das Formular auf Deiner Loginseite abgeschickt hat). Wenn ja, Daten prüfen, das Ergebnis in einer Kontrollvariablen speichern, deren Existenz und Inhalt erhalten bleibt und jederzeit prüfbar ist (also am besten Session, wa?). Dann kann man genau diese Variable testen und das entsprechende anzeigen. Wenn keine Formulardaten da sind (das ist der Zustand, wenn jemand Deine Seite gerade aufgerufen hat und sie zum ersten Mal sieht) oder der Login nicht bestanden wurde, Eingabefelder anzeigen.
vom Schema her so:
<?php session_start(); if(isset($\_POST[username]) && $\_POST[username] !== "")
{
# Prüfung Username und ggf. Passwort
# wenn bestanden:
$\_SESSION[der\_darf] = 1;
}
if($\_SESSION[der\_darf] == 1)
{
include\_once("wohin\_auch\_immer.php");
}
else
{
# Anzeige Formular mit Eingabefeld "username",
# "password", method="POST" und
# submit-Button
# das Form-Tag müsste also mindestens so aussehen:
#
} ?>
das problem ist. ich dürfte eine session gesetzt haben die nicht zu löschen ist. hab ein „logout.php“ geschrieben mit destroy und seitenaufruf mit header das wieder die seite aufruft wo die eingabefelder username und passwort sind.
über abmelden wird die logout.php aufgerufen umd die session zu löschen.
ich habe sowohl in der index.php als auch in der anderen datei session_start();
auch mit if(isset($_SESSION[„username“])) gibt problem mit ! gibt es keine eingabefelder in der index.php und ohne schon. wobei beim eingeben des usernamens und passwort wieder die felder sichbar sind.
doch die eingabefelder bleiben wie gesagt, verschwunden.
es funktioniert nur wenn ich die seite neu aufmache. und das nur einmal und dann bin ich für immer eingeloggt.
Eine Idee wäre du definierst eine Variable $check.Mit $check =$POST (check).
Wenn Benutzer und passwort korrekt sind wird check ==1 gesetzt.
Dann teilst du den Code in zwei häften
if $check==1 {Seite mit abgefragtem (Z.B per SQL) Nickname und anderen Angeboten…};
else {die Startvariante mit Formular zum Anmelden…};
im grunde musst du nur abfragen ob derjenige eingeloggt ist… wenn er es est dann zeige den usernamen an… wenn nicht den loginbereich…
also im grunde einfache if else… dann kannst du das ganze mit divs und css machen, wodurch du dinge auch in ebenen anzeigen oder ausblenden lassen kannst usw… also es gibt etliche möglichkeiten… aber letztenendes kommt es auf die abfrage drauf an, ob der user eingeloggt ist oder nicht…
da ich deinen gesamten code nicht kenne kann ich nur folgenden tipp geben: versuche einfach den wert auf leer zu setzen. das sollte funktionieren
$_SESSION[‚variable‘] = ‚‘;
das ein- unf ausloggen funktionert. was sollte aus sicherheitsgründen alles in der session datei stehen. ich habe es bisher nur geschafft den inhalt bzw einzelne variablen zu löschen. ist es besser wenn man sich ausloggt, das die session datei ganz gelöscht wird.
mit session_destroy(); bleibt die datei erhalten.
ausserdem kann man sich auch einloggen, wenn man weder username noch passwort eingibt? dann steht halt kein username. ausloggen geht auch wieder.
<?php session_start(); $testuser="user";
$testpass="pass";
if($\_GET['logex']=="1")
{
session\_unset();
session\_destroy();
}
## Beides eingegeben und Logout nicht gesetzt!
if(($\_GET['act']==1)&&($\_POST['pass'])&&($\_POST['user'])&&($\_GET['logex']!='1'))
{
if(($testuser==$\_POST['user'])&&($\_POST['pass'] == $testpass))
{
session\_start();
$\_SESSION['user']=$\_POST['user'];
?\>alert ('LogIn erfolgreich !\n\nWillkommen \<?php echo $\_POST['user'];?\>\n\nDu bist eingeloggt');
}
}
?\>
<?if (!$_SESSION['user']) {?\>?act=1" method="POST"\>
Benutzer
Passwort
einloggen \>\>
<?php } ?\><?if ($_SESSION['user']) {?\>
<?php } ?\>
hier registrierte Variable:
echo$\_SESSION['user']."
";
?\>
Hmmm - theoretisch löscht session\_destroy() auch die Datei
probier mal obiges Script aus
einfach in eine leere php-Datei kopieren und über den local-Server aufrufen
In der Sessiondatei sollte alles stehen, was Du unbedingt in auf den darauf folgenden Seiten brauchst
also eigentlich nur 3-4 Variablen
vielleicht User-ID, damit man immer auf die Daten des Users "zugreifen" kann - z.B. bei Profilaufrufen
dann vielleicht seine Zugriffsrechte - falls Du verschieden Rechte vergeben möchtest
kommt darauf an, was Deine Benutzerdatenbank alles enthält... oder noch erhalten wird