@kuzyairon

Почему не выполняются условия?

Смысл в том, что происходит авторизация на странице login.php и после делается редирект на страницу Approved при успешной авторизации.

Код страницы login.php

if ($oneday) {
        if (password_verify($data['login'], $oneday->password))
            $SESSION['logged_user'] = $oneday;
        $active = R::dispense('activen');
        $active->token = $hashone;
        $active->join_date = $date;
        $active->expire = $date_expire_oneday;
        $active->login = $data['login'];

        $active->token = $hashone;

        R::store($active);

        R::exec("DELETE FROM oneday WHERE login = ?", [$data]);
        if ($oneday == false) {


            session_start();
            $_SESSION ['reason'] = R::getCell('SELECT `token` FROM activen WHERE `login` = ? LIMIT 1', [$data]);


            header('Location: http://localhost/approved.php');
        }


    }
    if ($sevendays) {
        if (password_verify($data['login'], $sevendays->password))
            $SESSION['logged_user'] = $sevendays;

        $activeseven = R::dispense('activen');
        $activeseven->token = $sevendays;
        $activeseven->join_date = $date;
        $activeseven->expire = $date_expire_sevendays;
        $activeseven->login = $data['login'];

        $activeseven->token = $hashseven;
        R::store($activeseven);

        R::exec("DELETE FROM sevendays WHERE login = ?", [$data]);

        header('Location: http://localhost/approved.php');

    }
    if ($sevendays == false) {



        $_SESSION ['sevendays'] = R::getCell('SELECT `token` FROM activen WHERE `login` = ? LIMIT 1', [$data]);


        header('Location: http://localhost/approved.php');
    }


А здесь код страницы approved.php

$errors = array();

session_start();

$activesevendouble = $_SESSION['reason'];
$activesevendays = $_SESSION['sevendays'];

if ($activesevendouble) {

    echo '<div style="color: green;">Ну все oneday </div>';
    $url = "http://example.com/activate.php?token=$activesevendouble";
     echo $url;

    if ($activesevendouble == false) {

        $errors[] = 'no akk';
    }
}
elseif ($activesevendays) {
    echo '<div style="color: green;">Ну все SEVENDAYs </div>';
    $urll = "http://example.com/activate.php?token=$activesevendays";
    echo $urll;

    if ($activesevendays == false) {

        $errors[] = 'no akk';

    }


он мне почему то выводит первое условие , то есть условие ONEDAY , но не выводит следующее условие и не подтягивает значения для SEVENDAYS, если я авторизую ключ из таблицы SEVENDAYS, только ONEDAY
всю голову себе сломал уже, не понимаю что и как делать
Слёзно прошу помощи ткнуть на эту ошибку
  • Вопрос задан
  • 66 просмотров
Решения вопроса 2
@Picknice
Веб-программист (FULL STACK)
Может быть в login.php перед
if ($oneday) {
нужно
session_start();
$oneday = isset( $_SESSION['oneday'] ) ? $_SESSION['oneday'] : false;
$sevendays = isset( $_SESSION['sevendays'] ) ? $_SESSION['sevendays'] : false;
Ответ написан
@kuzyairon Автор вопроса
Решение оказалось следующее, переписал следующим образом, без редиректа на другую страницу
Подтягивает все как нужно.

if ($sevendays) {
        if (password_verify($data['login'], $sevendays->password))
            $SESSION['logged_user'] = $sevendays;

        $activeseven = R::dispense('activensevendays');
        $activeseven->token = $sevendays;
        $activeseven->join_date = $date;
        $activeseven->expire = $date_expire_sevendays;
        $activeseven->login = $data['login'];

        $activeseven->token = $hashseven;
        R::store($activeseven);

        R::exec("DELETE FROM sevendays WHERE login = ?", [$data]);


    }

    elseif($sevendays == false) {

        $activesevendouble = R::getCell('SELECT `token` FROM activensevendays WHERE `login` = ? LIMIT 1', [$data]);
        if ($activesevendouble)
        {
            $urrlll = "http://example.com/activate.php?sevendays=$activesevendouble";
            echo $urrlll;

        }
    }


Все остальные блоки по аналогии. Костыли , но работает
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы