$ _REQUEST информация не передается в IE - PullRequest
0 голосов
/ 23 июня 2009

У меня проблема с причудой, когда у меня есть скрипт, который работает в другом месте на сайте, но отказывается работать для меня сейчас. Проблема исключительно для IE, она прекрасно работает в Mozilla. Ниже приведена форма:

<form class="element_form" action="general_image.php" method="post">

    <?php generate_input('hidden', '', 'id', $id);?>
    <input type="image" src="../images/delete.gif" name="action" value="delete" class="button" />
    <input type="image" src="../images/tick.gif" name="action" value="active_switch" class="button" />

</form>

Вот код, который должен работать:

<?php

include('header.php');

$db->connect();

$table = 'general_image';

$page = 'general';

$region = $_SESSION['region'];

$action = $secure->secure_string($_REQUEST['action']);
$id = $secure->secure_string($_POST['id']);

$max_active = 1;

if($action == 'active_switch' || $action == 'delete'){

    $response = array();

    $response['action'] = $action;
    $response['id'] = $id;

    if($action == 'active_switch'){

        $query = 'SELECT * FROM general WHERE region = "' . $region . '"';

        $result = mysql_query($query);

        if(!$result) {

            $utility->fail($action, 'query error: ' . $query);

        }else{

            $row = mysql_fetch_assoc($result);

            $already_active = false;

            $active = '';

            if($id == $row['fifi']){

                $already_active = true;
            }

            $active .= $row['fifi'];

            $response['results'] = $active;

            if(!$already_active){

                $update = '';
                $active = '';

                $update .= 'fifi="' . $id . '"';

                $active .= $id;

                $query = 'UPDATE general SET ' . $update . ' WHERE region = "' . $region . '"';

                $response['results'] = $active;

            }else{

                    $utility->redirect($page . '.php');

            }
        }

    }elseif($action == 'delete') {

        $query = "DELETE FROM $table WHERE id=" . $id;
    }

    echo $query . "hello";


    if(!mysql_query($query)) {

        $utility->fail($action, 'query error: ' . $query);
    }

Если бы кто-то мог сказать мне, что я делаю неправильно, это было бы здорово. Спасибо

EDIT

$action = $secure->secure_string does the following:

    function secure_string($string)
    {   
        return (strip_tags(addslashes(mysql_real_escape_string(stripslashes($string)))));
    }

Ответы [ 4 ]

1 голос
/ 02 июля 2011

Например, изображение кнопки имеет: name="submitP" и value="Print"

В ФОРМЕ поста PHP я использовал так:

if(isset($_REQUEST['submitP']) || isset($_REQUEST['submitP_x']))
{ something....
}

Если это второе предложение относится к посту IE

1 голос
/ 23 июня 2009

Я обнаружил, что иногда лучше иметь скрытое поле для действия, чем кнопку отправки или изображение. если кто-то нажмет RETURN или ENTER, чтобы отправить форму, какое действие будет возвращено?

0 голосов
/ 02 июля 2011

Вы помните session_start();?

0 голосов
/ 23 июня 2009

Я думаю, что ввод [type = 'image'] не работает в IE. Попробуйте вместо этого использовать кнопку [type = 'submit'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...