Jump to content
php.lv forumi

Zūd $_SESSION['mainīgais'] vērtības.


Martiny

Recommended Posts

Reizēm pazūd SESIJAS mainīgā vērtības.

Koda fragments bez pārdaužu bloka

session_start();
if (isset($_GET['step']))
{
// STEP=1
if ($_GET['step']==1)
{
echo '<form action="index.php?step=2" method="post">';
$sql2 = "SELECT * FROM co2table";
$result2 = mysql_query($sql2, $conn) or die ("Neizdodas iegūt CO2 koeficientu.");
$iezime=true;
echo '<SELECT name="co2">';
while ($row2 = mysql_fetch_row($result2))
{
if ($iezime)
{
	echo '<OPTION value="'.$row2[2].'" selected="selected">'.$row2[1].'</OPTION>';
	$iezime=false;
}
else
{
	echo '<OPTION value="'.$row2[2].'">'.$row2[1].'</OPTION>';
}
}
echo '</SELECT>';
echo '</form>';
}
// STEP=2
elseif ($_GET['step']==2)
{
$_SESSION['co2'] = $_POST['co2'];
// Pārbaudu vai iepriekšējā solī visa nepieciešamā informācija aizpildīta
if ($info == OK)
{
echo $_SESSION['co2'].'<br/>';
echo '<form action="index.php?step=3" method="post">';
echo '<input type="submit" value="Turpināt">';
echo '</form>';
else
{
   echo 'Nav ievadīta informācija kādā no obligātajiem laukiem.';
echo '<form action="index.php?step=2" method="post">';
$sql2 = "SELECT * FROM co2table";
$result2 = mysql_query($sql2, $conn) or die ("Neizdodas iegūt CO2 koeficientu.");
$iezime=true;
echo '<SELECT name="co2">';
while ($row2 = mysql_fetch_row($result2))
{
if ($iezime)
{
	echo '<OPTION value="'.$row2[2].'" selected="selected">'.$row2[1].'</OPTION>';
	$iezime=false;
}
else
{
	echo '<OPTION value="'.$row2[2].'">'.$row2[1].'</OPTION>';
}
}
echo '</SELECT>';
echo '</form>';
}
}
// STEP=3
elseif ($_GET['step']==3)
{
echo $_SESSION['co2'].'<br/>';
}
else
{
}

Situācija tāda, ka STEP 3 blokā reizēm pazūd $_SESSION['co2'] mainīgā vērtība, bet man šī vērtība nepieciešama arī STEP 8 blokā. Kur varētu būt problēma? Sesijas noilgums vai kāda cita vaina? Pēc manas saprašanas session_start(); ir katrā lapā pieejams.

Edited by Martiny
Link to comment
Share on other sites

problēma sekojoša tu viņu pārverti par post tas nozīme tikai vienu reizi izmanot var izmantot assosativo masivu lai viņa ievietot vērtību vai mainīgo ja ne var cita sesijas mainigaja iebazt :) !

 

Piemeri

$x = array();

1.x['ab'] = $_SESSION['co2'];

 

2.$abc = $_SESSION['co2'];

 

3.$_SESSION['co2'] = $_SESSION['ab'];

Edited by Faks
Link to comment
Share on other sites

1. Defekts kaut vai tāds, ka viņš ļauj sesijā saglabāt co2 pa taisno no $_POST. Vajadzētu vismaz pēc $info==OK pārbaudes (laikam koda daļa ir izņemta, lai nebūtu vēl jautājumi).

2. Kāpēc vajadzīgas 2 vienādas formas iekš step#1 un step#2, ja var pie nepareizas ievadītās infas cilvēku pārsviest uz index.php?step=1, lai nebūtu jādublē kods. Labi vien, ka nav redzams viss pārējais kods līdz step#8 :)

Edited by Val
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...