2013-11-28 2 views
0

Кажется, что сеансы работают, когда я устанавливаю их на мгновение, а затем они уничтожаются. Вот моя страница phpinfo, может ли кто-нибудь увидеть проблему? У меня нет доступа к файлу phpini. Можете ли вы проверить настройки моего файла cookie и сказать, могу ли я использовать их вместо этого? http://cksgrill.net/phpinfo.phpphp сеансы уничтожены мгновенно

[code] 

<!DOCTYPE html> 
<script src="/javascript/header.js"></script> 
<? 

session_set_cookie_params(3000); 
session_start(); 
ob_start(); 
ini_set('session.gc_maxlifetime', 6 * 60 * 60); 
$session_expiration = time() + 3600 * 24 * 2; 
if((($_POST['name'])and($_POST['password']))or(($_POST['name']!="")and($_POST['password']!=""))) 
{ 
    $_SESSION['name']=$_POST['name']; 
    $_SESSION['password']=$_POST['password']; 
    echo $_SESSION['name']; 
    echo $_POST['name']; 
    echo $_SESSION['password']; 
    echo $_POST['password']; 
} 


// redifine variables for different server 
require_once "mysqlconfig.php"; 
require_once "textprep.php"; 

// connect to database 
global $connection; 
$connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS); 
if (!$connection) 
{ 
    die("Database connection failed: " . mysql_error()); 
} 

// select database 
$db_select = mysql_select_db(DB_NAME,$connection); 
if (!$db_select) 
{ 
    die("Database selection failed: " . mysql_error()); 
} 

//check if logged in 
$result = mysql_query("SELECT * FROM admin"); 
if (!$result) 
{ 
    die("Database query failed: " . mysql_error()); 
} 

// get table names as mysql feedback 
$i=0; 
while ($row = mysql_fetch_array($result)) 
{ 
    $name[$i]=$row['name']; 
    $password[$i]=$row['password']; 
    $rank[$i]=$row['rank']; 

    //echo "\$name[$i]=".$row['name']; 
    //echo "\$password[$i]=".$row['password']; 
    //echo "\$rank[$i]=".$row['rank']; 

    $i++; 
} 

//check if logged in 
$log=false; 
for($j=0;$j<$i;$j++) 
{ 
    //echo "<p>(".$name[$j]."==".$_SESSION['name'].")and(".$password[$j]."==".$_SESSION['password'].")</p>"; 
    if(($name[$j]==$_SESSION['name'])and($password[$j]==$_SESSION['password'])) 
    { 
     $log=true; 
     echo logged." ".$log; 
    } 
} 
if($log==true) 
{ 
[/code] 
+0

AFAIK, Ваш PHP Информация о файле хорошо. Можем ли мы увидеть ваш код? –

+0

http://www.php.net/manual/en/function.session-cache-expire.php это может помочь вам установить свое время для истечения срока. –

+0

ОК, но я думаю, что u может решить проблему только с информацией о php, я вижу, что размер кеша установлен равным 0, а время cokie установлено равным 0, так что я думаю, что проблема, но я не уверен. код ужасно большой, но плохо попробуйте опубликовать его Редактировать: ya этот сайт не позволит мне представить код – user3044508

ответ

0

Просто добавьте этот код ниже session_start();

<?php session_start(); 
ob_start(); 
?> 
0

вы можете увеличить время ожидания сеанса по умолчанию с помощью

 session_set_cookie_params(3000); 

    Then start your session this will allow you to increase session timout you 
    don't have to edit php.ini 
+0

ok heres начало моего кода, я стараюсь добавить ваши решения, но сеансы все еще уничтожаются после загрузки одной страницы [code] <сценарий SRC = "/ JavaScript/header.js"> < session_start(); ob_start(); ini_set ('session.gc_maxlifetime', 6 * 60 * 60); $ session_expiration = time() + 3600 * 24 * 2; session_set_cookie_params (3000); [/ code] – user3044508

+0

session_set_cookie_params (3000), затем session_start() попробуйте это – rohitr

+0

да, я пробовал это, я осознал свою ошибку после публикации. рабочий. Я уверен, что хочу опубликовать больше кода. вот как я устанавливаю переменные сеанса, если в журналах использования есть сообщение if ((($ _ POST ['name']) и ($ _ POST ['password'])) или (($ _ POST ['name ']! = "") и ($ _ POST [' password ']! = ""))) { \t $ _SESSION [' name '] = $ _ POST [' name ']; \t $ _SESSION ['password'] = $ _ POST ['password']; – user3044508