Session verwaltung mim cookie?

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/session_verwaltung_mim_cookie_66136/page_1 - zur Vollversion wechseln!


semteX schrieb am 06.02.2003 um 16:07

Also mei seitn is jetzt scho zum teil fertig... newsscript, bildergallery etc fertig.... jetzt wollt i mit der session verwaltung anfangen...

meine frage:

Wie funkt das mit cookies?

Wenn sich der user einloggt wird a cookie angelegt... mit benutzer und PW...

1. Frage: Is das ned sehr unsicher mit Benutzername und PW speichern?
nur anders weis i das ned wie das geht :( oder was speichert ihr im cookie?

wenn das cookie gesetzt ist...

also if(isset(logindat))
{
session_register("id");
session_register("passwort");
}

danach if(isset(id) && isset(passwort))
{
passwortcheck

wenn auth geglückt ==> loginmenü anzeigen.
}

ansonsten falls es ned gesetzt ist ==> login bereich anzeigen

logindat ist der name des cookies...

frage 2: Wie les ich aus nem gesetztn cookie datn aus? geht es eh so wie oben?

wenn die daten ausgelesn sind muss ich ja nur noch überprüfn in da SQL DB ob der Username und das PW zusammenstimmt...

ist das jetzt ne sehr unkonventuelle lösung? ne hinige? ne unsichere?

i hab mal wo gelesn dass es wahnsinnig unsicher ist pw unverschlüsselt zu speichern?

oder soll i einfahc das pw mit 12.588-56.87*568/2.45 dividiern? Oda is das wieder so ne schnapsidee?

Sorry für die noobfragen, i hab so was mit sessions no nie gemacht :)

mfg

p.s: Syntax fehler sind sicherlich genug drin ;) nur i möcht jetzt ned alles nachschlagn ==> scho länger nix mehr mit den sessions gmacht...


atrox schrieb am 06.02.2003 um 16:23

wenn man direkt cookies verwendet ist es in der tat besser eine (evt. onetime) session-id/hash zu erzeugen, und nur diese zur identifikation zu verwenden.

wenn du die session-funktionen von php verwendest, macht php das automatisch für dich: der browser bekommt eine sessionid zugeteilt, und php speichert sich in einer temporären datei die variablen für diese session ab.


semteX schrieb am 06.02.2003 um 16:27

Zitat von atrox
wenn man direkt cookies verwendet ist es in der tat besser eine (evt. onetime) session-id/hash zu erzeugen, und nur diese zur identifikation zu verwenden.

wenn du die session-funktionen von php verwendest, macht php das automatisch für dich: der browser bekommt eine sessionid zugeteilt, und php speichert sich in einer temporären datei die variablen für diese session ab.
jo des weis i scho

aber: der war auf der seite, schließt die wieder... und geht wieder rauf...

gilt dann die Session ID noch?

kann ma mit ner Session id den ganzn Benutzer authentifisziern?

also kann ich statt dem pw die Session id nehmen? ned oder? die ändert sich ja imma

mi würds interessiern: welche daten speicherst du im cookie sobald sich der user zum 1. mal eingelogged hat?

mfg


atrox schrieb am 06.02.2003 um 16:34

ahso.. so willst du das - hab ich irgendwie nicht rausglesen.
nein, die session-id wird irgendwann ablaufen, und php die temporäre datei löschen.

generiere beim einloggen irgendeine zufallszahl rkey, die du noch nicht vergeben hast:
a) schicke rkey an den browser als cookie
b) schreibe in die db einen datensatz mit (username,rkey)

das nächste mal wenn der user ohne session-variablen daherkommt, findest du über die datenbank heraus, wer er zuletzt war. du brauchs so weder das passwort nochmal abspeichern noch zu übertragen.

/* es gibt dann weitere verfeinerungen, wie expire für diese db-eintragungen usw */


semteX schrieb am 06.02.2003 um 16:43

ah... super! danke... genau das meinte ich..

wenn ma sich dann erneut einlogged wird ebn der rkey neu generiert und wieder geschriebn...

so last frage :)

wie greif i dann auf das cookie zu? i mein mit den gespeichertn variablen?

wie müsste der code lautn wenn ich a cookie mit den variablen $name und $key füttern möchte?

und wie les ich dann die variablen wieder aus dem cookie raus?

dann hätt i alles was ich brächte :)

Vieln dank für deine Hilfe Atrox :)
mfg


