Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма и переменная, + неколько вопросов 
V
    Опции темы
Alix36
Дата 13.1.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: 1
Всего: 3



1.
Код

<?
ob_start();
include "chat_function.php";
dbcon();
 $id=$_COOKIE["banzai3"];
$l=mysql_query("SELECT * FROM pes WHERE idpes=\"$id\"") or die(mysql_error());
$a=mysql_fetch_array($l);
$location=$a["loc"];
$q=mysql_query("SELECT * FROM pes WHERE loc=\"$location\"") or die(mysql_error());
$tim=mktime()-600*60;

?>
<!doctype html public "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>
<body bgcolor="#CCCCCC" marginheight="0" marginwidth="0" >

<table width="100%">
  <tr>
    <td height="18">
      <center></td>
</tr>
<tr>
    <td height="21">
<center>
        <font size="1" face="a_LCDNova">Функции чата</font>
</center></td></tr>
<tr>
    <td><center>&lt;&lt;&lt;&lt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</center><hr></td>
  </tr>
<tr><td>
<?
while($d=mysql_fetch_row($q))
{
 if($d[4]>$tim)
 {
 ?>
 <form name="priv_form" method="post">
 <input name="priv" value="+" type="submit" >

 <?
 echo "<a  onclick='top.chat.document.forms[0].message.value+=\"$d[2], \"'>";
  echo"$d[2]</a><br>";
?>
</form>
<?
}
}
if(isset($_POST['priv']))
{
$rate=$d[0];
echo $d[0];
setcookie("priv",$rate,time()+86400000000);
ob_end_flush();
}
echo setlocation('user',15,'user.php');
?>
</td></tr>
</table>
</body>
</html>

услловие if(isset($_POST['priv'])) невыполняется? почему? я нажимаю кнопку
 <form name="priv_form" method="post">
 <input name="priv" value="+" type="submit" >
 <?
 echo "<a  onclick='top.chat.document.forms[0].message.value+=\"$d[2], \"'>";
  echo"$d[2]</a><br>";
?>
</form>
есть предположение что изза пхп кода в облости  отправляемой формы., но я сомневаюсь, что в этом причина.
Растолкуйте где ошибка.
Код

//функция 
function setlocation($window,$time,$url)
{
if($time)echo "<script>top.$window.document.write(\"<META HTTP-EQUIV=Refresh CONTENT='$time; URL=$url'>\");</script>";
else    echo "<script>top.$window.location='$url'</script>";
}

2. будет ли работать конструкция
 global $var;
при  reg_global=off ? если да то разьясните как она работает.
3.как думаете какое оптимальное решение передать переменную из фрейма в другой фрейм? 
(на мой взгляд кукисы)
А да Эта информация абсолютно не секретная.(к кому обращаются в чате в приват)


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
Нурик Сакура
Дата 13.1.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: 0
Всего: 2



Могу сразу сказать, почему не работает в первом вопросе.
PHP, если ты не в курсе - серверный язык. То есть выполняется на сервере и отправляет клиенту готовые результаты. Поэтому логично, что $_POST['priv'] будет не установлен. Сейчас, на тугую голову, не могу предложить никакого решения, но подскажу - либо AJAX юзать, либо как-то по другому организовывать дело...

Что касается второго вопроса, то работать она будет, если я не ошибаюсь. Ведь, если мне не изменяет память, register_globals отключает возможность использовать вместо $_POST['hello'] или $_GET['hello'] просто $hello. А global $var, по идее, указывает, что эта переменная является не локальной для функции, а глобальной для всего скрипта. То есть обьялена вне фукнции, но в том же скрипте.

Что касается передачи переменной из одного фрейма в другой фрейм, то тут тебе в раздел JavaScript, скорее всего. Думаю, на onClick повесить событие заполения в другом фрейме какого-то поля можно и не очень трудно...

Код

