dezchilds
پنج شنبه 30 شهریور 1391, 02:06 صبح
سلام دوستان بعد از اینکه کلی برنامه نویسی کردم رو سیستمم و یه برنامه php نوشتم حالا مشکل پیدا کردم . کل برنامه به صورت صحیح رو لوکال کار میکنه و با xampp مشکلی ندارم ولی وقتی میزارم تو نت یه مشکلات عجیبی پیش میاد . مهمترینش اینه که سیشن ها انتقال پیدا نمیکنند کد زیر رو ببینید.
<style type="text/css">
<!--
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
body,td,th {
font-family: Tahoma;
direction:rtl;
}
</style>
<?php
require_once('kar_fns.php');
//get values
@session_start();
global $_POST;
//check if form is submitted
if (isset($_POST['issubmit']) && $_POST['issubmit'])
{
$username=$_POST['username'];
$password=$_POST['password'];
//check values
if (!$username || !$password)
{
echo '<div class="best2"> ورود نام کاربری یا رمز عبور ضروری است. </div>';
return;
}
if (login($username, $password))
{
echo 'خوش آمدید '.$_SESSION['name']. ' '.$_SESSION['family'].' '.'لطفاً تا انتفال به صفحه اصلی منتظر باشید <meta http-equiv="refresh" content="2; URL=main.php">';
echo '</br>';
}
else
{
echo 'خطایی در ورود رخ داده است <meta http-equiv="refresh" content="2; URL=main.php">';
exit;
}
}
if (isset($_SESSION['username']))
echo'شما در حال حاظر در سیستم وارد شده اید. <a href="logout.php">خروج</a>';
else
{
echo'
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>ورود به سیستم</title>
<body>
<div class="infobox2">
<form id="form1" name="form1" method="post" action="login.php" dir="rtl">
<table>
<tr>
<div align="center">
<td>نام کاربری</td>
<td><input name="username" type="text" id="username"></td>
</tr><tr>
<td>رمز عبور</td>
<td> <input name="password" type="password" id="password"></td>
</tr>
</table>
<input type="submit" name="Submit" value="ورود" class="mb">
</div>
<input type="hidden" name="issubmit" value="1" />
</form>
</div>
</body>
</html>';
}
?>
این هم تابع لوگین
function login($username, $password)
// check username and password with db
// if yes, return true
// else return false
{
// connect to db
$conn = db_connect();
if (!$conn)
return false;
$result2 = mysql_query("select id from data where id >=300 LIMIT 1 ");
if (mysql_num_rows($result2)>0)
{
echo'Error in connection';
return false;
}
// check if username is unique
$result = mysql_query("select * from sysusers
where username='$username'
and password = password('$password') LIMIT 1 ");
if (!$result)
return false;
if (mysql_num_rows($result)>0)
{
beala();
while ($row = mysql_fetch_array($result))
{
$_SESSION['userid']=$row['userid'];
$_SESSION['username']=$row['username'];
$_SESSION['name']=$row['name'];
$_SESSION['family']=$row['family'];
$_SESSION['group']=$row['gr'];
}
return true;
}
else
return false;
}
ولی وقتی به صفحه main میام انگار نه انگار که login انجام شده و session ها مقدار ندارند / چیکار کنم ؟
<style type="text/css">
<!--
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
body,td,th {
font-family: Tahoma;
direction:rtl;
}
</style>
<?php
require_once('kar_fns.php');
//get values
@session_start();
global $_POST;
//check if form is submitted
if (isset($_POST['issubmit']) && $_POST['issubmit'])
{
$username=$_POST['username'];
$password=$_POST['password'];
//check values
if (!$username || !$password)
{
echo '<div class="best2"> ورود نام کاربری یا رمز عبور ضروری است. </div>';
return;
}
if (login($username, $password))
{
echo 'خوش آمدید '.$_SESSION['name']. ' '.$_SESSION['family'].' '.'لطفاً تا انتفال به صفحه اصلی منتظر باشید <meta http-equiv="refresh" content="2; URL=main.php">';
echo '</br>';
}
else
{
echo 'خطایی در ورود رخ داده است <meta http-equiv="refresh" content="2; URL=main.php">';
exit;
}
}
if (isset($_SESSION['username']))
echo'شما در حال حاظر در سیستم وارد شده اید. <a href="logout.php">خروج</a>';
else
{
echo'
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>ورود به سیستم</title>
<body>
<div class="infobox2">
<form id="form1" name="form1" method="post" action="login.php" dir="rtl">
<table>
<tr>
<div align="center">
<td>نام کاربری</td>
<td><input name="username" type="text" id="username"></td>
</tr><tr>
<td>رمز عبور</td>
<td> <input name="password" type="password" id="password"></td>
</tr>
</table>
<input type="submit" name="Submit" value="ورود" class="mb">
</div>
<input type="hidden" name="issubmit" value="1" />
</form>
</div>
</body>
</html>';
}
?>
این هم تابع لوگین
function login($username, $password)
// check username and password with db
// if yes, return true
// else return false
{
// connect to db
$conn = db_connect();
if (!$conn)
return false;
$result2 = mysql_query("select id from data where id >=300 LIMIT 1 ");
if (mysql_num_rows($result2)>0)
{
echo'Error in connection';
return false;
}
// check if username is unique
$result = mysql_query("select * from sysusers
where username='$username'
and password = password('$password') LIMIT 1 ");
if (!$result)
return false;
if (mysql_num_rows($result)>0)
{
beala();
while ($row = mysql_fetch_array($result))
{
$_SESSION['userid']=$row['userid'];
$_SESSION['username']=$row['username'];
$_SESSION['name']=$row['name'];
$_SESSION['family']=$row['family'];
$_SESSION['group']=$row['gr'];
}
return true;
}
else
return false;
}
ولی وقتی به صفحه main میام انگار نه انگار که login انجام شده و session ها مقدار ندارند / چیکار کنم ؟