PHP és session

PHP és session

Hozzászólások

Jason: kicsit rendbetettem a kódot, és átírtam a példád alapján. Sokat segített! :)
A banánok számát már jól kezeli, de a pénzt mindig 100ra állítja, és nem tudom miért. :(
http://pastebin.com/405621

Próbálkoztam session alkalmazásával, de sehogy sem akar működni. Kipróbáltam a php.net oldalon található példaprogramokat, mind session-re, mind cookie-ra, de egyik sem működik. A helyzet az, hogy maga az oldal lefut, hibaüzenet nélkül, ám nem jegyzi meg azt, amit meg kellene a következő betöltésnél (a böngészőt nem zárom be).
Azt szeretném elérni, hogy ne az URL-ben kelljen POST-tal továbbküldeni az adatokat, illetve később felhasználó-azonosítás miatt is jól jönne.
Jól jönne a segítség, mert megveszek, hogy komoly php dolgokat írhassak, de e nélkül nem megy. :(
Remélem Ti tudtok valami okosat mondani! :D

a php config fileban engedelyezted a sessionokat es a cookiekat?
amugy ha esetleg vmi kodolasi hiba van, vagy akarsz jo tutorialokat esetleg forumokat akkor itt nezz korul:
http://weblabor.hu/kereses?s=munkamenet

A php.ini fájlban állítsd be a következőket:

[code:1:90abc0a36c]
session.use_cookies = 1
session.cookie_lifetime = 0
session.use_trans_sid = 0
[/code:1:90abc0a36c]

Ezután webszerver restart.
Valamint minden fájl elején meg kell majd hívnod a session_start(); függvényt. Ha állítottad a session nevét, akkor még ez előtt kell a session_name("session_uj_neve"); függvény is.

[quote:1a7eb97b69="Emulgeator"]a php config fileban engedelyezted a sessionokat es a cookiekat?
amugy ha esetleg vmi kodolasi hiba van, vagy akarsz jo tutorialokat esetleg forumokat akkor itt nezz korul:
http://weblabor.hu/kereses?s=munkamenet

Engedélyezve van a session és a cookie is. Ezt a számlálós példát próbáltam ki, de nem működik. Vagy ez így önmagában nem megy? Az a baj, hogy nem találtam még egyetlen egységes leírást sem. Minden problémának millió megoldása van php alatt, de ezek nincsenek összeszedve, ezért képtelen vagyok megérteni a session működésének elvét.
Körülnéztem az oldalon, amit adtál, de csak olyan infókat találtam, amiket azok tudnak hasznosítani, akik már vágják ezt a témát. :(

[quote:64d2698a07="tentacle"]A php.ini fájlban állítsd be a következőket:

[code:1:64d2698a07]
session.use_cookies = 1
session.cookie_lifetime = 0
session.use_trans_sid = 0
[/code:1:64d2698a07]

Ezután webszerver restart.
Valamint minden fájl elején meg kell majd hívnod a session_start(); függvényt. Ha állítottad a session nevét, akkor még ez előtt kell a session_name("session_uj_neve"); függvény is.

Így vannak beállítva. :)

Hmm ezt is megnezted:
http://weblabor.hu/cikkek/munkamenetkezeles1
?
Hja es ha tuti jo a config akkor vagd be a kodot amit irtal, megnezem mit rontottal el, mivel ha jo a rendszer es a konfig akkor csakis a kod lehet a hibas.
Ide kirakhatod a kodot:
http://pastebin.com/

[quote:2504da8ea5="Emulgeator"]Hmm ezt is megnezted:
http://weblabor.hu/cikkek/munkamenetkezeles1
?
Hja es ha tuti jo a config akkor vagd be a kodot amit irtal, megnezem mit rontottal el, mivel ha jo a rendszer es a konfig akkor csakis a kod lehet a hibas.
Ide kirakhatod a kodot:
http://pastebin.com/

Ezt a cikket is megnéztem. :)
Itt a kód:
[code:1:2504da8ea5]<?php
session_start();
if (!session_is_registered('count')) {
session_register('count');
$count = 1;
} else {
$count++;
}
?>

<p>
Hello visitor, you have seen this page <?php echo $count; ?> times.
</p>

<p>
To continue, <a href="session.php<?php echo strip_tags(SID); ?>">click
here</a>.
</p>
[/code:1:2504da8ea5]
Ez a php.net oldaláról van, ezzel akartam tesztelni, hogy megy-e a session.

Miért veszed ki külön változóba session-ből az értékeket?

Sztem annyi elég, h
[code:1:2005c756ce]
if (!isset($_SESSION['money'])) {
$_SESSION['money'] = 100;
}
[/code:1:2005c756ce]
Próbáld ki, hogy mindenhol a $_SESSION-nel dolgozol.
[/code]

[quote:7e5b2c8275="Jason"]Miért veszed ki külön változóba session-ből az értékeket?

Sztem annyi elég, h
[code:1:7e5b2c8275]
if (!isset($_SESSION['money'])) {
$_SESSION['money'] = 100;
}
[/code:1:7e5b2c8275]
Próbáld ki, hogy mindenhol a $_SESSION-nel dolgozol.
[/code]

Először lustaságból: nem akartam annyi $_SESSION-t használni. :) Illetve azt hittem, hogy elegánsabb, ha végig ideiglenes változókat használok. Megpróbálom a változók nélkül. :)
Átírtam, de a pénz még mindig nem változik. :( Marad 100-on, akármennyit vásárolok abból a rohadt banánból. :D

hmm, probalj egy egyszeru peldat, hogy mondjuk kezzel egy par session valtozot letrehozol, es azt atkuldod egy masik oldalra.
[code:1:e6a0477812]
<?php
session_start();
$_SESSION['EXAMPLE'] = 'PELDA';
echo "<a href=\"masik.php\">klikk ide</a>";
?>
[/code:1:e6a0477812]
masik.php:
[code:1:e6a0477812]
<?php
session_start();
echo $_SESSION['EXAMPLE'];
?>
[/code:1:e6a0477812]
Ha nem irja ki hogy pelda akkor nem adja at.
Amugy a szamlalos igy lenne jol (idezet a php.hu rol):
[code:1:e6a0477812]
<?php
session_start();
if (isset($HTTP_SESSION_VARS['szamlalo'])) {
$HTTP_SESSION_VARS['szamlalo']++;
}
else {
$HTTP_SESSION_VARS['szamlalo'] = 0;
}
?> [/code:1:e6a0477812]

Köszi! Ezer hála! Működik mindkettő! :)
Mi a különbség a sima $_SESSION és a $HTTP... között?

