- Проблем със сесия
1234
WT форуми -> PHP MySQL ASP.NET -> Проблем със сесия
Създайте нова тема Напишете отговор 
Автор Съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2649
Мнение 15/03/2018 4:31 pm      Отговорете с цитат


teroristd написа:
Еми само един път имам в модела.


Доколкото разбирам имаш контролер, който вика логинмодел->run() и това са два пъти session-start за едно изпълнение на скрипта.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 54
Bonus: 108
Мнения: 693
Мнение 15/03/2018 4:31 pm      Отговорете с цитат


Всеки път като извикаш контролера си изтриваш сесията.

1. Викаш за първи път - регистрираш сесията
2. Препращаш
3. Викаш контролера - сесията ти се изтрива

Поне така си го обяснявам аз.

Също, в контролера дъмпни session_status() след като извикаш модела. Трябва да ти изпише 2.



П.П. Цялата ти логика е много объркана.
Във втория try-catch блок на run() в Login контролера викаш отново session_start() през run() на модела.
Цялото използване на try-catch блоковете е напълно излишно. Само си си усложнил живота с тях.

За замазване на положението опитай да дебъгнеш session_status() преди

PHP code:

if (!isset($_SESSION['userCurrentUrl']))


и ако не е активна, я активирай там. Ако не, ще трябва да се проследява по-обстойно как и какво извикваш, каква поредност и т.н.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 54
Bonus: 108
Мнения: 693
Мнение 15/03/2018 4:38 pm      Отговорете с цитат


Между другото, ако тестваш и оправяш на хостинга, ти препоръчвам, докато го правиш да си вклчиш display_errors докато си оправиш проблемите. Защото по принцип са спрени.
Трябва да имаш PHP Manager някъде в cpanel-а от където да ги включиш.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2649
Мнение 15/03/2018 4:41 pm      Отговорете с цитат


@Revelation в интерес на истината. С php:

Цитат:
PHP 7.0.27 (cli) (built: Jan 5 2018 12:26:39) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans


и следния тест:

1.php:
<?php
error_reporting(E_ALL ^ E_NOTICE);
session_start();


$_SESSION['myKey'] = 'myValue';
echo 'PREDI INCLUDE'.PHP_EOL;
var_dump($_SESSION['myKey']);

include('./2.php');
echo 'SLED INCUDE'.PHP_EOL;
var_dump($_SESSION['myKey']);


2.php:
<?php
session_start();
?>


Output-a ми е:

Цитат:
$ php 1.php
PREDI INCLUDE
/Users/fakeheal/Desktop/Test/1.php:8:
string(7) "myValue"
SLED INCUDE
/Users/fakeheal/Desktop/Test/1.php:12:
string(7) "myValue"


Има и notice, ама явно не чисти сесията. Нз дали е от версията, де, notice-a e: "ignoring session_start()" Very Happy
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 15/03/2018 4:49 pm      Отговорете с цитат


Прави сте session_status(); ми връща 2. Не се получава да я активирам преди if (!isset($_SESSION['userCurrentUrl'])). Не знам какво да правя освен да пренапиша логина.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 54
Bonus: 108
Мнения: 693
Мнение 15/03/2018 4:51 pm      Отговорете с цитат


Fakeheal написа:
...


Аз нямам предвид, че session_start wipe-ва сесията, а че когато извика още веднъж контролера, след като извика конструктора стойността на $this->_currentUrl; не е същата и най-вероятно е NULL.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 15/03/2018 4:52 pm      Отговорете с цитат


Revelation написа:
Fakeheal написа:
...


Аз нямам предвид, че session_start wipe-ва сесията, а че когато извика още веднъж контролера, след като извика конструктора стойността на $this->_currentUrl; не е същата и най-вероятно е NULL.


Да
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 54
Bonus: 108
Мнения: 693
Мнение 15/03/2018 4:53 pm      Отговорете с цитат


teroristd написа:
Revelation написа:
Fakeheal написа:
...


Аз нямам предвид, че session_start wipe-ва сесията, а че когато извика още веднъж контролера, след като извика конструктора стойността на $this->_currentUrl; не е същата и най-вероятно е NULL.


Да


Ами, тогава направи проверка дали е сетната сесията, и ако е не и присвоявай наново стойността на currentUrl.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 15/03/2018 5:14 pm      Отговорете с цитат


Не можах да открия начин да го направя. Сесията всъщност съдържа url-a който го взимам от някоя страница например /offer/item/6, и целта е след логване да се върне на същата страница. Всъщност точно тази стойност губя.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 54
Bonus: 108
Мнения: 693
Мнение 15/03/2018 5:26 pm      Отговорете с цитат


Ами не знам как ти работи фреймуорка. Нямам ни малка представа кое как се вика и защо се вика.
Кога се вика конструктора, кога се вика run(), след прехвърляне вика ли се отново конструктора?

Трябва повече информация. Ако работеше с Ларавел, по-лесно бих ти помогнал или с който и да е друг фреймуорк, защото си имат документация и т.н. Но ти имаш твоя система, която от тука никой не знае как работи и какво точно правиш и просто даване на методите не върши работа.

Покажи как ги използваш с малко пояснения какво се случва, за да можем да си представим какво става и защо аджеба се изтрива тази сесия.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 350
Bonus: 698
Мнения: 2649
Мнение 15/03/2018 5:30 pm      Отговорете с цитат


Revelation написа:

Покажи как ги използваш с малко пояснения какво се случва, за да можем да си представим какво става и защо аджеба се изтрива тази сесия.


Супер секретен ли е кода на системата? Може ли да я шернеш в гитхъб, например? Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 15/03/2018 5:38 pm      Отговорете с цитат


Fakeheal написа:
Revelation написа:

Покажи как ги използваш с малко пояснения какво се случва, за да можем да си представим какво става и защо аджеба се изтрива тази сесия.


Супер секретен ли е кода на системата? Може ли да я шернеш в гитхъб, например? Smile


Не е тайна системата, аз дори съм пуснал първите файлове от нея в гитхъб още преди време, с мисълта да я развивам. Точно с теб говорихме за това Smile .
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
1234
Страница 2 от 4


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети