alî_pr
جمعه 30 اسفند 1387, 22:48 عصر
سلام
دو تا صفحه دارم، صفحه اصلی و صفحه کاربر
کد صفحه اصلی من اینه
<?php
require_once('Sess_Hdl.php');
mysql_connect("localhost", "root", "");
mysql_select_db("ali");
session_set_save_handler("sess_open", "sess_close", "sess_read",
"sess_write", "sess_destroy", "sess_gc");
session_start( );
echo session_id();
$_SESSION['uName'] = "ali Gholami";
?>
<a href="User.php">User</a>
و کد صفحه کاربر اینه:
<?php
require_once('Sess_Hdl.php');
mysql_connect("localhost", "root", "");
mysql_select_db("ali");
session_set_save_handler("sess_open", "sess_close", "sess_read",
"sess_write", "sess_destroy", "sess_gc");
session_start( );
echo session_id();
echo $_SESSION['uName'];
?>
<a href="index.php">Home</a>
من با استفاده از کد زیر که از یه کتاب کپی کردم، توابع مربوط به خواندن و نوشتن در session و دیگر توابع مورد نیاز رو در یه فایل نوشتم و include کردم:
<?php
function sess_open($sess_path, $sess_name)
{
return true;
}
function sess_close( )
{
return true;
}
function sess_read($sess_id)
{
$result = mysql_query("SELECT Data FROM sessions WHERE SessionID
= '$sess_id';");
$CurrentTime = time( );
if (!mysql_num_rows($result))
{
mysql_query("INSERT INTO sessions (SessionID, DateTouched)
VALUES ('$sess_id', $CurrentTime);");
return '';
}
else
{
extract(mysql_fetch_array($result), EXTR_PREFIX_ALL, 'sess');
mysql_query("UPDATE sessions SET DateTouched = $CurrentTime
WHERE SessionID = '$sess_id';");
$row = mysql_fetch_assoc($result);
return $sess_Data;
}
}
function sess_write($sess_id, $data)
{
$CurrentTime = time( );
mysql_query("UPDATE sessions SET Data = '$data', DateTouched =
$CurrentTime WHERE SessionID = '$sess_id';");
return true;
}
function sess_destroy($sess_id)
{
mysql_query("DELETE FROM sessions WHERE SessionID = '$sess_id';");
return true;
}
function sess_gc($sess_maxlifetime)
{
$CurrentTime = time( );
mysql_query("DELETE FROM sessions WHERE DateTouched + $sess_
maxlifetime < $CurrentTime;");
return true;
}
?>
حالا مشکل:
با لینکی که تو صفحه اول هست به صفحه کاربر می رم، اما تو اون صفحه که باید نام کاربر رو نشون بده (نامی که در صفحه اصلی ست شده)، هیچی نشون نمی ده.
تو دیتابیس بدرستی ذخیره می شه ولی فیلد Data با null مقدار دهی میشه!
لطفا فقط اگه به مشکل پی بردید جواب بدید. من چندین روزه که دنبال جوابم اما...
دو تا صفحه دارم، صفحه اصلی و صفحه کاربر
کد صفحه اصلی من اینه
<?php
require_once('Sess_Hdl.php');
mysql_connect("localhost", "root", "");
mysql_select_db("ali");
session_set_save_handler("sess_open", "sess_close", "sess_read",
"sess_write", "sess_destroy", "sess_gc");
session_start( );
echo session_id();
$_SESSION['uName'] = "ali Gholami";
?>
<a href="User.php">User</a>
و کد صفحه کاربر اینه:
<?php
require_once('Sess_Hdl.php');
mysql_connect("localhost", "root", "");
mysql_select_db("ali");
session_set_save_handler("sess_open", "sess_close", "sess_read",
"sess_write", "sess_destroy", "sess_gc");
session_start( );
echo session_id();
echo $_SESSION['uName'];
?>
<a href="index.php">Home</a>
من با استفاده از کد زیر که از یه کتاب کپی کردم، توابع مربوط به خواندن و نوشتن در session و دیگر توابع مورد نیاز رو در یه فایل نوشتم و include کردم:
<?php
function sess_open($sess_path, $sess_name)
{
return true;
}
function sess_close( )
{
return true;
}
function sess_read($sess_id)
{
$result = mysql_query("SELECT Data FROM sessions WHERE SessionID
= '$sess_id';");
$CurrentTime = time( );
if (!mysql_num_rows($result))
{
mysql_query("INSERT INTO sessions (SessionID, DateTouched)
VALUES ('$sess_id', $CurrentTime);");
return '';
}
else
{
extract(mysql_fetch_array($result), EXTR_PREFIX_ALL, 'sess');
mysql_query("UPDATE sessions SET DateTouched = $CurrentTime
WHERE SessionID = '$sess_id';");
$row = mysql_fetch_assoc($result);
return $sess_Data;
}
}
function sess_write($sess_id, $data)
{
$CurrentTime = time( );
mysql_query("UPDATE sessions SET Data = '$data', DateTouched =
$CurrentTime WHERE SessionID = '$sess_id';");
return true;
}
function sess_destroy($sess_id)
{
mysql_query("DELETE FROM sessions WHERE SessionID = '$sess_id';");
return true;
}
function sess_gc($sess_maxlifetime)
{
$CurrentTime = time( );
mysql_query("DELETE FROM sessions WHERE DateTouched + $sess_
maxlifetime < $CurrentTime;");
return true;
}
?>
حالا مشکل:
با لینکی که تو صفحه اول هست به صفحه کاربر می رم، اما تو اون صفحه که باید نام کاربر رو نشون بده (نامی که در صفحه اصلی ست شده)، هیچی نشون نمی ده.
تو دیتابیس بدرستی ذخیره می شه ولی فیلد Data با null مقدار دهی میشه!
لطفا فقط اگه به مشکل پی بردید جواب بدید. من چندین روزه که دنبال جوابم اما...