> For the complete documentation index, see [llms.txt](https://playground.e107sk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://playground.e107sk.com/e107-efiction-integration/e107-integration-i/sessions.md).

# Sessions

Available sessions in efiction:&#x20;

| Session                    | Note                                                           |
| -------------------------- | -------------------------------------------------------------- |
| SITEKEY."\_agecontsent"    | Age Consent                                                    |
| SITEKEY."\_skin"           | Selected Skin (deprecated)                                     |
| SITEKEY."\_viewed"         | ? Stories IDs with viewed chapter (for counting correct views) |
| SITEKEY."*warned*\_{$rid}" | User was warned for each rating with warning                   |
| SITEKEY."\_digit"          | ? Used for numeric captcha (deprecated)                        |

{% hint style="info" %}
`$_SESSION[$sitekey."_salt"], $_SESSION[$sitekey."_useruid"], $_COOKIE[$sitekey."_useruid"], $_COOKIE[$sitekey.'_salt']` related to registration/login system - replaced with e107 functionality
{% endhint %}

### Used e107 functionality:

| Method                                                      | Note                    |
| ----------------------------------------------------------- | ----------------------- |
| e107::getSession()->set('session\_*name', session*\_value); | Set session value       |
| e107::getSession()->is('session\_*name',*)                  | Check if session exists |
| e107::getSession()->get(('session\_*name',*)                | Get session value       |

### ‌Code examples:

| File     | header.php                                                                                                                                 |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| efiction | `if(!isset($_SESSION)) session_start();`                                                                                                   |
| e107     | `removed`                                                                                                                                  |
| efiction | `$_SESSION[SITEKEY."_skin"] = $siteskin;`                                                                                                  |
| e107     | `e107::getSession()->set(SITEKEY."_skin", $siteskin);`                                                                                     |
| efiction | <p><code>if(isset($\_SESSION\[SITEKEY."\_viewed"]))</code> <br><code>$viewed = $\_SESSION\[SITEKEY."\_viewed"];</code></p>                 |
| e107     | <p><code>if(e107::getSession()->is(SITEKEY."\_viewed"))</code> <br><code>$viewed = e107::getSession()->get(SITEKEY."\_viewed");</code></p> |
| efiction | `if(isset($_GET['ageconsent'])) $_SESSION[SITEKEY."_ageconsent"] = 1;`                                                                     |
| e107     | `if(isset($_GET['ageconsent'])) e107::getSession()->set(SITEKEY."_ageconsent", 1);`                                                        |
| efiction | `if(!empty($_SESSION[SITEKEY."_skin"])) $siteskin = $_SESSION[SITEKEY."_skin"];`                                                           |
| e107     | `if (e107::getSession()->is(SITEKEY.'_skin')) $siteskin = e107::getSession()->get(SITEKEY.'_skin');`                                       |

| File:    | includes/get\_session\_vars.php                                                                                                                                                                                                                                         |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| efiction | `if(EMPTY($_SESSION[$sitekey."_agecontsent"])) $ageconsent = $userdata['ageconsent']; else $ageconsent = $_SESSION[$sitekey."_agecontsent"];`                                                                                                                           |
| e107     | <p><code>if (e107::getSession()->is(SITEKEY.'\_ageconsent'))</code> </p><p><code>$ageconsent = e107::getSession()->get(SITEKEY.'\_ageconsent');</code></p><p><code>else $ageconsent = $authordata\['ageconsent'];</code> </p>                                           |
| efiction | `if(!isset($_SESSION[$sitekey."_agecontsent"])) $ageconsent = $userdata['ageconsent']; else $ageconsent = $_SESSION[$sitekey."_agecontsent"];`                                                                                                                          |
| e107     | <p><code>if (e107::getSession()->is(SITEKEY.'\_ageconsent'))</code> </p><p><code>$ageconsent = e107::getSession()->get(SITEKEY.'\_ageconsent');</code></p><p><code>else $ageconsent = $authordata\['ageconsent'];</code> </p>                                           |
| efiction | `if(!isset($_SESSION[$sitekey."_skin"]) && !empty($userdata['userskin'])) $siteskin = $userdata['userskin']; else if(isset($_SESSION[$sitekey."_skin"])) $siteskin = $_SESSION[$sitekey."_skin"]; else $siteskin = $defaultskin;`                                       |
| e107     | <p><code>if (e107::getSession()->is(SITEKEY.'\_skin')) $siteskin= e107::getSession()->get(SITEKEY.'\_skin');</code> </p><p><code>elseif(!empty($userdata\['userskin']) $siteskin = $userdata\['userskin'];</code></p><p><code>else $siteskin = $defaultskin;</code></p> |

| File:    | **viewstory.php**                                                                                  |
| -------- | -------------------------------------------------------------------------------------------------- |
| efiction | `empty($_SESSION[SITEKEY."_ageconsent"])`                                                          |
| e107     | `!e107::getSession()->is(SITEKEY."_ageconsent")`                                                   |
| efiction | `empty($_SESSION[SITEKEY."_warned"][$storyinfo['rid']])`                                           |
| e107     | `!e107::getSession()->is(SITEKEY."_warned_{$storyinfo['rid']}")`                                   |
| efiction | <p><code>$\_SESSION\['viewed'] = $viewed;</code><br>$\_SESSION\[SITEKEY."\_viewed"] = $viewed;</p> |
| e107     | `e107::getSession()->set(SITEKEY."_viewed", $viewed);`                                             |

| Files:   | includes/plain.button.php, includes/button.php                     |
| -------- | ------------------------------------------------------------------ |
| efiction | `unset($_SESSION[$sitekey.'_digit']);`                             |
| e107     | `e107::getSession()->clear(SITEKEY."_digit");`                     |
| efiction | `$_SESSION[$sitekey.'_digit'] = md5($sitekey.$digit);`             |
| e107     | `e107::getSession()->set(SITEKEY."_digit", md5($sitekey.$digit));` |

| Files:   | user/editprefs.php                                    |
| -------- | ----------------------------------------------------- |
| efiction | `$_SESSION[$sitekey."_skin"] = $skinnew;`             |
| e107     | `e107::getSession()->set(SITEKEY."_skin", $skinnew);` |

<table data-header-hidden><thead><tr><th>File:</th><th>inlcudes/corefunctions.php</th></tr></thead><tbody><tr><td>File:</td><td>inlcudes/corefunctions.php</td></tr><tr><td>efiction</td><td><code>if(empty($_SESSION[SITEKEY.'_digit'])) return false;</code></td></tr><tr><td>e107</td><td><code>$digit = e107::getSession()->get(SITEKEY."_digit");</code></td></tr><tr><td>efiction</td><td><code>$digit = $_SESSION[SITEKEY.'_digit'];</code></td></tr><tr><td>e107</td><td><code>$digit = e107::getSession()->get(SITEKEY."_digit");</code></td></tr><tr><td>efiction</td><td><code>unset($_SESSION[SITEKEY.'_digit']);</code></td></tr><tr><td>e107</td><td><code>e107::getSession()->clear(SITEKEY."_digit");</code></td></tr><tr><td>efiction</td><td>!isset($_SESSION[SITEKEY."_warned"][$rating])</td></tr><tr><td>e107</td><td><pre data-overflow="wrap"><code>!e107::getSession()->is(SITEKEY . "warned{$rating}")
</code></pre></td></tr><tr><td>efiction</td><td>empty($_SESSION[SITEKEY.'_ageconsent'])</td></tr><tr><td>e107</td><td><pre class="language-php" data-overflow="wrap"><code class="lang-php">!e107::getSession()->is(SITEKEY . "_ageconsent")
</code></pre></td></tr></tbody></table>

{% hint style="info" %}
Se*ssions in files: user/login.php and user/logout.php*&#x20;

related to registration/login system - replaced with e107 functionality
{% endhint %}

All changes are in this commit:

{% embed url="<https://github.com/e107-eFiction/efiction-e107-integration/commit/ee5fe126ba83470e30df7a7f49d75fd8c68697b1>" %}