Hja es meg vmi, sry de meg kell kerdeznem a bongeszodben engedelyezve vannak a cookiek?

[quote:a10bbe42e3="Emulgeator"]Hja es meg vmi, sry de meg kell kerdeznem a bongeszodben engedelyezve vannak a cookiek?

Igen. :)

A régi $HTTP -és megoldás volt a korai php-kban.
AZ úh $_SESSION -os megoldás az újban. Innentől kezdve a $_SESSION úgy viselkedik mint egy rendes tömb, a session_register és társai erősen felejtősek.

Nagy előnye még a $_ tömböknek, hogy superglobálisak, tehát bármelyik függvény, bármelyik objektum bármelyik sorából hivatkozhatsz rájuk.

A $HTTP tömbök használata nem javasolt. a következő verzióban (php5) már alapértelmezettként létre sem jönnek.

[quote:9baafc12ec="TLoF"]A régi $HTTP -és megoldás volt a korai php-kban.
AZ úh $_SESSION -os megoldás az újban. Innentől kezdve a $_SESSION úgy viselkedik mint egy rendes tömb, a session_register és társai erősen felejtősek.

Nagy előnye még a $_ tömböknek, hogy superglobálisak, tehát bármelyik függvény, bármelyik objektum bármelyik sorából hivatkozhatsz rájuk.

