Session Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
array
ausgeben
benutzername
bereich
beseitigen
code
einloggen
ergebnis
header
index
rechte vorbehalten code
session
status
stehen
switch
test
verfassen
versuch
zugriff
-
Hi,
als erstes wollte ich sagen das ich vllt seit 2-4 Jahren FASST nichts mehr mit PHP gemacht habe :D
Ich hab jetzt eine Seite ende 2005 sinnlos da stehen. Heute hatte ich dann lust sie es mal wieder anzusehen und auf der Seite war ein Fehler die ich nie beseitigt habe. So hab ich versucht dann sie zu beseitigen aber bekomme es nicht hin. Quelltext ist auch sehr unübersichtlich und alles wurde durcheinander includiert aber ich versuch zu erklären.
Es gibt ein index.php. Der enthält oben session_start. Man kann sich da einloggen und es wird $_SESSION["username"] = $username; definiert. Nun wenn man eingeloggt ist wird etwas neu includiert und da wird auch gefragt ob session existiert. Läuft alles prima. in index.php wird switch.php geladen und dort dann die neuen seiten als links angezeigt. Z.B. main.php. Da drinne ist nochmal news.php, und writenews.php. Und in writenews.php hab ich das Problem. Dort erkennt er meine $username nicht. Wenn ich echo als test eingebe steht da test. .aber bei username einfach nichts. In main.php gibst noch die session aber nicht in writenews. Normaleweise guckt er dort ob der User ein admin ist usw damit er post verfassen kann aber naja. Woran kann das liegen. Da index so oder so oben session_start stehen hat und alles andere includiert ist muss doch jetzt jedes datei das haben oder nicht? Es läuft ja alles über index.php.
Achja. in neswrite.php müsste ich außerdem nochmal config.php includieren.. sonst sagte es no database selcted oder so
mfg
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das hört sich sehr verdächtig danach an, als hättest du register_globals auf on und würdest dich richtig darauf verlassen
Das darfst du schon allein wegen der auftretenden Sicherheitslücken nicht tun. Lasse doch mal $_SESSION['username'] ausgeben, oder füge mal diesen Code ein:echo '<pre>'; var_dump($_SESSION); echo '</pre>';
-
regiser_globals ist heutzutage schlauerweise auf 'off' gestellt.
Deswegen musst du dir den Usernamen aus dem passenden "superglobalen" Array besorgen.
Entweder:
$_SESSION["username"] = $_GET['username'];
oder:
$_SESSION["username"] = $_POST['username'];
Je nachdem, wie du den Parameter 'username' dem Script übergeben hast.
-
So sieht es bei miraus
<?php require("inc/config.php"); $username = $_POST["username"]; $passwort = md5($_POST["password"]); $abfrage = "SELECT username, passwort, status FROM user WHERE username LIKE '$username' LIMIT 1"; $ergebnis = mysql_query($abfrage); $row = mysql_fetch_object($ergebnis); if($row->passwort == $passwort) { $username = $row->username; $_SESSION["username"] = $username; echo '<a href="index.php">O.K. Baby du bist Online, checkst hier rein.*kloiK*</a>'; #$abfrage = "UPDATE online FROM user WHERE username LIKE '1'"; #header("location: start.php"); } else { echo "Benutzername und/oder Passwort waren falsch. <a href=\"index.php\">Zurück</a>"; } if($row->status == Hauptadmin) { echo "<br><br>Status $row->status erhalten. <br>"; } ?> </div> <? if(!isset($_SESSION["username"])) { echo ' <div id="footer"> <center>Alle Rechte vorbehalten</center> </div>'; } else { echo ' <div id="footer"> <a href="?seite=logout" style="font-size:20px;text-align:left;padding-left:10px;color:white;">Logout</a><center>Alle Rechte vorbehalten</center> </div>'; } ?>
jetzt versuch ich dein vorschlag.. wobei ihc das etwas bezweifele
Beitrag zuletzt geändert: 6.4.2010 22:28:55 von bilo -
cookies schrieb:
Du musst einfach ganz oben hin ein
session_start();
schreiben.
LG cookies
Das steht schon. Das war ja nur ein Teil =) -
Wenn es in den anderen Bereichen funktioniert könnte es dann sein, dass Du irgendwo vor dem include der writenews.php ein unset($_SESSION) oder ein unset($_SESSION['username']) hast?
-
Aber dann müsste man ja bei Neuladen der Seite wieder ausgeloggt sein. Ist ja aber nicht der Fall. Session wird nur bei korrekte PW eingabe definiert bzw beim ausloggen wieder gelöscht. Sonst hab ich da eigentlich nichts. Hab auch eben geguckt.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage