Переменная 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');
}