За последние 24 часа нас посетили 22355 программистов и 1141 робот. Сейчас ищут 690 программистов ...

пропадает сессия

Тема в разделе "PHP для новичков", создана пользователем Леня, 22 окт 2020.

  1. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    Здраствуйте! Помогите пожалуйста разобраться новичку. После поключения платеного шлюза -а именно интеркассы-теряется S_SESSION["login"].Оплата происходит
    из личного кабинета.После оплаты как и должно быть-возвращется на страницу кабинета но сессия уже утеряна.Код без платежного шлюза работает.Настройки phpini-а именно

    Директива Местное значение
    session.auto_start true
    php_value session.gc_maxlifetime 86400
    php_value session.cookie_lifetime 0
    session.use_only_cookies true
    session.use_trans_sid -в true не устанавливается-пишет внутренняя ошибка
    настройки phpini указанные выше не помогли .
    Или я не там ищу ошибку-может ошибка в файлах моего сайт при настройке шлюза
    Я впервые подключаю платежный шлюз.Техническая поддержка шлюза проконсультировала меня-сказав что потеря S_SESSION["login"] с их кассой никак не связана
    Сама касса в тестовом режиме работает
    session_start -в двух файлах в модулес и менадж но это наверное не имеет значения потому как я уже писал при обходе платежного шлюза по прямой ссылке на контроллер -сайт работ работает S_SESSION["login"] не теряется
    да S_SESSIO["login"] теряется не постоянно и не закономерно -сделал 1000 тестовых платежей-закономерности не заметил т.е.иногда S_SESSIO["login"] не теряется и после оплаты возвращает в кабинет как авторизованного пользователя -как и должно быть.Сайт на хостинге и сайт на локальном сервере.Заметил только одно-если выйти с кабинета и обновить главную страницу потом зайти в кабинет произвести оплату -то почти всегда S_SESSIO["login"] не теряется.
    У меня два варианта-либо настройки phpini
    либо файлы настройки платежного шлюза-файл процесса оплаты и тд Помагите пожалуйста-сайт готов-эту проблему не могу решить уже несколько недель Работаю не в коллективе а на фри-лансе даже не к кому лично обратитья Спасибо
    Буду очень признателен за помощь.Спасибо
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Покажи код проверки авторизации
     
  3. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    дело в том что временно проверка отсутствует чтобы модераторы платежного шлюза могли безпрепятственно зайти на сайт для активации дополнительных способов оплаты
    --- Добавлено ---
    сайт вот http://sale-rent-in-ukraine.info/ но в связи с этой ошибкой которую я пытаюсь исправить после оплаты касса настроена на возвращение на локальный сервер но если надо я в любой момент настрою за 5 минут на хостинг-чтобы в живую видеть ошибку если что пожалуйста
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Вы понимаете слово - код?
    Никто не просил адресов сайта
    По внешнему виду сайта зачастую невозможно сказать даже на каком яп он писался, не то чтоб код увидеть
     
  5. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    да понимаю проверки логина и пароля сейчас нет вообще
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Причем тут проверка логина и пароля?
    Вы же говорите что сессия теряется?
    Почему вы это решили? А вы устанавливали значение в сессию? Была ли она жива перед редиректом на платёжный шлюз?
    Как вы проверяли сессию после редиректа с шлюза?
     
  7. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    public function avtorizUser(){
    $result= $this->user->getUserOnLogin($_SESSION["login"]);
    if($result) return $this->returnMessage("SUCCESS_AVTORIZ",$this->config->address."dobav");
    else return $this->returnMessage("ERROR_AVTORIZ",$this->config->address."avtoriz");}

    public function getUserOnLogin($alogin){
    $id=$this->agetField("id","login",$alogin);
    return $this->aget($id,$this->table_name); }

    public function agetField($field_out,$field_in,$value_in){
    return $this->db->avgetField($this->table_name,$field_out,$field_in,$value_in);}

    public function aget($id){
    return $this->db->agetElementOnID($this->table_name,$id); }

    public function avgetField($table_name,$field_out,$field_in,$value_in){
    $data=$this->aselect($table_name,array($field_out),"`$field_in`='".addslashes($value_in)."'");
    if(count($data)!=1)return false;
    return $data[0][$field_out];

    private function aselect($table_name,$fields,$where="",$order="",$up=true,$limit=""){
    for ($i=0;$i<count($fields);$i++){
    if((strpos($fields[$i],"("==false)&&($fields[$i]!="*"))) $fields[$i]="`".$fields[$i]."`";
    }
    $fields=implode(",",$fields);
    $table_name=/*$this->config->db_prefix.*/$table_name;
    if(!$order)$order="ORDER BY`id`";
    else{
    if($order!="RAND()"){
    $order="ORDER BY !`$order`";
    if(!$up)$order.="DESC";
    }
    else $order="ORDER BY $order";
    }
    if($limit)$limit="LIMIT $limit";
    if($where)$aquery="SELECT $fields FROM $table_name WHERE $where $order $limit ";
    else $aquery="SELECT $fields FROM $table_name $order $limit";
    $result_set=$this->aquery($aquery);
    if(!$result_set)return false;
    $i=0;
    while($row=$result_set->fetch_assoc()){
    $data[$i]=$row;
    $i++;
    }
    $result_set->close();
    return $data;
    }
    }

    public function agetElementOnID($table_name,$id){
    /*if(!$this->existsID($table_name,$id))return false;*/
    $arr=$this->aselect($table_name,array("*"),"`id`='$id'");
    return $arr[0];
    }
    --- Добавлено ---
    да сессии живы перед шлюзом а после уже нет
    --- Добавлено ---
    до шлюза сессия жива всегда
    --- Добавлено ---
    и без шлюза все работает
    --- Добавлено ---
    может я сошел с ума но я засекал секундомером -пришел к выводу что где-то в пределах одной минуты 30 секунд после авторизации сессия живет и после проплаты на шлюзе тоже живет но в phpinfo параметра равного 90 секундам не нашнл
     
  8. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    я неправильно сказал до шлюза сессия всегда жива если хорошо все обновить на главной странице или до загрузки сайта все обновить f5
    --- Добавлено ---
    извините сессия до шлюза жива всегда а после шлюза жива около минуты 30 секунд если до этой минуты 30 секунд обновить главную страницу как-то так
    --- Добавлено ---
    я был бы очень благодарен вам если например я выложу на хостинг файлы с выводом сессии до шлюза и выводом сессии после шлюза а вы как експерт оценили бы ситуацию
    --- Добавлено ---
    потому как сайт работает без нареканий если ссылку на шлюз заменить ссылкой на контроллер после шлюза код сайта не меняется при этом вообще кроме ссылок

    это настройки шлюза -например функция в процессе оплаты или не знаю что в ини файле
     
  9. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    1. оформляйте код в соответствующие теги - они тут есть
    2. сейчас все начнут закидывать ваш код г..м )))))

    Сделайте простой скрипт
    test.php
    PHP:
    1.  
    2. if (isset($_SESSION['test'])) {
    3.   echo ' isset session!';
    4. } else {
    5.   echo 'not isset session. started!';
    6. $_SESSION['test'] = 1;
    7. }
    Запустите его в адресной строке первый раз, потом закройте вкладку/бразуер
    и запустите через 90 секунд (как вы определили) и скажите результат
    если сессии не будет - значит точно все дело в времени жизни сессий и настройках
     
  10. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    Там дизайн сайта чего только стоит....
     
  11. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    спасибо дорогой а что с дизайном не так конкретно? пожелаю вам смотреть на дизайн своей жены-главное чтоб он вам нравился а не мне
    И не стесняйтесь покажите свой дизайн публике а молодежь в том числе и я поучимся дизайну у вас у опытных и мудрых
    А насчет г-на-так его столько у каждого из нас Я не хотел вам нравиться я просил помощи а не насмешек-посмеяться ведь и я могу над вашей работой
    --- Добавлено ---
    спасибо
    на кассу уходит форма сгенерированная автомаически там только номер платежа
    <form id="payment" name="payment" method="post" action="https://sci.interkassa.com/" enctype="utf-8">
    <input type="hidden" name="s" value="4YbQv9vjag" />
    <input type="submit" value="Pay">
    </form>
    с кассы приходит хттп-sciinterkassa../ /ci/цифры
    после долгих тестирований уточню проблему-
    касса подключена в личном кабинете.
    1)Упрощенная схема сайта главная-кабинет(авторизация)-касса-кабинет(авторизованный пользователь).
    Проблема -теряется S_SESSION["login"] в кабинет(авторизованный пользователь)-т.е.возвращается то в кабинет но уже S_SESSION["login"] утерян.
    Если ходить по этой схеме то:
    2)На последнем странице перед кассой всегда S_SESSION["login"] есть.
    3)Если убрать кассу сайт работает без ошибок S_SESSION["login"] не теряется.
    4)Если для теста пойти по кругу-главная-кабинет(авторизация)-касса-кабинет(авторизованный пользователь)-главная. без остановок-проглядывается некая закономерность а именно- S_SESSION["login"] теряется с заметной регулярностью то на 4 то 5 кругу-как я понимаю зависит от скорости прохождения круга в кабинете а на следующем кругу S_SESSION["login"] уже есть и так снова 5 кругов и снова на 5 кругу теряется-по схеме я шел с одинковой скоростью-поэтому 5 кругов Если поменять скорость прохождения схемы-то S_SESSION["login"] теряется на других кругах.
    Из этого я сделал вывод что проблема в настройках времени Только времени чего не знаю Помагите пожалуйста разобраться
    --- Добавлено ---
    спасибо-сайт без кассы работает и все сессии тоже
     
  12. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    еще если загрузить сайт и бездействовать пару минут S_SESSION["login"] как всегда на последней странице перед кассой есть а посл кассы уже нет И вообще если бездействовать на сайте то на первом кругу S_SESSION["login"] в кабинете е будет спасибо
     
  13. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Значит время жизни сессий в настройках
     
  14. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    Он настолько уникальный и запоминающийся, что я даже не знаю с чего начать...

    И тут Остапа понесло...
    Судя по контенту, сайт вы делаете не для себя прекрасного, а для широкой аудитории. А я есть частичка этой аудитории...

    Я - бэкендщик и стряпаю всё на фреймворках и поэтому "ВАУ!!!" дизайнов у меня нет, как и желания самоутвердиться за ваш счёт. За моей спиной два диплома европейского университета DonBosco : "Инженер офсетной печати" и "Инженер графической индустрии". Хотите верьте, хотите - не верьте, но я бы прислушался к человеку который хоть что-то в этом понимает.

    Взгляните на фреймворки Bootstrap, Kube, Semantic UI... Благодаря им можно быстро верстать страницы под любые размеры экранов и делать приятные и читабельные сайты.

    Если хотите уникальное и своё, то прежде чем пуститься в пляс, почитайте про верстку печатной продукции. Про цветовые палитры, семейства шрифтов и их сочетания, гармоничное расположение и оформление текста. Сайт - это тот же самый журнал, который может содержать в себе очень полезную информацию, но из-за плохого дизайна его даже в руки не возьмут.

    Слова моего преподователя : "Дизайн - это исскуство правил. Чем больше вы соблюдаете правила вёрстки, тем красивее выглядит ваша работа. Иногда можно нарушить несколько правил и это может придать своеобразный шарм, но прежде всего необходимо чувствовать эту тонкую грань".

    И попроще относитесь к критике. Если вас будут только хвалить, то поверьте, вы далеко не уйдете.
     
  15. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    возьми laravel)) сразу прокачаешь кучу скилов))
     
  16. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    заходишь в интернет-а там все так "красиво "! ) Дизайну всех как под линейку!! -все серое мелкое захламленное рекламой полупрозрачное )
    Все потому что красоту и в частности дизайн пытаются подогнать под какие-то шаблоны и правила!! это смешно !На дядей я не работаю мне не надо чтобы мои сайты кто-то брал в руки ) А дизайн моего мне офигеть как нравиться и я уверен что он очень понравиться широкой публике Перечислю вам его достоинства-все просто и четко крупно ярко легко читаемо легко юзаемо! Мое понимание красоты-красота должна быть не для красоты а должна быть практичной и удобной Если сайт удобен и практичен-значит он красивый А мелкое прозрачное однотонное-это все лишь навязанные правила
    --- Добавлено ---
    я просил помощи по потере сессии а нарвался на критику дизайна спасибо огромное
    --- Добавлено ---
    Он настолько уникальный и запоминающийся, что я даже не знаю с чего начать...-значит офигенный дизайн
     
  17. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    дизайн дело наживное)) вообще дизайн интересный)) будто в 90е вернулся)) тогда такое любили делать))
    а по поводу того на чем пишите)) я тоже когда то говорил что лучше писать на чистом пхп, а не на фреймворках)))
    теперь когда набрался опыта говорю что лучше юзать фреймворки))
     
  18. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
  19. twim32

    twim32 Активный пользователь

    С нами с:
    29 мар 2017
    Сообщения:
    275
    Симпатии:
    58
    И так же я с дизайном: когда залез в веб, всё казалось сделано под копирку и я считал своим долгом разбавить эту серость своей креативностью. Но меня хватило всего на несколько проектов.
    Да, так же напомнило дизайн 90х, аж олдскулы свело. Порой скучаю по тем временам когда "20 метров джаваскрипта не тянули 300 байт".

    Да. Вы правы. Я смотрю на десятки новых сайтов ежедневно, но только ваш смогу нарисовать по памяти.

    Да и вот яркий пример: Лебедев. Многие шарящие и не шарящие в дизайне люди, откровенно считают его творчество г-ном. Но это никак не мешает ему быть среди самых известных дизайнеров в России и грести бабло.
     
  20. Леня

    Леня Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    12
    Симпатии:
    0
    для меня важно ,чтобы идти дальше , понимать что есть какой-то результат спасибо