سلام دوستان.
من تو یه صفحه (مثلا a.php) جلسه رو شروع می کنم و چندتا هم متغیر از نوع SESSION_$ تعریف می کنم. ولی وقتی به یه صفحه دیگه از همون دایرکتوری (مثلا b.php) میرم میبینم هیچ کدوم از اون متغیر ها مقدار ندارن.
می دونید علت چیه؟
Printable View
سلام دوستان.
من تو یه صفحه (مثلا a.php) جلسه رو شروع می کنم و چندتا هم متغیر از نوع SESSION_$ تعریف می کنم. ولی وقتی به یه صفحه دیگه از همون دایرکتوری (مثلا b.php) میرم میبینم هیچ کدوم از اون متغیر ها مقدار ندارن.
می دونید علت چیه؟
فکر میکنم باید تو صفحه ی b هم سشن رو استارت کنیدنقل قول:
سلام.
باید اول صفحه بعدی، session_start() رو استفاده کنید.
موفق باشید ./.
این کار رو هم کردم، نتیجه نداد.
پس لطفا کدش رو بذارید مشاهده کنیم
صفحه a.php :
[PHP]<?php
session_start();
$_SESSION['a']=mt_rand(1,5);
$_SESSION['b']=mt_rand(1,5);
session_register ($_SESSION['a'],$_SESSION['b']);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
body {
font-family: tahoma;
font-size: 10pt;
direction: rtl;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<center>
<table width="600" cellspacing="10">
<tr>
<td colspan="2"></td>
</tr>
<form action="b.php" method="post">
<tr>
<td width="100" align="left"><b>نام:</b></td>
<td><input type="text" name="name" style="width: 200px;" /> <font color="gray">(منتشر نمیشود)</font></td>
</tr>
<tr>
<td align="left"><b>آدرس ایمیل:</b></td>
<td><input type="text" name="email" style="width: 200px; direction: ltr;" /> <font color="gray">(منتشر نمیشود)</font></td>
</tr>
<tr>
<td align="left"><b>ضد اسپم:</b></td>
<td><input name="antispam" type="text" style="width: 110px;" /> <?php echo "<span dir=\"ltr\" >".$_SESSION['a']."+".$_SESSION['b']."=</span>"; ?>
</td>
</tr>
<tr>
<td valign="top" align="left"><b>متن پیام:</b></td>
<td><textarea style="width: 100%; height: 200px;" name="message"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="reset" value="پاک کردن فرم" /> <input type="submit" value="ارسال" /></td>
</tr>
</form>
</table>
</center>
</body>
</html>[/PHP]صفحه b.php :
[PHP]<?php
session_start();
$antis = $_SESSION['a']+$_SESSION['b'];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
body {
font-family: tahoma;
font-size: 10pt;
direction: rtl;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<?php
$con = mysql_connect("localhost","---","---");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("---", $con);
echo $_SESSION['a']."<hr>".$_SESSION['b']."<hr>".$_POST['antispam']."<hr>".$antis;
if ($_POST['antispam'] != $antis || $_POST['message']=='' || $_POST['antispam']=='') {
echo "<center>";
echo "<font size=5 color=red><br /><br /><p>خطا یا خطاهای زیر رخ داده:</p></font><font size=3><p><ul>";
if ($_POST['message'] == '') echo "<li>پیام وارد نشده است</li>";
if ($_POST['antispam'] == '') echo "<li>کد ضد اسپم وارد نشده است</li>";
if ($_POST['antispam'] != $antis) echo "<li>کد ضد اسپم وارد شده تطابق ندارد</li>";
echo "</ul></p></font><br /><br /><br /><br /><p><a href='a.php'>بازگشت به فرم</a></p>";
echo "</center>";
} else {
date_default_timezone_set('Asia/Tehran');
$posttime = date("[ Y-M-j ] [ H:i ]");
$sql="INSERT INTO form (name, email, message, ip, time) VALUES ('$_POST[name]','$_POST[email]','$_POST[message]','$_SERVER[REMOTE_ADDR]','$posttime')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "<center>";
echo "<font size=5 color=green><br /><br /><p>سوال شما با موفقیت ثبت شد</p></font><font size=3><p>لطفا از ارسال مجدد همین سوال خودداری فرمایید</p></font><br /><br /><br /><br /><p><a href='a.php'>بازگشت به فرم</a></p>";
echo "</center>";
mail("---","پیام جدید",$_POST['message']);
session_destroy();
}
mysql_close($con)
?>
</body>
</html>[/PHP]
---------- Post added at 04:51 PM ---------- Previous post was at 04:47 PM ----------
اضافه کنم اون session_register رو بعدا اضافه کردم گفتم شاید کار کنه که باز هم نکرد.
اینم کد؛ کسی نبود!؟
کد شما مشکل خاصی نداره و تست هم کردم متغیرهای سشن منتقل میشن فقط از اون تابع session_register نیازی نیست استفاده کنین بالای فایل a.php حذفش کنین چون derecate شده.
واللا واسه من که کار نمی کنه. می تونه ایراد از سرور باشه!؟ آخه اگه از سرورم باشه من الان هم وردپرس روش دارم هم مای بی بی، اون وقت اونام نباید درست کار کنن که!؟
جدا جدا سشن هارو echo کنید یعنی بنویسیدشون شاید تو بخش جمع مشکل داره! آخه به نظر نمیاد دیگه مشکلی داشته باشه!