HTML-PHP-Display-Benutzername nach dem login Erfolg
Ich habe eine <div>
in meinem onlinestore.html Datei, die "my menu" enthalten, der Login/Registrieren. Was ich will, ist nach dem Erfolg der Anmeldung werden die <div>
für login/register ändern Sie den Benutzernamen. Was ich'hv getan, nicht Anzeige die erwartete Ausgabe, die ich will.So ist es etwas falsch über meinen code?
Hier ist was ich getan habe:
onlinestore.html
<li class='active' style='float:right;'>
<?php
session_start();
if($_SESSION['logged']==true){
echo $_SESSION["username"];
echo '<a href="logout.php"><span>Logout</span></a></li>';
}
elseif($_SESSION['logged']==false)
echo '<a href="registerform.html"><span>Login/Register</span></a></li>';
?>
Hier ist eine andere Datei
checklogin.php:
if($count==1){
session_start();
$_SESSION['logged']=true;
$_SESSION ['username']=$myusername;
header("refresh:1;url=onlinestore.html");
}
else{
$_SESSION['logged']=false;
header("refresh:2;url=login.html");}
Hier ist die erwartete Ausgabe:
Vor Dem Login
Nach Login
Hier ist es, was ich mit dem code oben:
- was ist Ihre Frage?
- Ja, Sie bitten, für etwas, was Sie bereits getan haben.
- der code, den ich oben zeige, ist nicht, wie die erwartete Leistung.Gibt es etwas falsch in meinem code?
- Sollten Sie die $_SESSION["username"] und legte es in diesem div/span oder was auch immer Behälter, die Sie verwenden.
- Wie ich schon in der anderen Frage, die Sie brauchen, um zu sagen, WAS nicht funktioniert. Erhalten Sie eine leere Seite? Benutzer scheint nie angemeldet sein? etc
- wo ist das login-Skript? wo Sie die $_SESSION-Attribute.
- ich'hv Bearbeiten Sie die Frage und zeigen Sie den screenshot der Fehlermeldung habe ich bekommen
- Sieht aus wie Sie sind, nicht setzen der $_SESSION['username'] richtig (oder überhaupt). Können Sie
var_dump($_SESSION['username'])
und finden Sie den real-Ausgang? Wenn es null ist, dann ist das dein problem - mögliche Duplikate von HTML-login Ändern label Benutzername nach dem login
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entweder müssen Sie benennen Sie Ihre
onlinestore.html
undlogin.html
werden .php-Dateien so, dass das PHP-Skript arbeiten in Ihnen, oder verwenden Sie die addtype-option in Ihrem htaccess-Datei.In Ihrem
onlinestore.html
hierzu:In Ihrem
checklogin.php
hierzu:Wenn die oben nicht funktioniert, dann bitte sagen Sie mir, was passiert ist.
Haben Sie html-Dateien zu Parsen von PHP-code?
Oder eine htaccess Datei mit:
AddType application/x-httpd-php .htm .html
?
BEARBEITEN
Versuchen, diese für debugging:
In Ihrem
checklogin.php
hierzu:Dies wird Ihnen zeigen, wenn die Anmeldung funktioniert. Wenn es nicht und Sie bekommen "Anmeldung fehlgeschlagen" dann ist das, warum man den "Login/Registrieren" - link auf Ihrer Seite.
Wenn es zeigt "Login erfolgreich" dann setzen Sie den code zurück, wie es war und dann auf Ihre
onlinestore.html
Seite, tun Sie dies an den Anfang der Datei:Was passiert? Bekommen Sie die Nachricht "Das ist eine Arbeit" auf der Seite und sonst nichts?
onlinestore.html
geht zu den anderen. Ich werde Bearbeiten Sie meine Antwort mit einige Dinge zu versuchenecho "This is working";exit();
- funktioniert das auf onlinestore.html?.html
Dateien nicht Parsen PHP standardmäßig. Dann müssen Sie entweder ändern Sie die Datei-Erweiterungen, wenn Sie möchten, PHP zu arbeiten (z.B. änderungonlinestore.html
zuonlinestore.php
) oder den anderen Ansatz von PHP in html-Dateien: stackoverflow.com/questions/11312316/...In Ihrem
else
Aussage, die Sie noch nicht definiertsession_start()
wie Sie es in Ihrerif
- Anweisung.Und anderes, statt Sie den Wert von $_SESSION und die Bestimmung, den Wert, können Sie die folgenden verwenden:
Andere Optionen für speichern von Variablen in einer
$_COOKIE
und dann prüfen, ob esisset
oder nicht(if(isset($_COOKIE["username"]){}
)Ich hoffe das hat Ihnen geholfen
Wenn Sie wollen, dass die Benutzernamen angezeigt werden, anstatt, wie im Beispiel, müssen Sie den code ändern für onlinestore.html um die folgenden:
Ich denke, dass Ihr PHP sollte so Aussehen, dass:
Entweder Klammern in beiden if und else oder verwenden Sie none. Durch die Art und Weise, die Sie nicht benötigen Sie einen elseif-wenn Sie nur die überprüfung einen booleschen Wert. (es gibt nur 2 Möglichkeiten)
username
es sollte$username
und noch hat er/Sie [Ende richtig, die Leitung in dieser demo @JK9 und wenn Sie es Buchstabe für Buchstabe, dann würde es nicht funktionieren.Gut, es ist eine Menge code fehlt.
Wo ist dein login-Skript?
Zuerst müssen Sie ein
<form>
mit der Eingabe-Felder (login und Passwort) und einen submit-button.Beispiel:
Ihre login.php
In Ihrem index.html Sie tun kann:
var_dump($_SESSION)
.$myusername
leer ist. Wo setzen Sie diese variable?myusername
undmypassword
? (<input type='text' name='myusername'></input>
und dasselbe gilt fürmypassword
)$_SESSION [
im$_SESSION ['username']=$myusername;
? Wie:$_SESSION['username']=$myusername;
Versuchen. Ich weiß nicht, wie zu erklären, aber wenn der login erfolgreich ist, habe ich die session-variable. Wenn die session-variable wird nicht verwendet, es wird echo die Anmeldung, der link auf die login-Seite anders ist, wenn session-variable verwendet wird, wird es drucken Sie den Benutzernamen
code in den Prozess der Protokollierung in
code in der navbar