• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Session Problem..

ProblemUser

Mitglied
Hallo,
ich nutze folgendes Login system:
http://www.php-einfach.de/tuts_mysql_login.php
Nun als erste Frage:
Nutzt man noch sessions als Login ist dies der "Standart"?

zweite Frage:
PHP:
if(!isset($_SESSION["username"];))
                    { 
echo "<div id='login'></div>";
}
if(isset($_SESSION["username"];)){
echo "<div id='logout'></div>";
}
Funktioniert nicht mit oben gennanten Login system ich bekomme immer den login div angezeigt, kann mir jedoch nicht vorstellen warum.
Mfg
 
Werbung:
Du solltest noch den Codeausschnitt zeigen, wo die Session gesetzt wird, bzw. auch den Scriptbereich davor, z.B. Verbindung zu Datenbank, lesen in der Tabelle usw. Bei dem Codeschnipsel wird ja nur gezeigt, wie ne Variable abgefragt wird, und das hilft nicht viel.
 
Werbung:
Sehe ich gerade... müsste da nicht ein parse-error geworfen werden, wegen den Semikolons?
 
Und schon mal was von else gehört?

Man man man.... Wieso schreibst du Ihn nicht einfach eine Lösung? Immer diese unseriösen blöden Antworten!

Hallo ProblemUser (Originaler Name) :-)

Ich weiß nicht in welchen Rahmen du dein Loginbereich haben möchtest... Ich habe damals von einen guten Freund ein Login mit Refistrierungs Script bekommen.
Natrülich musst du die DB selber konfigurieren und das Script an dieser Stelle umschreiben. Solltest du da aber Probleme haben, helfe ich dir sehr gerne!

Habe dir das alles zum Download auf unseren ManholdMedia Server gelegt. Die Datein darfst du uneingeschränkt nutzen!
http://www.manholdmedia.com/html.de/phpsession2.zip

So ich hoffe ich konnte dir weiterhelfen und wünsche dir noch einen schönen ersten Mai!
Mit lieben Grüßen aus Bremerhaven
A. Lörbs
 
Also wenn Du hier schon Scripte verteilst, dann sollten sie doch zumindest sauber sein.
1. mysql ist fast schon tot, stattdessen gibt es mysqli oder PDO
2. es gibt keinerlei Schutz vor SQL-Injection.
3. Dies hier ist ein Forum zur Selbsthilfe und keine Script-Börse
Wobei, das Script hinter dem Link von ProblemUser berücksichtigt die ersten beiden Punkte auch nicht.
 
Werbung:
´
Ich weiß nicht in welchen Rahmen du dein Loginbereich haben möchtest...

Ich schrieb nicht das es das Aktuellste ist! Wo bei ich auch nicht weiß in welchen Rahmen der Login erfolgen soll! Für eine Privat Site reicht es aus.
Wie du so schön sagst "keine Script-Börse" ist richtig!'

Aber was soll ich als User mit solch Blöden Antworten Anfangen? "Schon mal was von else gehört" Da fällt mir fast mein morgenlicher Kafé aus der Hand!

Naja.... Schönen ersten Mai noch.!

Liebe Grüße
 
Ich schrieb nicht das es das Aktuellste ist! Wo bei ich auch nicht weiß in welchen Rahmen der Login erfolgen soll! Für eine Privat Site reicht es aus.
Eben nicht. mysql wird definitiv ab PHP 6.0 nicht mehr unterstützt. Und SQL-Injection gibt es auch bei privaten Seiten, und wenn es nur irgendwelche Script-Kiddies sind, die Ihren Kumpels zeigen wollen, wie toll sie sind.

Aber was soll ich als User mit solch Blöden Antworten Anfangen? "Schon mal was von else gehört"
Das war ein Hinweis darauf, dass es besser ist, ein if-else-Konstrukt zu nutzen, als 2 if hintereinander, die sich lediglich in der negierten Bedingung unterscheiden.

Naja.... Schönen ersten Mai noch.!
Liebe Grüße
Joo, ebenso
 