A $HTTP tömbök használata nem javasolt. a következő verzióban (php5) már alapértelmezettként létre sem jönnek.

Vagyis az összes változót tárolhatom $_SESSION tömbökben, és azok elérhetőek lesznek az egész "program" részére?

[quote:b3b747a0d4="ScOut3R"]
Vagyis az összes változót tárolhatom $_SESSION tömbökben, és azok elérhetőek lesznek az egész "program" részére?

Igen, és sessionban is lesznek.

[quote:9990fcd86a="Jason"][quote:9990fcd86a="ScOut3R"]
Vagyis az összes változót tárolhatom $_SESSION tömbökben, és azok elérhetőek lesznek az egész "program" részére?

Igen, és sessionban is lesznek.

És ezek "program" függőek? Mondjuk, ha egy másik php-s program is használ egy ugyanolyan nevű session tömböt, akkor nem lesz összeakadás?

A $_SESSION nevű array jeleníti meg a php-ben a session kezelést.
Tehát ha beírsz valamit ebbe a tömbbe majd ugyanebben a sessionben átmész egy másik oldalra, ott is megtalálod a tömbben az értéket.
pl.
login.php:
$_SESSION['oID'] = $row['oID'];

majd index.php-be átmész (link, egyéb):

echo $_SESSION['oID'];

kiírja az értéket.

amíg ugyanabban a sessionban vagy.

[quote:5d8699f6f6="ScOut3R"]
És ezek "program" függőek? Mondjuk, ha egy másik php-s program is használ egy ugyanolyan nevű session tömböt, akkor nem lesz összeakadás?

Ez az egesz session dolog csak elsore ilyen bonyolult. Igazabol pofon egyszeru az egesz. Amit session -nek hivunk az nem mas mint egy fajl.
z a fajl a szerveren tarolodik (be lehet allitani melyik kvt -ban legyen .alapbol /tmp. Ebbol persze windowson rogton baj van mert ott nincs ilyen kvt.) Ebbe a fajlba tarolodnak a session adatok. Az most mindegy hogy hogy. Ami fontos, hogy ennek a fajlnak a nevet mindig tudnia kell a programodnak. Ezt a fajlnevet hivjuk session azonositonak. Veletlenszeru 32 db hexa karaterbol all a fajl neve, hogy ne lehessen kitalalni ( ez biztonsagi kerdes). Ha a programod nem tudja a fajl nevet, akkor nem tudja kiolvasni belole az ertekeket.
A folymat:
keres a bongeszotol >> program lefut letrejon a session >> a kimenetben elkuldi a session azonositott a bongeszonek >> kapcsolat megszakad |||
ujabb keres >> a bongeszo elkuldi a session azonositot >> a program megtalalja a fajlt >> innen ugyan az mint elobb.
Kritikus dolog, hogy kozlekedik a session azonosito a szerver es a bongeszo kozott.
Bongeszotol a szerver fele harom lehetseges modja van:
1) Cookie -ban
2) AZ url -ben
3) <input type="hidden"> urlapmezoben. (ez a formoknal van)

Szervetol a bongeszo fele :
1) Cookie -ban
2) A html forrasaban

Azt hogy eppen, melyik modon tortenik a szerver kulonbozo sessionnel kapcsolatos beallitasai, illetve a felhasznalo bongeszojenek beallitasai egyuttesen hatarozzak meg.

Nagyjabol ennyi. Kicsit olvasgass meg utana.
Ja es a kerdesedre a valasz:

Az a program fog beleirni a session -be amelyik megkapja az azonositojat. De! Csak szep sorban egymas utan. Ameddig az egyik program (php szkript) hasznalja addig a masik nem fer hozza. Csak miutan ez elozo befelyezte vele a munkat. Addig szepen varakozik, es idonkent probal hozzaferni, hogy felszabadult e mar.
Erre gyakorlati pelda a frame -es oldalak.

Köszönöm mindenkinek a segítséget! Nélkületek már rég feladtam volna a php-s "tanulmányaimat". :)
Már van egy kezdetleges php progim, azt átírom session-re, meglátom mi lesz.

Próbálkoztam, de kevés sikerrel. :( A program lefut, de nem jegyzi meg a változókat.
Feltettem ide http://pastebin.com/404495 a kódot. Nagyon hálás lennék, ha valaki kijavítaná. :) :oops: Előre is köszönöm!

Egy egyszerűbb kód, hogy érthető legyen.
Ebből növeszd ki a tiédet.
[code:1:a5be4d6bd9]
<html>
<?php

session_start();

if (isset($_GET['logout'])) {
echo 'Viszlát, ' . $_SESSION['username'] . '<br \>';
$_SESSION['username'] = '';
session_destroy();
session_start();
}
if (isset($_SESSION['username'])) {
echo 'Helló, ' . $_SESSION['username'] . '<br \>';
echo '<form method="get" action=""><input type="submit" name="logout" value="Kilép"></form>';

} else if (isset($_GET['username']) && isset($_GET['passwd']) && $_GET['passwd'] == 'almakorte') {
$_SESSION['username'] = $_GET['username'];
echo 'Helló, ' . $_SESSION['username'] . '<br \>';
echo '<form method="get" action=""><input type="submit" name="logout" value="Kilép"></form>';

} else {
?>
<form method="get" action="">
<input type="text" name="username">
<input type="password" name="passwd">
<input type="submit" value="Mehet">
</form>
<?php
}
?>
<a href="?r=sas">Oldal újratöltése</a>
</html>
[/code:1:a5be4d6bd9]

Remélem érthető.
Magyarázat ugyanitt igényelhető:)

Ha okosan hasznalod akkor nem. Asszem csak ugy megy tovabb a session hogy egy oldalrol iranyitasz masikra, ha egy teljesen uj oldalt hozna be a user, anelkul hogy atiranyitottad volna header kuldessel vagy linkkel, akkor masik sessiont kezd ha van azon az oldalon is session_start().
Remelem ertheto voltam, kicsit magyartalan lett a megfogalmazas, koran van meg :D

