PHP и новый Хост

Maxxis

Новичок
Доброго времени суток всем !

Вопрос вот в чем :файл авторизации,на виртуальной машине у меня работает,передает сессии,а вот поставил файл на хост и после успешной авторизации должно перенаправлять на index.html
Перенаправляет,сессий в index.html не видно ,в чем может быть проблема ?
Вот ,собснно,сам файл. Заранее спасибо !
PHP:
include("config.php");
session_start();
                                                //include CONFIG FILE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if($_REQUEST['act']=='logout'){
    	unset($_SESSION['login']);
    	unset($_SESSION['password']);
    	Header('Location:http://localhost:8080/www/auto/autosearch.html');
    }
 
     
    //Check for empty
    if(empty($_POST['password']) and (empty($_POST['login']))){
    echo("Вы не ввели ни одного символа в поля авторизации.");
    exit();
    }
    if(empty($_POST['password'])or(empty($_POST['login']))){
    echo("Вы ввели не полную информацию в поля авторизации");
    }
    else{
    // SQL SOURSE POST[LOGIN]
    $query = "SELECT password FROM `users` WHERE login='".$_POST['login']."'";}
    $sql =mysql_query($query);
    if(!$sql)
    {
      echo "Error cennection";
      exit();
    }
    if(mysql_num_rows($sql) > 0)
    {
       $password = mysql_result($sql,0);
       //SRAVNIT PAROL
       if ($_POST['password'] == $password){
       	 $_SESSION['login']=$_POST['login'];
       	 $_SESSION['password']=$_POST['password'];
         $_SESSION['uid']=@mysql_result(@mysql_query("SELECT * from `users` WHERE login='".$_POST['login']."';"),'0','user_id');
         $_SESSION['messages']=@mysql_result(@mysql_query("SELECT * from `users` WHERE login='".$_POST['login']."';"),'0','messages');
         $_SESSION['sid']=session_id();
         }
        header('Refresh:1;index.html');  //$_SERVER[REQUEST_URI]
       exit();
       }
    /////IF NOT USER
    else
    {
      echo "Ошибка идентификации: неправильный логин или пароль";
      exit();
    }
 

Pez!

Я твой сайт похапе писал
выключи ты свои подавления ошибок - это должен быть вообще запретный плод - и пройдись уже по скрипту дебагом - посмотри попадает ли что-то в сессию ...
 

Maxxis

Новичок
выключи ты свои подавления ошибок - это должен быть вообще запретный плод - и пройдись уже по скрипту дебагом - посмотри попадает ли что-то в сессию ...
Все отключил,проверил,в самом файле сессии работают и с базой все ок.
Но на другой файл сессию не передает
 

Maxxis

Новичок
— покажите минимальный код, воспроизводящий проблему. Тот, который «передаёт/не передаёт», и тот, в который не передаётся.
Вот код,который создает сессию,но не передает ее (внутри этого файла сессия работает) :
PHP:
include("config.php");
session_start();
                                                //include CONFIG FILE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if($_REQUEST['act']=='logout'){
        unset($_SESSION['login']);
        unset($_SESSION['password']);
        Header('Location:http://localhost:8080/www/auto/autosearch.html');
    }
 
     
    //Check for empty
    if(empty($_POST['password']) and (empty($_POST['login']))){
    echo("Вы не ввели ни одного символа в поля авторизации.");
    exit();
    }
    if(empty($_POST['password'])or(empty($_POST['login']))){
    echo("Вы ввели не полную информацию в поля авторизации");
    }
    else{
    // SQL SOURSE POST[LOGIN]
    $query = "SELECT password FROM `users` WHERE login='".$_POST['login']."'";}
    $sql =mysql_query($query);
    if(!$sql)
    {
      echo "Error cennection";
      exit();
    }
    if(mysql_num_rows($sql) > 0)
    {
       $password = mysql_result($sql,0);
       //SRAVNIT PAROL
       if ($_POST['password'] == $password){
            $_SESSION['login']=$_POST['login'];
            $_SESSION['password']=$_POST['password'];
         $_SESSION['uid']=@mysql_result(@mysql_query("SELECT * from `users` WHERE login='".$_POST['login']."';"),'0','user_id');
         $_SESSION['messages']=@mysql_result(@mysql_query("SELECT * from `users` WHERE login='".$_POST['login']."';"),'0','messages');
         $_SESSION['sid']=session_id();
         }
        header('Refresh:1;index.html');  //$_SERVER[REQUEST_URI]
       exit();
       }
    /////IF NOT USER
    else
    {
      echo "Ошибка идентификации: неправильный логин или пароль";
      exit();
    }
