Sesión de PHP perdiendo datos entre páginas

Estoy intentando configurar un sistema de inicio de sesión para mi sitio web que requiere que alguien inicie sesión para poder publicar. Lo he configurado con sesiones y funciona muy bien en mi servidor local, pero no en el servidor. Configuré print_r (sesión) en algunas de las páginas para ver dónde está la pérdida de datos. En la página checklogin.php, que es la página que se ejecuta cuando alguien inicia sesión, funciona bien. Aquí hay un código de allí:

<?php session_name('login_session'); session_start(); mysql_connect("localhost","root","root") or die(mysql_error()); mysql_select_db("date_ideas") or die(mysql_error()); $uname=$_POST['uname']; $uname=mysql_real_escape_string($uname); $pass=$_POST['pass']; $pass=mysql_real_escape_string($pass); $pass=md5($pass); $query="SELECT * FROM users WHERE uname='$uname' AND pass='$pass'"; $result=mysql_query($query) or die(mysql_error()); $numrows=mysql_num_rows($result); echo $numrows; if ($numrows==1) { $_SESSION['login']="1"; $_SESSION['uname']=$uname; echo "alert('match');"; print_r($_SESSION); } else { $_SESSION['login']=""; echo "alert('Invalid Login');"; echo "window.location = 'login.php?uname=$uname'"; } ?> 

Cuando envío el formulario con buena información de inicio de sesión, la alerta aparece y la impresión vuelve:

Array ([login] => 1 [uname] => FrizbeeFanatic14)

Entonces en ese punto está funcionando. Sin embargo, cuando voy a la página principal, la impresión se convierte en:

Array ()

Por lo tanto, ha perdido la información de la sesión. Aquí está el código de la página principal:

    Great Date Ideas       if (detect=false) { document.write("You must enable cookies to view this page."); window.stop(); document.execCommand('Stop'); }  
<?php print_r($_SESSION); mysql_connect("localhost","root","root") or die(mysql_error()); mysql_select_db("date_ideas") or die(mysql_error()); $result=mysql_query("SELECT * FROM ideas ORDER BY post_date DESC") or die(mysql_error());

Continúa, pero lo que sigue funciona bien.

Entonces, todo este código funciona bien en mi servidor local, pero en el servidor aparece este error.

La única vez que tuve un problema similar fue cuando accidentalmente cambiaba el dominio mientras iba a otra página (de www.mydomain.com a mydomain.com y al revés).

Puede hacer que su sesión persista entre diferentes subdominios utilizando session_set_cookie_params() :

 session_name('login_session'); session_set_cookie_params(0, '/', '.mydomain.com'); session_start(); 

Editar: Quizás esto te pueda ayudar: Un artículo muy interesante: depuración de sesiones PHP

Encontré el problema: el directorio de guardado para las sesiones PHP era un directorio raíz de apache, y estoy ejecutando nginx fastcgi. Acabo de cambiar los permisos de raíz para la carpeta y funciona. Muchas gracias por toda tu ayuda.