PHP и новый Хост

  • Автор темы Автор темы Maxxis
  • Дата начала Дата начала
посмотрел
вроде всё ок
есть тока 3 варианта:
1. либо suhosin что-то делает с сессиями
2. либо директория /tmp не доступна для записи, но в этом случае должна была выводиться ошибка и раньше
пока что больше идей нет....
3. сессии работаю и проблема не в них

сделай файлик и открой в браузере:
PHP:
ini_set("session.save_path", dirname(__FILE__));
ini_set("display_errors", 1);
error_reporting(E_ALL);
session_start();
$_SESSION["a"] = "test";
session_write_close();
unset($_SESSION);
session_start();
var_dump($_SESSION);
выводит test? если да, то сессии точно работают
 
посмотрел
вроде всё ок
есть тока 3 варианта:
1. либо suhosin что-то делает с сессиями
2. либо директория /tmp не доступна для записи, но в этом случае должна была выводиться ошибка и раньше
пока что больше идей нет....
3. сессии работаю и проблема не в них

сделай файлик и открой в браузере:
PHP:
ini_set("session.save_path", dirname(__FILE__));
ini_set("display_errors", 1);
error_reporting(E_ALL);
session_start();
$_SESSION["a"] = "test";
session_write_close();
unset($_SESSION);
session_start();
var_dump($_SESSION);
выводит test? если да, то сессии точно работают
Выводит : array(1) { ["a"]=> string(4) "test" }
http://uidrive.com.ua/1.php
 
PHP:
>> ВОТ ЭТО ob_start();

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();
    }
 
Это правильно или нет?
вот что выдает ваша страница по ссылке:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/uidrivec/public_html/1.php:9) in /home/uidrivec/public_html/1.php on line 14

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/uidrivec/public_html/1.php:9) in /home/uidrivec/public_html/1.php on line 14

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/uidrivec/public_html/1.php:9) in /home/uidrivec/public_html/1.php on line 18

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/uidrivec/public_html/1.php:9) in /home/uidrivec/public_html/1.php on line 18
array(1) { ["a"]=> string(4) "test" }
Warning-и нужно устранить.
 
Maxxis
эээээ
а у тебя пароль содержит русские буквы? =))))))
колись =) это важно!
 
Maxxis
не, не в хостере дело
вместо строки (чтоб не было перенаправления)
PHP:
header('Refresh:1;index.html');
напиши
PHP:
var_dump($_SESSION);
и посмотри, все ли ожидаемые значения выводятся
 
Maxxis
хз
должно передаваться тогда
сори, мне пора ехать, если разгадаешь - напиши - поржём :D

Ирокез
кука у него устанавливается, так что не в этом проблема
 
Maxxis
посмотри создаётся ли у тебя файл сессии (в директории /tmp на сервере судя по phpinfo), файл должен называться так же как и id сессии ( session_id() )
посмотри есть ли в файле сериализованные данные
если есть всё, то проблема только во втором файле (на который идёт перенаправление)
если нет файла или данных в нём, то проблема в первом твоём файле (сессия не создаётся)
 
Maxxis
посмотри создаётся ли у тебя файл сессии (в директории /tmp на сервере судя по phpinfo), файл должен называться так же как и id сессии ( session_id() )
посмотри есть ли в файле сериализованные данные
если есть всё, то проблема только во втором файле (на который идёт перенаправление)
если нет файла или данных в нём, то проблема в первом твоём файле (сессия не создаётся)

Создается файл :sess_09574df95d9ccac6202a3ebc95fca5c5
 
Ребята, извините, что прериваю ваш шабаш.
Но хватит гадать на манной гуще.

ТС - вот тебе направление движения (это если тебе интересно разобраться и сделать правильно).
www.phpfaq.ru/debug
www.phpfaq.ru/header

Я тебе да 100% гарантию, что там где это типо все работает, output_buffering включен.

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

Ну так тебе синюю или красную?

Если красную, то велкам по ссылкам вверху.
 
  • Like
Реакции: AmdY
Сверху