Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2011, 01:24   #1
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию опера и ie не видят $_REQUEST

ситуация такая. есть файл index.php
на нём есть форма:
PHP код:
<form action="download.php" method="post">
<
input src="b1.png" align="middle" type="image" name="butt" value="f1">
<
input src="b2.png" align="middle" type="image" name="butt" value="f2">
</
form
кнопка-картинка сабмитит форум и просиходит переход на download.php
PHP код:
$filename='';
$f1='';
$f2='';
//тут присваиваются переменные $f1 и $f2
if ($_REQUEST['butt']=="f1") { $filename=$f1; }
else if (
$_REQUEST['butt']=="f2") { $filename=$f2; } 
Firefox нормально определяет значение $_REQUEST['butt'] и правильно присваивает значение переменной $filename.
опера и ie при попытке вывести $_REQUEST['butt'] "пишет" пустоту

почему так, и как это исправить?

UPD: задача состоит в том, чтобы определить на странице download.php какая кнопка была нажата на index.php
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 02.02.2011, 02:40   #2
dekameron
Форумчанин
 
Аватар для dekameron
 
Регистрация: 27.04.2010
Сообщений: 185
По умолчанию

Вообще-то браузеры не интерпретируют РНР код.
Проблема скорей в том, какие данные передает браузер на страницу указаную в action.
Не проще назвать INPUT"ы разными именами (напр button1 и button2) а в download.php проверять
PHP код:
if(isset($_POST['button1'])){
    
$filename=$f1;
}elseif(isset(
$_POST['button2'])){
    
$filename=$f2;

Не уверен в работоспособности, на input type="submit" точно работает, насчет type="image" возможна передача в форме на обработку обоих значений (тогда всегда будет срабатывать только первый ариант $filename=$f1.
К сожалению сейчас нет возможности у себя протестировать

P.S. Не критично, но все же, если форме четко задано method="post" зачем использовать $_REQUEST если можно $_POST.
Помог - тырк на весы

Последний раз редактировалось dekameron; 02.02.2011 в 02:42.
dekameron вне форума Ответить с цитированием
Старый 02.02.2011, 09:09   #3
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

с постом не работает и в лисе.
echo $_POST['button1']; выдает пустоту

сначала я всё делал через type=submit, а потом заказчику захотелось кнопки в виде картинок. и вот началось

а с submit'ом какая фигня получается. если у меня 2 кнопки имеют value="Скачать"?, а $_POST['button1'] возвращает именное это Value, то значение фсё время будет одинаковым

как вариант можно попробовать выставить картинку на фон сабмита

вычитал, что ie не получается post['button1'] с type=image
он получает post['button1_x'] с координатами нажатия
Life if about choices
Make the right choice

Последний раз редактировалось TaTT DoGG; 02.02.2011 в 09:46.
TaTT DoGG вне форума Ответить с цитированием
Старый 03.02.2011, 11:06   #4
InternetStranger
php / delphi
Форумчанин
 
Аватар для InternetStranger
 
Регистрация: 10.06.2007
Сообщений: 175
По умолчанию

Цитата:
сначала я всё делал через type=submit
Вот и верните все как было. Вы и сами уже изложили правильный вариант. И предложен вам был тоже полностью рабочий.
По-моему, в 2х соснах запутались:

Код HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
	<title>Определить на каую кнопку было нажатие</title>
    
    <style type="text/css">
        #myform input {
            border: none;
            background-color: transparent;
            margin: 0 25px;
            width: 40px;
            height: 18px;
        }
        #button_1 { background-image: url('bg.png'); }
        #button_2 { background-image: url('bg.png'); }
    </style>
</head>
<body>
    <form id="myform" action="download.php" method="post">
        <input id="button_1" type="submit" name="button_1" value="f1" />
        <input id="button_2" type="submit" name="button_2" value="f2" />
    </form> 
</body>
</html>
Это php-скрипт:
PHP код:
<?php

$f1
='Первый файл';
$f2='Второй файл';

if( isset(
$_POST['button_1']) ){
    
$filename=$f1;
}elseif( isset(
$_POST['button_2']) ){
    
$filename=$f2;
}  

// var_dump( $_POST );
echo "Файл: $filename";

?>
ps: проверил, везде все работает (FF, IE6+)
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра.
InternetStranger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опера по умолчанию AlexDn Общие вопросы Delphi 2 12.10.2010 21:30
Чужое приложение [Опера] auffasst Общие вопросы Delphi 3 27.06.2010 17:53
Браузер Опера Xeon332 Помощь студентам 2 31.12.2009 14:38
Опера и IE. Горизонтальное меню. sun-pa HTML и CSS 2 28.02.2009 17:20
Слои + опера ( Droid HTML и CSS 6 25.10.2008 23:56