Не передается переменная в Опере
Возникла проблема с Оперой. Во всех других браузерах все работает без проблем.
Цель: сделать переход на страницу с передачей ей переменной: <input type="checkbox" onclick="location.replace('http://bla-bla-bla.ru/?work=1');"> На страницу переходит, но переменную не передает. В остальных браузерах все отлично. Как исправить ситуацию? |
А вы фокус ввода в строку адреса пробовали ставить? В новых версиях Opera скрывает часть адреса.
|
Да я и вручную пробовал в адресной строке Оперы вбивать:
http://bla-bla-bla.ru/?work=1 Все равно не передает переменную. Вместо http://bla-bla-bla.ru/?work=1открывается http://bla-bla-bla.ru/ |
Цитата:
|
Я понял о чем Вы говорите. О том, что опера скрывает часть УРЛа. Выполнил команду opera:config#UserPrefs|ShowFullURL, поставил галочку чтобы выводились полные урлы.
После этого опять открываю: http://bla-bla-bla.ru/?work=1 Теперь открывается как надо: http://bla-bla-bla.ru/?work=1 Но переменную не передает (у меня стоит проверка на наличие переменной в коде следующей страницы). В IE и FF все успешно передает. Версия Оперы: 11.61 |
Цитата:
|
Сделав print_r($_GET); на принимающей переменную странице, я получил ответ:
Array ( [work] => 1 ) Значит переменная все-же передается, но почему тогда не читается? Читаю ее через $_GET['work']. В остальных браузерах ведь все ок. |
в этом уж явно мы не помощники, особенно не видя того что у вас там за код и что там твориться.
|
Переменная action передается на вторую страницу так:
<input id="agree" type="checkbox" onclick="location.replace('subs/?action=phone');"> Либо так: <a href="subs/?action=phone"> На принимающей странице код такой: <?php header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past error_reporting(E_ALL); ini_set('display_errors', 1); define('SELF', dirname(__FILE__) . '/'); define('ROOT', realpath(SELF . '../') . '/'); if (isset($_GET['erotic'])) { define('URL', '/erotic1/subs/?erotic=1'); } else { define('URL', '/erotic1/subs/?work=1'); } include SELF . 'lib/function.php'; include SELF . 'lib/config.php'; include SELF . 'lib/request.php'; session_set_cookie_params(365*24*60*60); session_start(); if (get('action')) { $_SESSION['action'] = get('action'); myredirect(URL); } $action = session('action', 'phone'); $ACTIONS = array('phone', 'code', 'delete', 'rules', 'finish', 'deleteok'); if (! $action || ! in_array($action, $ACTIONS)) { die('Unknown action'); } $logged = true; if (! in_array($action, array('rules', 'delete')) && ! $logged) { myredirect('/'); } $innerContext = array(); $request = new Request($CNF); if ($action === 'phone') { if ($_POST) { if (post('phone')) { $phone = str_replace('+', '', post('phone')); if (validate_phone($phone)) { $_SESSION['phone'] = $phone; $request->setPhone($phone); $request->submit(Request::ACTION_CREATE); if ($request->error()) { $innerContext['error'] = $request->error(); } else { myredirect(URL . '&action=code'); } } else { $innerContext['error'] = '<br>Ошибка'; } } } } elseif ($action === 'code') { if (! session('phone')) { myredirect(URL . '&action=code'); } $innerContext['phone'] = session('phone'); $innerContext['agreement'] = loadTemplate("mts_agreement"); if ($_POST) { if (post('code')) { $request->setPhone(session('phone')); $request->setCode(post('code')); $request->submit(Request::ACTION_APPROVE); if ($request->error()) { $innerContext['error'] = $request->error(); } else { $_SESSION['ok'] = $_POST ['code']; myredirect(URL . '&action=finish'); //целевое действие на Вашем сайте } } else { $innerContext['error'] = '<br><br>Ошибка'; } } } elseif ($action === 'delete') { if ($_POST) { if (post('phone')) { $phone = str_replace('+', '', post('phone')); if (validate_phone($phone)) { $request->setPhone($phone); $request->submit(Request::ACTION_CANCEL); if ($request->error()) { $innerContext['error'] = $request->error(); } else { myredirect(URL . '&action=deleteok'); } } else { $innerContext['error'] = '<br>Ошибка'; } } } } $context['logged'] = $logged; $context['content'] = loadTemplate($action, $innerContext); echo loadTemplate('index', $context); При выполнении в IE и FF все проходит на "ура" и выполняется "?action=phone". А в Опере выполняется то, что запрограммировано строчками: if (! $action || ! in_array($action, $ACTIONS)) { die('Unknown action'); } |
Часовой пояс GMT +3, время: 20:43. |