Jump to content
php.lv forumi

sesija pazūd


djmartins

Recommended Posts

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>	

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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 by djmartins
Link to comment
Share on other sites

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 by briedis
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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>
<? } ?>

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...