[quote:fd44589d6a="ScOut3R"]Próbálkoztam, de kevés sikerrel. :( A program lefut, de nem jegyzi meg a változókat.
Feltettem ide http://pastebin.com/404495 a kódot. Nagyon hálás lennék, ha valaki kijavítaná. :) :oops: Előre is köszönöm!

Hmm, ez a kod bazi keszekusza. Ha ajanlhatok vmit, ne kezddj bele egybol bonyolult dologba. Kicsit olvasgass probalgasd az alapokat, hogy megszokd a webfejlesztes lenyeget es mikentjet.A PHPt Teljesen mashogy kell felfogni mint egy interpreter nyelvet.
Vannak nagyon jo konyvek, pls van egy konyv ami az apache php mysql telep[itesevel hasznalataval es alapveto webes programozasi problemakkal foglalkozik, ajanlom figyelmedbe: http://www.kiskapu.hu/index.php?BODY=BookInfo&OP=details&ID=1377&VISIT=1
Tenyleg jo konyv kezdoknek, haz ezt elolvasod megertesz sok mindent es akar mar fejleszthetsz is szinte barmit(folyamatos tanulassal melette).

[quote:dca1f32395="ScOut3R"]Próbálkoztam, de kevés sikerrel. :( A program lefut, de nem jegyzi meg a változókat.
Feltettem ide http://pastebin.com/404495 a kódot. Nagyon hálás lennék, ha valaki kijavítaná. :) :oops: Előre is köszönöm!

szal, nem szeded ki a $_POST-ból az adatokat :)
valahogy így kéne csinálni:
proba.php
[code:1:dca1f32395]
<?php
session_start();
if (isset($_POST['reset'])) { unset($_SESSION['money'],$_SESSION['banandb']); }
if (isset($_SESSION['money'])) { $money=$_SESSION['money']; } else { $money=100; }
if (isset($_SESSION['banandb'])) { $banandb=$_SESSION['banandb']; } else { $banandb=0; }

if (isset($_POST['vettbanan'])) {
if (!empty($_POST['vettbanan'])) {
$moneylenne=$money-($_POST['vettbanan']*$_POST['bananar']);
if ($moneylenne<0) {
$info="Nincs ennyi pénzed! <a href=\"proba.php?".SID."\">Vissza</a>";
} else {
$banandb+=$_POST['vettbanan'];
$money=$moneylenne;
}
}
}
if (isset($_POST['eladottbanan'])) {
if (!empty($_POST['eladottbanan'])) {
$bananlenne=$banandb-$_POST['eladottbanan'];
if ($bananlenne<0) {
$info="Nincs ennyi banánod! <a href=\"proba.php?".SID."\">Vissza</a>";
} else {
$money+=$_POST['eladottbanan']*$_POST['bananar'];
$banandb=$bananlenne;
}
}
}

$_SESSION['banandb']=$banandb;
$_SESSION['money']=$money;
?>
<html>
<title>Piac vazze</title>
<body>
<?php
function vasarolhato($money,$gyumolcs)
{
return floor(($money/$gyumolcs));
}
if (isset($info)) { echo $info; } else {
echo "A banán mai ára: ";
$bananprice=rand(5,15);
echo $bananprice." Ft<br>";
echo "<table><form action=\"proba.php\" method='POST'>
<tr><td>Pénzed: <td>$money Ft <td>Vétel <td>Vásárolható <td>Eladás
<tr><td>Ennyi banánod van: <td> $banandb <td><input type='int' size='4' maxlength='4' name='vettbanan'><td>".vasarolhato($money,$bananprice)."<td><input type='int' size='4' maxlength='4' name='eladottbanan'>
<input type=\"hidden\" name=\"bananar\" value=\"".$bananprice."\">
<tr><td><input type='submit' value='Tranzakció'></td>
<tr><td><input type='submit' name=\"reset\" value='Reset'></td></tr>
</form></table>";
}
?>
</body>
</html>[/code:1:dca1f32395]

nem szabad elfelejteni, hogy amit beállítasz a session-ba, az csak a következő oldallekéréskor lesz elérhető.

[quote:4f379fe658="edaile"]nem szabad elfelejteni, hogy amit beállítasz a session-ba, az csak a következő oldallekéréskor lesz elérhető.

Kár, hogy nem igaz.
http://koshinae.szgtikol.kando.hu/~jozso/php/index.phps
3-dik if szerkezet.

A kód rám jellemző, szétszórt! :D Először simán URL-ben küldtem tovább POST-tal a változókat, akkor hibátlanul ment, de ez nem egy elegáns és biztonságos megoldás. A problémát a session kezelése okozza. :)
Hála Nektek már kezd eltűnni a köd. Azt tudtam, hogy nem továbbítom a változókat, illetve nem kérdezem le őket rendesen, és ezért nem fut session-nel hibátlanul a progi. Most, hogy írtatok pár példát, megpróbálom rendbe tenni a kódot. Remélem sikerül! :)

Sziasztok,

Segítsetek pls, mert elakadtam.
Egyszerűen nem tudom írni-olvasni a $_SESSION-t, mindig azt a hibat kapom, hogy nem tudja beállítani a session-t, mert már leküldte a header-t. És nem értem, hogy miért.

cat php.ini | grep session:

session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4

