|
|
|
| У меня есть сайт с фреймами. Переменные в URL видятся, соответсвенно, только с главной страницы. Необходимо передать перемнную с главной страницы (index.php) в фреймовую страницу (menu.php).
Попытался передать перемнную через сессию
$quer=$_SERVER["QUERY_STRING"];
session_start();
$_SESSION['quer'] = $quer;
|
получил сообщение:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\www\academy_site\index.php:7) in C:\www\academy_site\index.php on line 13
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\www\academy_site\index.php:7) in C:\www\academy_site\index.php on line 13
|
| |
|
|
|
|
|
|
|
для: Глеб
(25.10.2004 в 20:31)
| | Вот пример передачи из фрейма во фрейм двумя способами: через JavaScript и просто по ссылке
Это главная страница, где определены фреймы
<frameset rows="50%,50%" frameborder="1" border="0" framespacing="0">
<frame src="mainframe.php" name="topframe" scrolling="NO" noresize >
<frame src="bottomframe.php" name="bottomframe" scrolling="NO" noresize>
</frameset>
|
Чтобы передавать из фрейма во фрейм они должны иметь имя (параметр name). Здесь названы по именам файлов.
Далее - что находится во фреймах:
Это фрейм mainframe.htm - из него передаем значения во фрейм bottomframe.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<script language="JavaScript">
function send(id)
{
top.frames.bottomframe.location.href="bottomframe.php?var="+id;
}
</script>
</head>
<body>
<h1>Фрейм 2</h1>
<a href="#" onclick="send(4)">Передаем через JavaScript</a> <br>
<a href="bottomframe.php?var=4" target="bottomframe">Передаем просто по ссылке</a> <br>
</body>
</html>
|
А во фрейме bottomframe.php получаем значение $var
При передаче по ссылке нужно указывать значение target, равное имени фрейма-приемника. В данном случае - это target="bottomframe" | |
|
|
|
|
|
|
|
для: Глеб
(25.10.2004 в 20:31)
| | а зачем открывать сессию? у меня между фреймами отлично передаются переменные в URL. наоборот, даже хорошо, что URL не видно. | |
|
|
|
|
|
|
|
для: elenaki
(25.10.2004 в 22:08)
| | elenaki можно чуть поподробнее, что именно и как передается, а то что-то у меня не получается. | |
|
|
|
|
|
|
|
для: Глеб
(25.10.2004 в 20:31)
| | Сессии и cookie отправляются в HTTP-заголовках, которые по стандарту отправляются раньше всех данных. Если до обращения к функциям работы с сессиями и cookie выводится какой-либо текст, то требует от сервера отправки заголовков и когда приходит время для отправки заголовков сессий и cookie HTTP-заголовки уже сформированы.
Выходом здесь может служить использование функций управления выводом, позволяющих задержать вывод основного текста.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=147 | |
|
|
|
|
|
|
|
для: cheops
(25.10.2004 в 22:20)
| | Решил проблему до безобразия просто:
<frame src="
<?php
$quer=$_SERVER["QUERY_STRING"];
print("menu.php?".$quer);
?>
" name="menuFrame">
|
| |
|
|
|
|
|
|
|
для: Глеб
(26.10.2004 в 22:30)
| | Хм, а почему у Вас не работает стандартный способ передачи через URL, приведенный мной постом выше? Здесь даже и PHP не надо.. только параметр target указать.
<a href="bottomframe.php?var=4" target="bottomframe">Передаем просто по ссылке</a>
|
| |
|
|
|
|
автор: chip (27.10.2004 в 03:03) |
|
|
для: glsv (Дизайнер)
(27.10.2004 в 01:07)
| | а как передать параметры
(значение переменных)
скрыто т.е. не через URL
методом POST наверно но как? | |
|
|
|
|
|
|
|
для: chip
(27.10.2004 в 03:03)
| | Скрыто это как? Чтоб никто не смог их увидеть (даже если захотел)?
Или чтобы просто их не было видно в адресной строке?
Для второго случая и если сайт на фреймах - отлично подходит вышеприведенный способ.
Если сайт не на фреймах, то можно воспользоваться Java-Script-ом или передачей данных методом POST через форму. | |
|
|
|
|
автор: chip (28.10.2004 в 00:17) |
|
|
для: glsv (Дизайнер)
(27.10.2004 в 11:41)
| | допустим есть некоторые переменные одни бурутся из других файлов посредством инклуд а другие предаются скрипты из зародненных ранее форм а третие задаются прямо в скрипте и как передать вме эти переменные в другой скрипт ?
ну через строку url (если можно чтоб они были не видны)
или как методом пост (но там переменные из форм заполненых ранее и из других файлов).
Ну в WML (WAP) фреймов пока вроде нет, как вроде и кукисов (хотя говорят и в сотовых появляются , но все ровно это пока исключение исправил).
Мне интересно вот что:
Вот человек зашел вел логин и пароль
и авторизировался т.е. нажимает настроки там его настройки нажимает входящие сообщения там его соообщения(применительно WAP и WEB). | |
|
|
|
|
|
|
|
для: chip
(28.10.2004 в 00:17)
| | Так Вы спрашиваете про именно про WAP?
Да, ява-скрипт здесь не поможет... Но для WAP-а есть вроде бы аналог JavaScript-а под названием WMLSCRIPT. Но тут я Вам посоветовать ничего не могу :(
Видимо, самое простое решение - все переменные передавать через URL открыто | |
|
|
|
|
автор: chip (28.10.2004 в 16:48) |
|
|
для: glsv (Дизайнер)
(28.10.2004 в 01:29)
| | Ну раз c WAP не подскажите то хотелось бы узнать как для WEB осуществить.
Чтоб знать какую анологию искать. WMLSCRIPT "слабенький" но ... | |
|
|
|
|
|
|
|
для: chip
(28.10.2004 в 16:48)
| | При всех ограничениях WAP пришло в голову только решение в лоб. Сформировать форму с методом POST и скрытыми переменными и запускать ее на выполнение JavaScript-ом. Как и показала elenaki
<form name="formname" action="index.php" method="POST">
<input type="hidden" name="var" value="2333">
</form>
<a href="#" onclick="formname.submit(); return false">Ссылка</a><br>
|
Саму форму будет не видно на странице. А отсылка данных из нее осуществляется JavaScript по методу form.submit(). А так как у формы метод POST, то переменных в URL не видно. | |
|
|
|
|
|
|
|
для: chip
(27.10.2004 в 03:03)
| | мне тут недавно подкинули чужой скрипт доделывать. там параметры заполняются в форме, а передаются
Java-script'ом. я и не знала, что можно форму использовать без кнопки Submit. просто ее функции переданы скрипту.
<SCRIPT language="JavaScript">
function movecategory_submit()
{ radioRef=document.getElementsByName("selectcat_id");
ssel=-1;
for (i=0; i<radioRef.length; i++)
{
if (radioRef[i].checked) {ssel=i; break;}
}
if (ssel==-1) {alert ("Select the category."); return;}
document.getElementById("movecategory_id").value=radioRef[ssel].value;
document.getElementById("movecategory_form").submit();
}
function movecategory_reset()
{ if (!confirm("Reset the form.")) return false;
radioRef=document.getElementsByName("selectcat_id");
ssel=-1;
for (i=0; i<radioRef.length; i++)
{
if (radioRef[i].checked) {ssel=i; break;}
}
if (ssel!=-1) radioRef[ssel].checked=false;
}
</SCRIPT>
<A href="#" onclick="movecategory_submit(); return false;" onmouseover="status='Select category'; return true;">category</A>
<A href="#" onclick="movecategory_reset(); return false;" onmouseover="status='Reset form'; return true;">Reset form</A>
|
| |
|
|
|