PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sessions



systemless
05.12.2008, 11:34
Ok kann mir vielleicht jemand helfen??
Ich habe eine Seite in php geschrieben.
nun möchte ich einen login machen, der über einen cookie oder eine sessonid
neue menüpunkte hinzufügt.
so sieht der start der session aus:


else
{
session_start();
session_register("username");
$_SESSION['username'] = $username;
header("Location: index.php");
}


und so das auslesen:

<?php
$username = "systemless";
if ($_SESSION['username'] == $username)
{
echo " <a href=\"#\" rel=\"dropmenu3\">Admin</a>";
echo " <a href=\"logout.php\">Logout</a>";
}
else
{
echo " <a href=\"login.php\">Login</a>";
}
?>
aber es funktioniert nicht, ein cookie mit dem namen phpsessid wird gestetzt aber das adminmenü und loggout werden nicht angezeigt,
nur login

-=Player=-
05.12.2008, 11:36
lass dir mal zum test $_SESSION['username'] ausgeben und schau mal ob das mit den sessions so funktioniert hat.

systemless
05.12.2008, 11:56
Ok ich hatte vergessen eine alte variable rauszunehmen.
Es klappt jetzt aber noch eine frage:
is es möglich ohne frames das menü als einzelne datei zu machen so das ich nicht in jedem einzelnen file ändern muss? so was wie include oder so??

-=Player=-
05.12.2008, 12:09
ja klar, du baust dir entweder mit einer durchsichtigen tabelle oder divs das grundgrüst auf und fügst die einzelnen teile mit include ein.

das bild ist jetzt nur zum verständnis wie das ganze funktioniert.
http://i38.tinypic.com/124k9jl.jpg

systemless
05.12.2008, 12:15
Danke kannst du mir sagen was hier dran in der letzten zeile falsch ist???

<?php
$username = "systemless";
if ($_SESSION['username'] != $username)
{
echo "<P ALIGN=\"center\"><Font size=\"16\">Error not logged in</font></p>";
echo "<P ALIGN=\"center\"><Font size=\"6\">Back to <a href=\"index.php\" target=\"_top\">Index</a></font></p>";
exit;
}
else {
?>
<center>Here are your Login's:


<form name="form">
<textarea cols="80" rows="30">
<?php include("lkrjaghao4oh.txt");?></textarea></form>

-=Player=-
05.12.2008, 12:20
in der letzt zeile ist eigentlich alles richtig. was kommt denn für ein fehler?
sicher das die datei überhaupt vorhanden ist?

systemless
05.12.2008, 13:05
der felher ist:

Parse error: syntax error, unexpected $end in C:\xampp\htdocs\test\test\admin.php on line 36

-=Player=-
05.12.2008, 13:10
du hast vergessen die klammer von dem else zu zumachen


<?php
$username = "systemless";
if ($_SESSION['username'] != $username)
{
echo "<P ALIGN=\"center\"><Font size=\"16\">Error not logged in</font></p>";
echo "<P ALIGN=\"center\"><Font size=\"6\">Back to <a href=\"index.php\" target=\"_top\">Index</a></font></p>";
exit;
}
else {
?>
<center>Here are your Login's:



<form name="form">
<textarea cols="80" rows="30"><?php include("lkrjaghao4oh.txt");?></textarea>
</form>

<?php }?>

systemless
05.12.2008, 13:19
Danke klappt perfekt.
Habe aber noch eine frage wie schreibe ich in eine datei die auf einer gleichen ebene
liegt aber in einem anderen ordner??
/./bla ??

-=Player=-
05.12.2008, 13:32
<?php include 'testordner/datei.php'; ?>

systemless
05.12.2008, 13:55
ich meine der ordner mit der einen datei liegt in z.b. c:/bla un die andere in c:/blabla
muss ich dann /../blabla schreiben??

-=Player=-
05.12.2008, 14:04
bin mir jetzt nicht sicher :oops: ob so:
/../blabla
oder so:
../blabla

einfach kurz test ;) aber die richtung ist schon richtig

Hennieliminator
05.12.2008, 16:05
/blabla/ ist immer der ordner blabla im rootknoten des dateisys also z.b C:/blabla/
../blabla/ ist der ordner in der nächst höheren ebene also wenn du im ordner C:/kaka/test/ bist wär ../blabla/ in dem falle C:/kaka/blabla/
./blabla/ ist immer der ordner blabla/ im aktuellen verzeichnis^^

MfG

systemless
05.12.2008, 17:08
also wenn ich eine datei habe im ordner blabla.de/1/ und ich von da auf blabla.de/2 zugreifen will schreibe ich ./2/