А вот код из файла,в который не передается сессия
PHP:
<div style="float:right;margin-top:20px;margin-right:110px"><a href="index.html" id="addadv"><strong> Добавить обьявление</strong></a></div>
require_once("config.php");
session_start();
echo $_SESSION['uid'];


if (isset($_SESSION['password'])){
echo' <style>
.login{font-family:tahoma;font-size:10px;border: 1px solid #BEBEBE;width:170px}

</style>
<table cellspacing=1 width=100% cellpadding=3 class=login>
	<tr>
		<td class=bg></td>
	</tr>
	<tr>
		<td >
                <tr><td>&nbsp;&nbsp;&nbsp;<a href="">Мои Сообщения</a></td></tr>
            	<tr><td>&nbsp;&nbsp;&nbsp;<a href="user_adverts.php">Мои автомобили</a></td></tr>
	            <tr><td>&nbsp;&nbsp;&nbsp;<a href="favorites.php">Избранное</a>'; $sql=@mysql_query("SELECT count(user_id) FROM `favorites` WHERE user_id =".$_SESSION['uid']."");
$num=@mysql_fetch_row($sql);
$total_rows=$num[0];
echo ("&nbsp;<b>(".$total_rows.")</b>");echo'</td></tr>
	            <!--<tr><td>&nbsp;&nbsp;&nbsp;<a href="index.html">Добавить объявление</a></td></tr>!-->


	           <tr><td>&nbsp;&nbsp;&nbsp;<a href="http://127.0.0.1:8080/localhost/www/validate.php?act=logout">Выход </a></td></tr>

        </td>
	</tr>
</table>
';}


 else{
 	echo'<style>
</style>
<form action="validate.php" method="POST">
  <div class="form">

<P>
&nbsp;&nbsp;Логин:<INPUT type="text" class="inptln" name="login">
<p>
&nbsp;&nbsp;Пароль:<INPUT type="password" class="inptps" name="password"><br>
<p>
               <INPUT type="submit" value="Вход" class="button"><br>
&nbsp;&nbsp;Запомнить меня:<input name="remember_me" type="checkbox" value=""><br>
</form>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="reg" href="register.html">Регистрация</a><br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="frgthr" href="main.php?bmsession={$sid}">Забыли пароль?</a>
 </div>';
 	}
Заранее спасибо за помощь !
 

damner2

Новичок
поставь в начале каждого файла
PHP:
ob_start();
если и после этого не будет работать у тебя сессия, то проблема точно не в выводе в браузер до session_start
 

damner2

Новичок
если и после этого не будет работать у тебя сессия, то проблема точно не в выводе в браузер до session_start
опс... ошибся... ещё же бывает BOM

Maxxis
Проверь, есть ли BOM у тебя в каком-нить из этих файлах.

чтоб убедиться, что сессия стартует, поставь после session_start()
PHP:
var_dump(session_id());
exit;
и запроси каждый файл по отдельности в браузере. если идентификатор сессии не выведется, то сессия не стартует и ошибку нада искать именно в этом.
 

Maxxis

Новичок
damner2
Спасибо за совет, если я не ошибаюсь,то идентификатор выводится по типу "string(32) "09574df95d9ccac6202a3ebc95fca5c5""
опс... ошибся... ещё же бывает BOM

Maxxis
Проверь, есть ли BOM у тебя в каком-нить из этих файлах.

чтоб убедиться, что сессия стартует, поставь после session_start()
PHP:
var_dump(session_id());
exit;
и запроси каждый файл по отдельности в браузере. если идентификатор сессии не выведется, то сессия не стартует и ошибку нада искать именно в этом.
damner2
Спасибо за совет, если я не ошибаюсь,то идентификатор выводится по типу "string(32) "09574df95d9ccac6202a3ebc95fca5c5""
 

damner2

Новичок
Maxxis
да, это он, при обоих запросах должен вывестись одинаковый id
 

damner2

Новичок
Maxxis
посмотрел код - он мегаужасен!! там столько ошибок что ппц! :D
 

damner2

Новичок
Maxxis
1. Версия php больше 4.1.0 ?


2. Создай новый файлик и запроси его браузером и потом напиши сюды то, что он тебе выведет.
PHP:
ini_set("display_errors", 1);
error_reporting(E_ALL);
session_start();
$_SESSION["a"] = "b";
session_write_close();
 
Сверху