djmartins Posted September 18, 2009 Report Share Posted September 18, 2009 Lieta tāda, ka ielogojoties lapā, pirmo lapu refrešojot viss ir kārtībā un sesija tiek saglabāta, taču kad pāriet uz nākamo lapu sesija pirmo reizi strādā, taču refrešojot lapu, tā pazūd. Jautājums tāds, kur varētu būt problēma ja pirmajā lapā viss ir kārtībā taču otrajā nē. ::Otrā lapa:: <? session_start(); $_SESSION['webuser']; $webuser=$_SESSION["webuser"]; include("config.php"); ?> <? echo ("$webuser"); ?> <? $webuser=$_POST["webuser"]; $vards=$_POST["vards"]; mysql_query("update user set vards='$vards' where username='$webuser' "); ?> <form name="myform" action="profile.php" method="post"> Vards: *<br /><input type="text" name="vards" size="35" /><br /> <input type="submit" name="submit" value="Submit" /> </form> Quote Link to comment Share on other sites More sharing options...
briedis Posted September 18, 2009 Report Share Posted September 18, 2009 Lieta tāda, ka ielogojoties lapā, pirmo lapu refrešojot viss ir kārtībā un sesija tiek saglabāta, taču kad pāriet uz nākamo lapu sesija pirmo reizi strādā, taču refrešojot lapu, tā pazūd. Jautājums tāds, kur varētu būt problēma ja pirmajā lapā viss ir kārtībā taču otrajā nē. ::Otrā lapa:: <? session_start(); $_SESSION['webuser']; $webuser=$_SESSION["webuser"]; include("config.php"); ?> <? echo ("$webuser"); ?> <? $webuser=$_POST["webuser"]; $vards=$_POST["vards"]; mysql_query("update user set vards='$vards' where username='$webuser' "); ?> <form name="myform" action="profile.php" method="post"> Vards: *<br /><input type="text" name="vards" size="35" /><br /> <input type="submit" name="submit" value="Submit" /> </form> Pirmkārt, noteikti izmanot funkciju mysql_real_escape_string() (kas tas ir - google), pirms bāz pa taisno POST datus iekšā kvērijā!!! Ko nozīmē šī rindiņa, un vai viņa ir vajdzīga - $_SESSION['webuser']; Pēc tā ko es redzu, nevajadzētu pazust... problēma varbūt ir citur. Otrajā lapā paprovē uztaisīt print_r($_SESSION), paskaties, kas vispār glabājas sesijā. Varbūt nekas neatnāk no pirmās lapas... Quote Link to comment Share on other sites More sharing options...
djmartins Posted September 18, 2009 Author Report Share Posted September 18, 2009 (edited) Array ( [last_reload] => 1253300955 [webuser] => lietotajs ) Cik noprotu tad sesija glabājas viss kā vajag? Šo parāda kad aizeju uz otro lapu un kad nospiežu refreš tad kā jau teicu sesija pazūd un līdz ar to rādas Array ( [last_reload] => 1253300955 [webuser] => ) Pilnīgi nav nojausmas, kas varētu būt nepareizi. Edited September 18, 2009 by djmartins Quote Link to comment Share on other sites More sharing options...
briedis Posted September 18, 2009 Report Share Posted September 18, 2009 (edited) Array ( [last_reload] => 1253300955 [webuser] => lietotajs ) Cik noprotu tad sesija glabājas viss kā vajag? Šo parāda kad aizeju uz otro lapu un kad nospiežu refreš tad kā jau teicu sesija pazūd un līdz ar to rādas Array ( [last_reload] => 1253300955 [webuser] => ) Pilnīgi nav nojausmas, kas varētu būt nepareizi. Pārbaudi vai tiešām nekur sesijas mainīgais netiek pārdefinēts, skaties vietas kur ir $_SESSION['webuser'] = ...... principā savādāk nevar pazust, jo ačimredzot last_reload nepazūd. Kaut kur kaut kas kodā nav kā vajag :) Edited September 18, 2009 by briedis Quote Link to comment Share on other sites More sharing options...
djmartins Posted September 18, 2009 Author Report Share Posted September 18, 2009 Izveidoju vēlvienu papildus sesiju ar nosaukumu niks. Tagad Sesija webuser un last_reloud nepazūd un viss ir kārtība un ārā no lapas vairs nemet, bet tā liekā sesija niks, lapu refrešojot pazūd tāpat kā iepriekš webuser sesija. Tehniski tas it kā vairs neiespaido. Taču būtu jau labi tikt vaļā no nevajadzīgas sesijas. Quote Link to comment Share on other sites More sharing options...
briedis Posted September 18, 2009 Report Share Posted September 18, 2009 Tu domā, tu izveidoji jaunu sesijas mainīgo, nevis sesiju :) Nekur nefigurē unset($_SESSION[..])? Quote Link to comment Share on other sites More sharing options...
djmartins Posted September 19, 2009 Author Report Share Posted September 19, 2009 Nē unset($_SESSION[]) man nav. VIenīgais session_destroy() index failā <? if ($_SESSION['last_reload'] != "" && $_SESSION['last_reload'] < strtotime("-10 minutes")) { session_destroy(); } else { $_SESSION['last_reload'] = time(); } ?> Quote Link to comment Share on other sites More sharing options...
briedis Posted September 19, 2009 Report Share Posted September 19, 2009 Paprovē aizkomentēt to session_destroy... Quote Link to comment Share on other sites More sharing options...
djmartins Posted September 19, 2009 Author Report Share Posted September 19, 2009 Pilnībā bez rezultātiem ir atkomentēts vai aizkomentēts. Vienīgais kur kaut kas vēl varētu nebūt tas ir šeit. <? if(isset($_SESSION["webuser"])) { $webuser=$_SESSION["webuser"]; echo("<a href=profile.php>Profils</a>"); echo ("<br>"); echo ("<br>"); echo "Sveiks ".$webuser; echo ("<br>"); echo ("<a href=logout.php>Iziet</a>"); } else { ?> <form name="myform" action="login.php" method="post"> Lietotajvards: <input type="text" name="username" size="15" /><br /> Parole: <input type="password" name="password" size="15" /><br /><br /><hr /> <input type="submit" name="Ieiet" value="Submit" /> </form> <? } ?> Quote Link to comment Share on other sites More sharing options...
waplet Posted September 19, 2009 Report Share Posted September 19, 2009 a tu to sesiju vispār izveido? kur tu viņu updeito? Quote Link to comment Share on other sites More sharing options...
djmartins Posted September 19, 2009 Author Report Share Posted September 19, 2009 Sesija tiek izveidota, kad lietotājs ielogojas lapā <? session_start(); include("config.php"); $username=$_POST["username"]; $password=md5($_POST["password"]); $ress=mysql_query("select * from user where username='$username'") or die(mysql_error()); $rows=mysql_fetch_array($ress); if(($rows["username"]==$username)&&($rows["password"]==$password)) { $_SESSION['webuser']=$username; header ("Location: index.php"); } else { header ("Location: index1.php"); } ?> Nedaudz neizprotu jautājumu par sesijas updeitošanu.Vai tad nav tā, ka ja sesija ir izveidota un katrā lapā ir session_start(); tad viņa turpinās? Quote Link to comment Share on other sites More sharing options...
briedis Posted September 19, 2009 Report Share Posted September 19, 2009 Nu izčeko visur kodā, kur figurē darbības ar sesijas mainīgajiem, vai tur kaut kur nejauši nepārdefinējas. Uztaisi test1.php, kur sāc sesiju, nodefine pāris sesijas mainīgos un uztaisi test2.php kur sāc sesiju un ar print_r($_SESSION) apskaties vai viss ir vietā, kas tika nodefinēts test1.php. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.