Félek, valami nagyon alapot rontok el, mert már mindent átolvastam, amit csak találtam, ráadásul több más, már elkészült alkalmazásomban működnek a session-ök, ugyanezen a szerveren (is).
A végén már idáig egyszerűsítettem, de még mindig nem megy:

A t.php tartalma:


<?php
session_start();
$_SESSION['valtozo']='ertek';
echo '<a href="t2.php">klikk ide</a>';
?>

A t2.php:


session_start();
echo($_SESSION['valtozo']);

Már a t.php meghívásakor kapom a szokásos hibaüzenetet:
"Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/hda/webroot/t.php:1) in /mnt/hda/webroot/t.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/hda/webroot/t.php:1) in /mnt/hda/webroot/t.php on line 2"

itt kiirja ugyan a linket (klikk ide), de a t2.php-ban már csak a két warning jelenik meg. (ugyanez a kettő t2.php-re).

Cookie-k böngészőben engedélyezve. :)

Esetleg valami ötletet tudnátok adni, merre folytassam a hibakeresést, nagyon hálás lennék!

Előre is köszönöm!

üdvözlettel:

optimista

Köszönöm szépen!
Ez volt a probléma. Mindig tanulok valamit.
Most már tudom, olyan szövegszerkesztőt kell használnom, amiben be lehet állítani, hogy BOM nélkül mentse az UTF-8 fájlokat.
Az ob_start() most nem használt, de megnéztem, és megjegyeztem, később jól jöhet.
Köszönöm mindkettőtöknek a segítséget!
Üdv,
Optimista

Nagyon sok fájlban ki kellene cserélnem, a session_register("valami"); függvényt $_SESSION['valami'];-re, egy mágikus parancs kellene. Persze a "valami" tetszőleges karaktersorozat.

Az itteni leírás alapján próbáltam sed-el, de nem jött össze:
http://forums.netbeans.org/topic14199.html&highlight=

Valaki segítsen!

Köszönöm.

Nagyon nem próbáltam le, úgyhogy nem biztos, hogy jó:


#!/usr/bin/perl

use strict;
use warnings;

my $OUTFNAME = $ARGV[0].".new";

open INFILE, "<", $ARGV[0] or die $!;
open OUTFILE, ">", $OUTFNAME or die $!;