Werbung:
Ich erwarte auch kein "Mach mir mal.."
Zu der "else" Diskussion..
Wenn man sich mal die Seite anschaut die ich gepostet habe wurde dort auch kein Else verwendet, ich hatte dies zuerst verwendet, hatte dann den gleichen Fehler und hab es dann ohne wie im Tutorial gemacht, macht nichts zur Sache vorerst, löst mir mein Problem auch nicht.. :roll:
Zu Post #2:
Einloggen kann ich mich mit:
if ($row->passwort == $passwort) {
$_SESSION["username"] = $username;
echo "Login erfolgreich. <br>";

Logge ich mich an anderer Stelle, weiter unten ein und Login erfolgreich wird ausgegeben sofern ich die richtigen Daten nutze, zeigt mir also das wenn ich falsche eingebe das dieses Script funktioniert, jedoch hackt es an der geposteten Stelle.. Wegen dem Parse Error, ich habs aus meinem Script kopiert und leicht verändert um es hier verinfacht zu zeigen, kann sein das mir ein Fehler unterlaufen ist..

@Loerbs Danke, bin der selben meinung und echt schade das dies eines der einzigen Kommentare ist die etwas zu meiner gestellten Frage beiträgt.. Leider ist dein Script bzw. nicht mehr auf dem Server, wäre nett wenn du mir dies nochmal hochladen kannst, schaue mir dies gern an.

Zur Sicherheit, ich baue diese gerne zum Schluss ein nach dem mein Scirpt funktioniert, hab leider auch noch keinen Gesehen der erst die Alarmanlage und dann sein Haus baut..
Wie ich die Daten von PHP zur DB und zurück bringe ob über mysql oder mysqli ist mir vorerst erstmal egal, jedoch habe ich bzw tue es immer noch, mit mysql angefangen zu lernen. Ab PHP 6.0 wird dies nicht mehr unterstützt bedeut für mich das es jetzt noch funktioniert und noch nicht vom zug abspringen muss, ich kauf mir auch kein neues auto nur weil es 2PS mehr hat ;)
Mir liegt es eher daran sobald ich die Daten übergeben habe, nutzt man hier noch Sessions oder doch etwas anderes? also macht immer eine Überprüfung ob die Session gesetzt ist und gibt dann aus?
Mfg ProblemUser
 
Wegen dem Parse Error, ich habs aus meinem Script kopiert und leicht verändert um es hier verinfacht zu zeigen, kann sein das mir ein Fehler unterlaufen ist..

Ich verstehe nicht wie beim Kopieren Zeichen dazu kommen können - relevant für eine korrekte Beurteilung deines Problems wäre der korrekte und möglichst auch komplette Quellcode um den es geht. Die Rückfrage

Sehe ich gerade... müsste da nicht ein parse-error geworfen werden, wegen den Semikolons?

sehe ich auch nicht beantwortet. Aber ok ..

Ich gehe davon aus, Du hast nun also folgenden Code-Schnippsel "irgendwo" in deiner Programmierung:

PHP:
if(!isset($_SESSION["username"]))
{ 
echo "<div id='login'></div>";
}
if(isset($_SESSION["username"])){
echo "<div id='logout'></div>";
}

Wenn Du prüfen willst, ob "username" in der Sitzung gesetzt ist, dann wäre das eigentlich auch so korrekt - vorausgesetzt es steht nach session_start() in deinen PHP-Dateien. Schließlich wird die Variable ja hierüber beim Login gefüllt:

PHP:
$_SESSION["username"] = $username;

Tipp:
Prüfe mal vor o.g. Bedingungen mittels var_dump() was $_SESSION enthält und ob "username" dabei ist, wenn Du dich anmeldest.

Und ja, Sessions nutzt man dafür auch weiterhin.

Den Hinweis auf mysqli solltest Du dennoch berücksichtigen. Du schreibst jetzt ein Script, welches auf deinem jetzigen Webspace laufen wird. Du weißt nicht wann dein Webhoster auf PHP 5.5 oder 6.0 umstellt und ob er vlt. nicht schon vorher die mysql-Funktionen auf seinen Servern abschaltet. Im schlimmsten Fall wirst Du bereits nächstes Jahr damit konfrontiert werden, dass dein Script nicht mehr funktioniert, weil dein Webhoster seine PHP-Version umgestellt hast. Dann kannst Du das ganze nochmal überarbeiten - doppelte Arbeit. Also lieber gleich richtig machen ;)
 
Ok, das mit var_dump() hat mir sehr geholfen es zeigte meinen Usernamen an obwohl ich angeblich ausgeloggt war das Session Cookie war jedoch noch im Browser. Habe es jetzt gelöst bekommen und arbeite nun mit Cookies & Sessions zusammen ("Eingeloggt bleiben - Funktion")
Dennoch danke an alle, besonders nun threadi!
 
Werbung:
Zurück
Oben