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:

<?php
session_start();
require_once("lib/lib.php");
csinald_mysql_kapcsolat(); // ez tuti hogy működik.
login_lekezeles();
mysql_close($kapcsolat);

function login_lekezeles() {
	# lekezeli a belépési mûveletet
	global $kapcsolat;
	
	$parancs = "SELECT * FROM login WHERE username = '".mysql_real_escape_string( $_REQUEST['username'] )."'";
	$eredmeny = mysql_query($parancs, $kapcsolat);
	$sorok_szama = mysql_num_rows($eredmeny);
	if ( $sorok_szama != 1 ) {
		die ("több user ugyanazon a néven");
	}

	while ( $egy_sor = mysql_fetch_row( $eredmeny ) ) { 
		if ( $egy_sor['passwd'] == mysql_real_escape_string($_REQUEST['password'] ) ) {
			print "jelszo passzol<br />"; 
			print "<div align=\"center\">Sikeres belépés<br />";
			# loggedin válozó beállitása
			$_SESSION['loggedin'] = true;
			$_SESSION['loginname'] = $_REQUEST['username'];
		} else if ( $egy_sor['passwd'] != mysql_real_escape_string($_REQUEST['password'] ) {
			print "jelszó NEMpasszol<br />";
			print "<div align=\"center\">Rossz jelszó!<br />";
		}
		print "</div>";
	}
}
 
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:
function csinald_mysql_kapcsolat() {
$kapcsolat = mysql_kapcsolat_epites("127.0.0.1","ifrozen","****","szavakmagyarul");
}

function mysql_kapcsolat_epites($domain, $username, $pass, $dbname) {
	$kapcsolat = mysql_connect($domain, $username, $pass); 
	
	if ( ! $kapcsolat ) { # ha nem jött létre a kapcsolat.
		print "Nem lehet csatlakozni az adatbázis-kiszolgálóhoz! ".mysql_error();
	}
	mysql_select_db($dbname,$kapcsolat) or die("nem lehet kapcsolódni a kiszolgálóhoz!".mysql_error() );
	return $kapcsolat;
	
}
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:

<?php
function csinald_mysql_kapcsolat() {
  return mysql_kapcsolat_epites("127.0.0.1","ifrozen","****","szavakmagyarul");
}
$kapcsolat = csinald_mysql_kapcsolat();
?>
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

            print "jelszo passzol<br />"; 
            print "<div align=\"center\">Sikeres belépés<br />";
            # loggedin válozó beállitása
            $_SESSION['loggedin'] = true;
            $_SESSION['loginname'] = $_REQUEST['username'];
erre

            # loggedin válozó beállitása
            $_SESSION['loggedin'] = true;
            $_SESSION['loginname'] = $_REQUEST['username'];
            print "jelszo passzol<br />"; 
            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:
function proba() {
    print 'PROBA SZOVEG';
}
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