<script>
var kod=['wave',
'hello',
'hi',
'privet',
'sleep'
];
for(i=0; i<kod.length; i++) {
    document.write("<a href=# onclick=\"ins('"+kod[i]+"')\"><img src='"+kod[i]+".gif' border=0></a> ");
}
function ins(nm){
    if(!window.opener){window.close();return false}
    window.opener.Ins(nm)
    window.focus()
}
</script>
<br>

Пример не мой, просто стянул с какого-то сайта. Открывается маленькое окошко, в нем куча смайлов. Нажимаешь на один, он вставляется в том окне, откуда открылось маленькое. Не то, конечно, что тебе надо, но его модифицировав, чтобы вставлялось из одного фрейма в другое - не проблема. Просто как пример, думаю, поможет =)

Это сообщение отредактировал(а) Нурик Сакура - 13.1.2007, 21:23
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
Alix36
Дата 14.1.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: 1
Всего: 3



1 ты неправ про серверный язык, я отправляю форму на сервер, и толькоь после этого ее обрабатываю.
<form name="priv_form" method="post">
 <input name="priv" value="+" type="submit" >
js не катит. ибо кукисы в середине ставить я немогу.
З.ы. а че ты за MMORPG делаеш?
 


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
Mal Hack
Дата 14.1.2007, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Alix36, учите основы HTML, у вас поле action не установлено.
PM ICQ   Вверх
Alix36
Дата 14.1.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: 1
Всего: 3



разве его нужно указывать, когда файл исполнитель содержит файл форму??
Я читал что ненадо.

Добавлено @ 19:42 
action тут не при чем я проверил


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
Mal Hack
Дата 14.1.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Где ты такое читал? Ссылку, скрин с книги или rfc.
PM ICQ   Вверх
Alix36
Дата 14.1.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: 1
Всего: 3



книга большая и толстая HTML 3.2 (или меньше..) автора не помню..


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
Mal Hack
Дата 14.1.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Ты случаем не в php ee запускал скрипт?
PM ICQ   Вверх
Alix36
Дата 14.1.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: 1
Всего: 3



а ты пишеш аction="" или action="имя этого файла" ?

Добавлено @ 19:50 
поясни. че ты спросил


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
mishaSL
Дата 15.1.2007, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Странный код у тебя какой-то: начинаешь кешировать вывод в самом начале, а заканчиваешь только при условии. Ты пробовал проверять условие с отключенным кешированием?


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Alix36
Дата 15.1.2007, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: 1
Всего: 3



пробовал. кстати я понял почему неработает, и исправил, но кукисы не ставятся, даже в кэше, попробую через js ставить


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
mishaSL
Дата 15.1.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Лучше не используй кеширование, если этого не надо, а в твоем случае этого как раз не надо. Просто записывай все данные в одну переменную, а в конце скрипта выводи. Тогда и куки будут нормально ставиться.

И вообще куки надо ставить до вывода чего-либо, т.к. при установки cookie посылаются заголовки.

Это сообщение отредактировал(а) mishaSL - 15.1.2007, 14:46


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Нурик Сакура
Дата 15.1.2007, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почти японец...
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 17.12.2004
Где: Украина, Киев

Репутация: 0
Всего: 2



Да, сорри, профтыкал. Я не заметил, что там type=submit.

Цитата(Alix36 @  14.1.2007,  19:47 Найти цитируемый пост)
а ты пишеш аction="" или action="имя этого файла" ?

Что касается этого - я для спокойности себе пишу так:
Код

print("<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n");

Если мне вдруг понадобится передать какие-то параметры, то просто добавить после этого "?парам1=знач1..." - не проблема и все будет выводится корректно.
--------------------
- Приказы не обсуждаются!- Не объясняются и не выполняются. (с) фанфик на Hellsing
PM MAIL   Вверх
Alix36
Дата 16.1.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: 1
Всего: 3



не люблю гет =)
Все сделал через JS
Код, если кому понадобиться.
Код

<input name="priv" type="image" src="/img/pes_prv.gif" width="15" height="16" border="0" onclick='setCookie("privid",privid,1)'>




--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0870 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.