while (<INFILE>) {
    $_ =~ s/session_register\( (\s*[\'\"]) (\w*) ([\'\"]\s*) \)\;/\$_SESSION\[$1$2$3\]\;/gx;
    print OUTFILE $_;
}

close INFILE;
close OUTFILE;

Tedd egy akármilyen állományba, pl. replace_sess.pl, majd

chmod u+x replace_sess.pl
for f in `ls *.php`
do
    ./replace_sess.pl $f
done

VAGY


find /innen/indulj/phpk/ -type f -name "*.php" -exec ./replace_sess.pl {} \;

A régi állományaid megmaradnak, azok, amiben már a kicserélt szöveg van, *.php.new formátumúak lesznek.
Persze biztosan van ennél szebb, jobb, elegánsabb megoldás, de ez is használható.

--
A gyors gondolat többet ér, mint a gyors mozdulat.

Köszi, ez a megoldás tetszene, de futtatáskor ezt írja folyamatosan:

Use of uninitialized value $_ in print at ./replace_sess.pl line 13.
Use of uninitialized value $_ in substitution (s///) at ./replace_sess.pl line 12.
Use of uninitialized value $_ in print at ./replace_sess.pl line 13.
Use of uninitialized value $_ in substitution (s///) at ./replace_sess.pl line 12.
Use of uninitialized value $_ in print at ./replace_sess.pl line 13.
Use of uninitialized value $_ in substitution (s///) at ./replace_sess.pl line 12.

Ha a session_start() bennvan az index.php elején, minden form submit megáll az egész oldalon. Tehát form action="valami.php" method="post" esetén egyszerűen nem hívja meg a valami.php-t, hogy lekezelje az adatokat, hanem újratölti az aktuális oldalt amin a form van. Ha nem indítom el a session-t, minden form működik, vígan továbbküldi az adatokat a valami.php-nak, csak hát ugye akkor a login rendszer áll meg.
A fájlok amúgy ansi kódolásúak, úgyhogy a bom-os utf-8 hiba nem játszik.
php.ini-t megnéztem, és a beállításai megegyeznek a neten sok helyen írtakkal.

Előre is köszönöm a segítséget!

Ez a legfurább az egészben. Teljesen mind1 mi van benne. Ha tök üres a valami.php, ugyanúgy visszadob, mintha a komplett ellenőrző script lenne benne. Mintha meg se hívná...

Viszont sikerült még egy érdekességet felfedeznem. Az index.php-m elején egy isset-tel ellenőriztem, hogy a session létezik-e, és utána raktam if-be, hogy megnézze a felhasználó be van-e jelentkezve. Viszont ha kiveszem az isset-es ellenőzést, elindulnak a form-ok, méghozzá egészen fura módon. Submit esetén megszakad a session (törlődik a session-t tartalmazó fájl tartalma, mintha destroy parancs lett volna kiadva, de nem lett). Tehát gyakorlatilag kijelentkezteti a felhasználót. De miután ez megtörtént, már vígan megy minden form. Csak akkor áll meg az egész ha a session-ben van valami.

Gyakorlatilag ha a session-nek van tartalma, akkor bármilyen form submit kitörli a sessiont (függetlenül attól mi lenne a dolga, mire hivatkozik, még akkor is ha target mező nincs is megadva), majd visszatölti a form lapját, és ha mégegyszer submit-olom szépen elvégzi azt amit kellene neki.

pastebin.com-ra fel tudod tenni a ket fajl forrasat?

> "Ha tök üres a valami.php, ugyanúgy visszadob, mintha a komplett ellenőrző script lenne benne"
ez erdekes. lehet, hogy a form 'action' attributuma dinamikus es hiba eseten ures marad? esetleg hasznalsz valami rewrite modult a webszerveren?

sbalazs.

Köszönöm a segítséget, el se hiszem, hogy milyen hibát hagytam benne...
A login form bejelentkezett formában átalakult user panellé, és nem tudom miért, de lehagytam a form zárótagjét. Ennek következtében az utána jövő formok már persze összecsinálták magukat. És ezen ültem már másfél napot. Bár hogy egy form hiba miért okozza a session teljes törlését még mindig nem értem, de már nem is érdekel. :D

nosza, nezzuk csak:
- ha kikapcsolod a rewrite-okat (RewriteEngine Off) es ezutan is az index.php oldal jelenik meg, akkor a valami.php-ban kellene keresgelni. ugyanis a bongeszo dolga, hogy az action-ben definialt oldalnak posztolja az adatokat - abban nem tudsz hibat veteni. :)
- az index.php elejen meg var_dump()-pal kiiratnam a $_SERVER valtozot, hatha latsz valami rendellenest.
- esetleg firefox-hoz telepitsd a firebug plugint, amiben lathatod, hogy milyen kerest kuldott a bongeszo a szerver fele es az mit adott vissza. ha valami oknal fogva visszairanyit az index.php-ra, azt is latni fogod.
- jo tanacs: tobb helyre is tegyel egy echo('Itt meg jo... #1'); sorokat, hogy kovetni tudd, mi is tortenik.
- esetleg, ha van lehetoseged, akkor az xdebug php extension-t is telepitheted, ami tud trace kimenetet generalni fajlba. ebben szepen sorjaban benne vannak a vegrehajtott php utasitasok.

meg nezegetem kicsit a pastebin-es fajlodat, de nekem jonak tunik...

szerk: ezekszerint, akkor megoldodott... :)

sbalazs.