atrox schrieb am 06.02.2003 um 16:47

das steht alles drinnen:
http://www.php.net/manual/en/function.setcookie.php


jives schrieb am 06.02.2003 um 16:52

Ich würde 2 Cookies setzen, den einen nennst "user" oder wwi und den anderen eben "key" also:

setcookie("user", $user, $irgendeinezeit);
setcookie("key", $unique_key, $irgendeinezeit);

Am besten du greifst mit $_COOKIE['variable'] darauf zu, wobei gilt: Cookiename == Variablenname

Siehe auch:
http://www.php.net/manual/en/function.setcookie.php

//edit: darn, ge:eek:wnt


semteX schrieb am 06.02.2003 um 16:58

thx ihr 2 :) jetzt check ich's :)

also pro cookie kann man nur eine Var speichern oder?

eh egal, falls ich es ned zambringt schreib i heut abend mal was :)

mfg


jives schrieb am 06.02.2003 um 17:23

Zitat von semteX
also pro cookie kann man nur eine Var speichern oder?

Ja. Aber du könntest in einem Cookie ein Array mit implode() speichern und später auf die einzelnen Daten mit explode() zugreifen.


semteX schrieb am 06.02.2003 um 17:26

Zitat von jives
Ja. Aber du könntest in einem Cookie ein Array mit implode() speichern und später auf die einzelnen Daten mit explode() zugreifen.
das geht natürlich sure

edit: so trottl wieder hier:

$test = "test";
setcookie("testcookie", $test);

warum ownt des ned? fehler gibt er keinen zurück... aber er speichert des cookie ned ab..

mfg


atrox schrieb am 06.02.2003 um 17:35

$_COOKIE[testcookie] bzw $testcookie sollte beim nächsten seitenaufruf vorhanden sein.

ohne expire-angabe hällt das cookie allerdings nur bis zum browser-restart - für ein permanentes cookie brauchst eine zeitangabe


jives schrieb am 06.02.2003 um 17:42

Noch was wichtiges: Das Cookie MUSS vor jedwedem Output, sprich html-Code, gesetzt werden.


watchout schrieb am 06.02.2003 um 18:21

Zitat von jives
Noch was wichtiges: Das Cookie MUSS vor jedwedem Output, sprich html-Code, gesetzt werden.
sowie _vor_ den header-definitionen


semteX schrieb am 06.02.2003 um 22:11

ok... das cookie setzn / löschn hab ich jetzt zamgebracht... darum fing i jetzt mal an...

das ziel war einfach... i logg mi ein... und er schaut mal in der mysql db.. ob das pw passt...

UND I BIN ZU BLED :(

i find den fehler ned :( i checks nimma...

der code:

Zitat
<?php

if(!isset($login_cookie))
{
$conn_id = mysql_connect("localhost","root");
mysql_select_db("CN",$conn_id);
$sql = "SELECT passwort FROM user WHERE username = '$username' limit 1";
$result = mysql_query($sql, $conn_id);
if(mysql_num_rows($result)) == 0) {
echo "benutezr existiert nicht";
}
else {

$row = mysql_fetch_row($result);

if($row['passwort'] == $passwort)
{
echo "geh bitte";
}
}

}
echo $username;

?>


<html>

<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta name="generator" content="Adobe GoLive 5">
<title>Willkommen bei Adobe GoLive 5</title>
</head>

<body bgcolor="#ffffff">
<p>
<form name="FormName" action="<? echo $PHP_SELF ?>" method="get">
<input type="text" name="username" size="10" maxlength="25">
<p><input type="password" name="passwort" size="10" maxlength="50"></p>
<p><input type="submit" name="Absenden"></p>
</form>
</body>

</html>

die datenbank schaut so aus:

eine Datenbank mit namen CN
ne tabelle mit namen user

die spaltn heissn: username (varchar), passwort (varchar), id (shortint), uniqueid(varchar)...

mit uniqueid würd i erst später wos machn...

im mom kommt a pharse error on line 9...

zu begutachtn gibts das unta http://semtexkg.no-ip.com/test1.php

danke für die hilfe. i find einfach den fehler ned..

ajo: i verwend phptriad...

die datei phpinfo.php rennt eh (http://semtexkg.no-ip-com/phpinfo.php)

edit: username ist semteX, pw ist 123456, für alle die es testn wolln


atrox schrieb am 06.02.2003 um 22:14

if(mysql_num_rows($result)) == 0) {




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026