Как да разберете дали това е първото посещение на потребителя в Cakephp

работя върху Cakephp 2.x .. внедрих система за влизане и излизане на моя уебсайт, така че искам да знам, че има ли начин да установя дали даден потребител посещава моя уебсайт за първи път и ако е така, пренасочете към страница с настройки за време или „обиколка“ и ако не са посетители за първи път, пренасочете към таблото за управление.

първо се замислих за бисквитките, но те могат да бъдат изтрити, потребителят може да използва различен компютър, да смени браузъра и т.н. нито аз мога да опитам да използвам ipaddress.. така че искам да знам как мога да проследя потребителя, така че когато влезе за първи път моя уебсайт той може да види обиколката само за това време и след това никога ..ако сте направили това, моля, споделете кода или ми споделете урока или ми дайте някакво обяснение .. защото може да е възможно, както видях във facebook. правят това...

за ваша информация, уведомявам ви, че използвам authcomponent за влизане, излизане или cokies и т.н. ///


person hellosheikh    schedule 30.06.2013    source източник


Отговори (2)


Просто имайте променлива във вашата таблица с потребители, която по подразбиране е 0, когато потребителят се регистрира за първи път в сайта. Проверявайте тази променлива всеки път, когато потребители влизат. Ако това е първото им влизане (променливата все още е 0), превключете я на 1 (така че да се случва само веднъж) и ги препратете към страницата на вашата обиколка.

person swiecki    schedule 30.06.2013
comment
Има ли някакъв начин за управление за невлязъл потребител? Искам да показвам подкана на страницата за регистрация, когато потребител посети сайта за първи път. - person Jaya Vishwakarma; 13.11.2013
comment

Виждал съм няколко подобни публикации, но нито една не е съвсем същата, защото в моя въпрос искам да премахна контролера HOME от URL адреса, но контролерът да остане като стандартен (така че когато сайтът ми се зарежда от site.com/индекса в моя домашен контролер е уволнен)!!

Моят уебсайт MVC4 има няколко контролера, като напр

Начало
Продукти
Подробности
AndAnother
YetAnother

Домашният контролер е моят контролер по подразбиране и е мястото, където се намира моята начална страница, страница за информация, връзка с нас и т.н

Искам да премахна HOME от URL адреса, но това все още е моят контролер по подразбиране. Всички други контролери трябва да останат с името на контролера.

Следното не работи, моля, обърнете внимание на контролера по подразбиране „WhatControllerGoesHere“

routes.MapRoute(
           name: "HomeController",
           url: "{action}/{id}",
           defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "WhatControllerGoesHere", action = "Index", id = UrlParameter.Optional }
        );

Ако направя и двата контролера по подразбиране HOME, не мога да навигирам до друг контролер

 routes.MapRoute(
           name: "HomeController",
           url: "{action}/{id}",
           defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

И така, URL адресите, които се опитвам да постигна, биха били (където около и се свържете с нас са изгледи в моя дом)

site.com/                 //note, no Home/
site.com/about            //note, no Home/  
site.com/contact          //note, no Home/
site.com/products/  
site.com/products/other  
site.com/details/  
site.com/details/other  
site.com/details/AndAnother  

Знам, че мога да създам нови рутери за всеки контролер, но предпочитам да избегна това, ако е възможно.

- person swiecki; 14.11.2013

Можете също така да напишете променлива в сесията при регистрация и да я изтриете, след като той завърши обиколката.

Пишете за регистрация

$this->Session->write('first_login', true);

и след това го изтрийте по-късно с:

$this->Session->delete('first_login');
person Boštjan Pišler    schedule 11.09.2013