السلام عليكم،
لدي ملف step1.php :
<?php
session_start();
if ($send == 'ok')
{
$_SESSION['user'] = $_POST['user'];
$_SESSION['pass'] = $_POST['pass'];
$_SESSION['cpass'] = $_POST['cpass'];
$_SESSION['email'] = $_POST['email'];
unset($_SESSION['step']);
$step = '2';
$_SESSION['step'] = $step;
header('Location: register.php?s='.strip_tags($PHPSESSID));
}
}
else
{?>
<form method="POST" name="form" action="<?=$_SERVER['PHP_SELF'];?>?s=<?=strip_tags($PHPSESSID);?>">
<INPUT TYPE="hidden" NAME="send" value="ok">
<table border="0" cellspacing="1" width="81%">
<tr>
<td width="45%">User (3-10 Car)</td>
<td width="70%"><input type="text" name="user" size="20" value="<? if (isset($_POST['user'])) echo $_POST['user'];?>">
</td>
</tr>
<input type="submit" value="الخطوة التالية" name="B1">
</table>
</form>
<?
}
?>عند تحقق الشرط ($send == 'ok') اقوم بتسجيل الخطوة التالية step في الجلسة هكذا :
$_SESSION['step'] = $step;
header('Location: register.php?s='.strip_tags($PHPSESSID));ولكن عند الرجوع الى ملف register.php :
<?php
session_start();
error_reporting(0);
if (isset($_SESSION['user'])&& !empty($_SESSION['user']) && !isset($_POST['step']) && empty($_POST['step']) && !isset($_SESSION['step']) && empty($_SESSION['step']))
{
echo 'ليس لديك الصلاحية لدخول هذه الصفحة.';
$_SESSION = array();
session_unset();
session_destroy();
exit;
}
else
{
$step = isset($_SESSION['step']) ? isset($_SESSION['step']) : isset($_POST['step']);
echo "step = ".$step."<br>";
switch($step) {
case '1': echo "step1 = ".$step.";<br>"; include_once 'step1.php'; break;
case '2': echo "step2 = ".$step.";<br>"; include_once 'step2.php'; break;
case '3': echo "step3 = ".$step.";<br>"; include_once 'step3.php'; break;
default : echo "stepD = ".$step.";<br>"; include 'templates\default\agree.inc'; break;
}
}
ولكن عند اخراج المتغيرة step :
احصل على القيمة : 1
عوضا عن 2 التي سجلتها في الجلسة من قبل.
ما اصل هذا الخطأ ؟
?>