Added after 27 minutes:

wie macht man das mit divs??

Hennieliminator
05.12.2008, 19:54
divs???

wenn du eine datei im ordner "blabla.de/1/" liegen hast (also zb. "blabla.de/1/test.php") dann musst du
sollte 2 ein ordner sein und du willst eine datei dadrin aufrufen schreibst du zb "../2/datei.php"
sollte 2 eine datei sein, schreibst du "../2.php" (oder was auch immer die endung ist)

systemless
05.12.2008, 21:56
Danke klappt.
Noch zwei fragen:
Wie beende ich eine sessionid die über cookies funktioniert???
und ist es möglich eine php datei so zu gestalten, das ich die post daten erst aufnehme
und dann an einen anderen server weitersende, das man also tatsächlich eingeloggt ist?(sry gehört so halb zu phishing

Hennieliminator
06.12.2008, 12:32
zu1: du musst einfach "session_unset()" machen mein ich^^
zu2: moment^^ noch nie versucht.. müsste aber gehen *les*

Added after 2 minutes:

schau dir mal die curl funktionen an.. damit müsste das gehen... www.php.net

systemless
06.12.2008, 17:07
das mit der session beenden klappt leider nicht ins anere muss ich mich noch reinlesen

Hennieliminator
10.12.2008, 12:11
oups versuchs mit "session_destroy()"

systemless
10.12.2008, 18:00
hat nicht geklappt :( der cookie bleibt einfach

Hennieliminator
10.12.2008, 18:53
jaa der cookie bleibt... nur die daten aus der Session werden gelöscht, ist aber nicht schlimm

systemless
10.12.2008, 19:24
ok klappt jetzt ich hab vergessen session start am anfang zu machen.
noch eine frage wieso klappt diese weiterleitung wenn ich den code:

{
header("location: index.php");
session_start();
session_register("username");
$_SESSION['username'] = $username;
echo "<P ALIGN=\"center\"><Font size=\"12\">Erfolgreich eingeloggt!!</font></p>";
echo "<P ALIGN=\"center\"><Font size=\"3\">Wenn du nicht weitergeleitet wirst klicke <a href=\"index.php\">hier.</a></font></p>";
}
eingebe
bekomme ich diese fehlermeldung:


Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\test\login.php:10) in C:\xampp\htdocs\test\test\login.php on line 50

Added after 1 hours 18 minutes:

in zeile 10 steht:
<script type="text/javascript" src="chromejs/chrome.js">

Hennieliminator
10.12.2008, 20:54
du kannst den header nur verändern wenn noch kein content gesendet wurde, halt der header...

deshalb darfst du bevor du header benutzt auf keinen fall eine ausgabe machen, in irgend einer weise

also vor header keine echo()s oder <script>.. oder sonstige ausgaben^^

systemless
10.12.2008, 21:17
Ok ich habe es jetzt so geregelt, das, wenn das if true wird ein include wirkt. klappt wunderbar mein einziges problem hat was mit dem hoster zu tun ich kann fwrite und include nicht benutzen
wenn ich einen txt file mit include einbinden will bekomme ich diese fehlermeldung:



Warning: include() [function.include ('function.include')]: Unable to access ./logs/schuelervz.txt in /data/www/sites/1/idoo.com/s/y/systemless/site/admin.php on line 26




Und wenn ich in diesen file schreiben will passiert garnichts, ich bekomme nicht mal eine Fehlermeldung. Bei welchem hoster wäre so etwas möglich, denn bei xamppp klappt alles perfekt.

AlterHacker
10.12.2008, 21:20
Ok ich habe es jetzt so geregelt, das, wenn das if true wird ein include wirkt. klappt wunderbar mein einziges problem hat was mit dem hoster zu tun ich kann fwrite und include nicht benutzen
wenn ich einen txt file mit include einbinden will bekomme ich diese fehlermeldung:



Warning: include() [function.include ('function.include')]: Unable to access ./logs/schuelervz.txt in /data/www/sites/1/idoo.com/s/y/systemless/site/admin.php on line 26




Und wenn ich in diesen file schreiben will passiert garnichts, ich bekomme nicht mal eine Fehlermeldung. Bei welchem hoster wäre so etwas möglich, denn bei xamppp klappt alles perfekt.

Warum includest du eine .txt?

Ist da code drinne den du Starten willst? also Php-Code oder einfach nur Content?

setCookie() Cookie einfach ein Verfallsdatum geben das schon erreicht ist. zb . 10 :D

systemless
10.12.2008, 21:22
Da sind meine passwörter drinne xd das soll in einem textfeld angezeigt werden