ugrás a tartalomhoz

SESSION kezelés a rossz?

ifrozen · 2006. Jún. 21. (Sze), 22.54
Elég kezdő vagyok a témában (mily meglepő - ha pro lennék tudnám :D) Olvasgattam a sessionökről és azt hiszem hogy ez így jó is de nagyon úgy tünik mégsem: nem találom a hibát. Kérem segitsetek. (amig kézzel barmoltam a cookie-kat addig jó volt de ezt igy szeretném hogy menjen...

kösz a segitséget előreis.

ifrozen...

--------------------------------------



kód magában az oldalban:
  1. <?php  
  2. session_start();  
  3. require_once("lib/lib.php");  
  4. csinald_mysql_kapcsolat(); // ez tuti hogy működik.  
  5. login_lekezeles();  
  6. mysql_close($kapcsolat);  
  7.   
  8. function login_lekezeles() {  
  9.     # lekezeli a belépési mûveletet  
  10.     global $kapcsolat;  
  11.       
  12.     $parancs = "SELECT * FROM login WHERE username = '".mysql_real_escape_string( $_REQUEST['username'] )."'";  
  13.     $eredmeny = mysql_query($parancs$kapcsolat);  
  14.     $sorok_szama = mysql_num_rows($eredmeny);  
  15.     if ( $sorok_szama != 1 ) {  
  16.         die ("több user ugyanazon a néven");  
  17.     }  
  18.   
  19.     while ( $egy_sor = mysql_fetch_row( $eredmeny ) ) {   
  20.         if ( $egy_sor['passwd'] == mysql_real_escape_string($_REQUEST['password'] ) ) {  
  21.             print "jelszo passzol<br />";   
  22.             print "<div align=\"center\">Sikeres belépés<br />";  
  23.             # loggedin válozó beállitása  
  24.             $_SESSION['loggedin'] = true;  
  25.             $_SESSION['loginname'] = $_REQUEST['username'];  
  26.         } else if ( $egy_sor['passwd'] != mysql_real_escape_string($_REQUEST['password'] ) {  
  27.             print "jelszó NEMpasszol<br />";  
  28.             print "<div align=\"center\">Rossz jelszó!<br />";  
  29.         }  
  30.         print "</div>";  
  31.     }  
  32. }  
 
1

kéne mégvalami

Anonymous · 2006. Jún. 22. (Cs), 08.27
Fontos lenne ha leírnád hogy mit csinál illetve mit NEM csinál a kódod? Van hibaüzenet vagy nincs? Vagy mindíg azt írja hogy nem jó a jelszó? Vagy mit csinál?
2

$kapcsolat

Poetro · 2006. Jún. 22. (Cs), 09.47
A $kapcsolat változó honnan jön? mert én nem látom mikor jön létre.
3

jogos....

ifrozen · 2006. Jún. 22. (Cs), 11.56
szóval: azt kéne csinálnia hogy kiválasztja azt a felhasználónevet a táblából amit beirtam, összehasonlitja a táblában tárolt jelszót a beirttal és ha jó arkor 2 változót átállit nekem a session-ben, és kiirja hogy sikeres-e vagy sem

ehez képest: amikor a php kódhoz ér megáll az oldal kirajzolása szóval nem jut el semeddig a login_lekezeles() függvényben.
A csinald_mysql_kapcsolat() szerintem tuti hogy működik de azért bemásolom az ide tartozó részeket:
  1. function csinald_mysql_kapcsolat() {  
  2. $kapcsolat = mysql_kapcsolat_epites("127.0.0.1","ifrozen","****","szavakmagyarul");  
  3. }  
  4.   
  5. function mysql_kapcsolat_epites($domain$username$pass$dbname) {  
  6.     $kapcsolat = mysql_connect($domain$username$pass);   
  7.       
  8.     if ( ! $kapcsolat ) { # ha nem jött létre a kapcsolat.  
  9.         print "Nem lehet csatlakozni az adatbázis-kiszolgálóhoz! ".mysql_error();  
  10.     }  
  11.     mysql_select_db($dbname,$kapcsolator die("nem lehet kapcsolódni a kiszolgálóhoz!".mysql_error() );  
  12.     return $kapcsolat;  
  13.       
  14. }  
szóval innen van a $kapcsolat amit ki is épit különben anyázott volna. sztem legalábbis.
5

$kapcsolat

Poetro · 2006. Jún. 22. (Cs), 13.09
Akkor egy ilyen dolog hiányzik neked:
  1. <?php  
  2. function csinald_mysql_kapcsolat() {  
  3.   return mysql_kapcsolat_epites("127.0.0.1","ifrozen","****","szavakmagyarul");  
  4. }  
  5. $kapcsolat = csinald_mysql_kapcsolat();  
  6. ?>  
7

ez ugyanaz....

ifrozen · 2006. Jún. 22. (Cs), 14.23
...legalábbis ugyanazt csinálja csak picit másképp, a hatás is ugyanaz.

nem itt lesz a probléma csak sehogysem látom hogy hol. :S
8

igazad van mégis

ifrozen · 2006. Jún. 22. (Cs), 14.30
most hogy igy végiggondolom igaz amit mondasz, mert a $kapcsolat változó nem volt korábban definiálva. nah megyek vissza debugolni :S
4

a session kezelésnek az első print elé kellene mennie, nem?

sotetbarna · 2006. Jún. 22. (Cs), 12.02
mi lenne, ha lecserélnéd a
  1. print "jelszo passzol<br />";   
  2. print "<div align=\"center\">Sikeres belépés<br />";  
  3. # loggedin válozó beállitása  
  4. $_SESSION['loggedin'] = true;  
  5. $_SESSION['loginname'] = $_REQUEST['username'];  
erre
  1. # loggedin válozó beállitása  
  2. $_SESSION['loggedin'] = true;  
  3. $_SESSION['loginname'] = $_REQUEST['username'];  
  4. print "jelszo passzol<br />";   
  5. print "<div align=\"center\">Sikeres belépés<br />";  

barna
6

Nem

Anonymous · 2006. Jún. 22. (Cs), 13.27
kevered a session_starttal, de arra sem igaz minden esetben
9

nem fut le a függvény = rosszul konfigolt apache

ifrozen · 2006. Jún. 22. (Cs), 14.36
... ennyi... ha csak irok egy függvényt:
  1. function proba() {  
  2.     print 'PROBA SZOVEG';  
  3. }  
akkor az már nem jelenik meg akkor sem, ha egy (és ugyanazon) fájlban irom le őket... ez miért lehet és hol lehet ezt beállitani?

ifrozen
10

megÍR != megHÍV

tiku I tikaszvince · 2006. Jún. 22. (Cs), 17.35
Lehet hogy csak elkerülte a figyelmemet, de meghívod a függvényedet?
Az hogy megírsz egy függvényt nem jelenti azt, hogy meg is hívod...
A most írt próba függvényed csak akkor produkál kimenetet, ha meg is hívod!
Ha ez is stimmel, akkor próbáld a meghívást a function proba() {...} után tenni, és ne elé. Csak a biztonság kedvéért...
11

azért.....

ifrozen · 2006. Jún. 22. (Cs), 22.18
...ennyi programozási tudás már van bennem!

nyilván meghivtam de a lényeg hogy nem fut le!
azt hittem ez nyilvánvaló.

ifrozen