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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите создании обработки формы. $_POST не хочет задавать значение... 
:(
    Опции темы
XSonicX
  Дата 2.9.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 14.7.2006
Где: Таллинн, Edinburg h

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



$_POST не хочет задавать значение переменной

нужно чтобы поле значение формы было в переменной
Вот код формы.
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Текстовый редактор (а разработке )</title>
<LINK rel="stylesheet" type= "text/css" href="csshead.css">     
<script type=text/javascript>
startList = function() {//fantasyflash.ru
if (document.all&&document.getElementById) {
menusRoot = document.getElementById("menus");
for (i=0; i<menusRoot.childNodes.length; i++) {
node = menusRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";//osw
  }
  node.onmouseout=function() {
  this.className=this.className.replace(" over", "");
   }
   }
  }
 }
}
window.onload=startList;</SCRIPT>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>
#abc {margin-top: 50px;}
</style>
<script language="JavaScript">
function knopka() {
document.form.text.value='<b></b>' + document.form.text.value;
}
function knopka1() {
document.form.text.value='<i></i>' + document.form.text.value;
}
function knopka2() {
document.form.text.value='<tt></tt>' +document.form.text.value;
}
function knopka3() {
document.form.text.value='<hr>' +document.form.text.value;
}
</script>
</head>
<body bgcolor="F5FFF5">
<table border="1" cellspacing="0" cellpadding=10">
<tr>
<td>
<?php
include("menu.inc");
?>
</td>
</tr>
</table>

<script language="JavaScript">
function win() {
myWin=open("", "displayWindow", "status=no, menubar=no, toolbar=no, height=50, width=60");
myWin.document.open('<form name="form">');
myWin.document.write('<input type="button" value="B" onClick="knopka()">');
myWin.document.write('<input type="button" value="I" onClick="knopka1()">');
myWin.document.write('<input type="button" value="tt" onClick="knopka2()">');
myWin.document.write('<input type="button" value="HR" onClick="knopka3()">');
myWin.document.write('</form>');
}
</script>
<center>
<table id="abc">
<tr>
<td>
<form action="processform.php" method="POST" name="form">
<input type="button" value="B" onClick="knopka()">
<input type="button" value="I" onClick="knopka1()">
<input type="button" value="tt" onClick="knopka2()">
<input type="button" value="HR" onClick="knopka3()">
<a href="#" onClick="win()">Теги</a>
</td>
</tr>
<tr>
<td>
<hr>
<pre><textarea cols="50" rows="25" name="html">
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
</textarea></pre>
<input type="Submit" value="Test">
</form>
</td>
</tr>
</table>
</center>





<form action="processform.php" method="POST">
<input type="text" name"process" value="Dont Work">
<input type="submit" value="Send">
</form>
</body>
<?php


?>
</html>

а вот код страниси обработки
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
$htmll= $_REQUEST['html'] ;
if (empty($_POST['html']))  
{
echo "Вы не ввели нечего в поля формы хтмл" ;
}
else 
{
echo "All is OK" ;
echo $htmll ;
}
foreach ($_REQUEST as $htmll=>$value )
{
echo $value   ;
} 

?>

</body>
</html>

Помогите, зарание спасибо! smile 
PM WWW Skype   Вверх
mr.Anderson
Дата 2.9.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Строчка 44 в первом фрагменте кода - исправь на такую:
Код

<table border="1" cellspacing="0" cellpadding="10">

Далее. Конструкция $_REQUEST['html'] мне не знакома, будем считать, что она существует.
Тогда что за смысл в строке 19:
Код

foreach( $_REQUEST as $htmll=>$value )

??? Что-то я не пойму. Плюс если ты не используешь $htmll в этом цикле, то его можно вообще убрать:
Код

foreach( $_REQUEST as $value )
 echo $value;

Но, повторюсь, конструкции $_REQUEST я не знаю, поэтому могут быть еще ошибки в ее использовании.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
griker
Дата 2.9.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MDMA
**


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

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



sim7, Здравствуй! smile 
Глобальный массив $_REQUEST содержит все переменные  массивом $_GET, $_POST, $_SESSION


--------------------
I don't respect police
PM MAIL   Вверх
Alone
Дата 2.9.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

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



Во первых:
$htmll= $_REQUEST['html']  поместит в $htmll содержимое запроса. В данном случае POST (так как в форме именно он и указан)

Далее, if (empty($_POST['html'])) не совсем корректно, так как ты уже имеешь для этих целей $htmll. Поэтому лучше написать  if (empty($htmll)) ...

Далее, 
Код

foreach ($_REQUEST as $htmll=>$value )
{
echo $value   ;
} 

ты пытаешься перебирать фигзна-шо smile Правильнее написать вот так:
Код

foreach ($htmll as $value ){
    echo $value;
} 


И будет тебе счастье smile


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
ElGuapo
Дата 2.9.2006, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый
*


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

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



Alone, ты кругом неправ!

Цитата(Alone @  2.9.2006,  16:26 Найти цитируемый пост)
$htmll= $_REQUEST['html']  поместит в $htmll содержимое запроса


Да нет, конечно, он поместит в $htmll только значение передаваемой переменной "html". И код твой потому ерунда:

Код

foreach ($htmll as $value ){
    echo $value;
} 


Так как $htmll - не массив, а одна переменная.

Добавлено @ 17:46 
sim7, Alone. Ребята, а вы вообще-то понимаете, о чем говорите? У XSonicX СОВЕРШЕННО НОРМАЛЬНЫЙ и рабочий PHP! Все он делает, что хотел автор. Вот только данные POST в него отчего-то не передаются. Проблема в ПЕРВОМ файле - я заменил его на примитивную форму и все заработало!
PM MAIL   Вверх
ElGuapo
Дата 2.9.2006, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый
*


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

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



Ну, в общем, я посмотрел: все прекрасно передается. 

XSonicX, при нажатии кнопки Test отправляются данные из текстового окна. Прекрасно они постятся, только у тебя это текстовое окно содержит html-теги  smile , и потому они командой echo встраиваются в тело принимающей страницы и из нее получается ерунда. Например, в отражаемой странице оказывается ТРИ тега <html> - один у тебя в коде записан, а ты еще один передаешь по POST и он дважды встраивается в структуру в результате команд: 
Код

echo $htmll ;
}
foreach ($_REQUEST as $htmll=>$value )
{
echo $value   ;
} 

То же самое с <body> и т.п. 

То есть в результате у тебя получается совершенно невалидная страница.  И, естественно, какая-то часть ее браузером просто отбрасывается. Вот и вся хитрость.




PM MAIL   Вверх
XSonicX
Дата 2.9.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 14.7.2006
Где: Таллинн, Edinburg h

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



спасибо большое) это я решил, теперь  меня другая проблемма и её я выложу в дургой теме)
PM WWW Skype   Вверх
Alone
Дата 2.9.2006, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

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



Цитата

Да нет, конечно, он поместит в $htmll только значение передаваемой переменной "html"

Ошибся. Не дописал "из" запроса (типа _POST or _GET)

Цитата

Alone, ты кругом неправ!

Разве? Поправив человека на некорректном обращении к переменным, я что то сказал не то?
Или нижеописываемая конструкция АБСОЛЮТНО КОРРЕКТНАЯ с точки зрения логики?
Цитата

$htmll= $_REQUEST['html'] ;
if (empty($_POST['html']))

Да. это работоспособно, но несколько некорректно. Только и всего.

Цитата

Ребята, а вы вообще-то понимаете, о чем говорите?

Абсолютно. (Уважение к оппонентам плиз соблюдай)
 Единственное на чем меня переклинило, так это что в $htmll должен быть массив. От того я и перебирал не весь реквест а только содержимое мнимого массива.



--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
XSonicX
Дата 2.9.2006, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 14.7.2006
Где: Таллинн, Edinburg h

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



а честно говоря в этом коде я переписал всё, что думал, лижбы получить ответ от оператора echo  smile  но теперь я использую только method="GET" and $_GET  smile 
PM WWW Skype   Вверх
ElGuapo
Дата 3.9.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый
*


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

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



Alone, ты, знаешь, не сердись, а подумай над ошибками. Если тебе не по душе мой тон, то прими извинения. Но проблема остается, и я готов пояснить, почему назвал тебя абсолютно неправым.

Цитата(Alone @  2.9.2006,  16:26 Найти цитируемый пост)
Во первых:
$htmll= $_REQUEST['html']  поместит в $htmll содержимое запроса. В данном случае POST (так как в форме именно он и указан)

Неправильно, не всего запроса, а только одной переменной из запроса. 

Цитата(Alone @  2.9.2006,  16:26 Найти цитируемый пост)
Далее, if (empty($_POST['html'])) не совсем корректно, так как ты уже имеешь для этих целей $htmll. Поэтому лучше написать  if (empty($htmll)) ...

Неправильно, у автора $htmll - это массив, а $_POST['html'] - это одна переменная из этого массива. Если форма передаст по POST хотя бы одну переменную (не с именем html), то empty($_POST['html']) будет false, хотя (empty($htmll)) - true. Так что это вовсе не то же самое

Цитата(Alone @  2.9.2006,  16:26 Найти цитируемый пост)

foreach ($_REQUEST as $htmll=>$value )
{
echo $value   ;
} 

ты пытаешься перебирать фигзна-шо  Правильнее написать вот так:

foreach ($htmll as $value ){
    echo $value;
} 

Неправильно, код автора, хотя и не совсем корректный, действительно выводит на экран все переменные, переданные по POST или GET, а твой код - только значение одной переменной.

Цитата(Alone @  2.9.2006,  16:26 Найти цитируемый пост)

И будет тебе счастье  

Это вопрос философский  smile . Но думаю, не будет, так как указанную проблему ты не решил, а только несколько запутал.

Это весь твой пост. Разве не было у меня причины сказать "кругом неправ"?

И это со всем уважением!

---
Не сочтите за флуд, мне кажется это важным для порядка ведения дискуссии.
PM MAIL   Вверх
XSonicX
Дата 3.9.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 14.7.2006
Где: Таллинн, Edinburg h

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



ну вы народ даёте... smile 
я же давным давно переписал этот код кому интересно каким он стал, выкладываю сюда smile 
Код

<?php
if(!file_exists($_GET['filename']. $_GET['fileformat']) )
{
   if (isset($_GET['Save'])) 
   {
    $fhen = fopen($_GET['filename'].$_GET['fileformat'],"w") or die ("Не удалось сохранить") ; 
    fwrite($fhen, $_GET['text']) or die ("Не удалось сохранить"); 
    fclose($fhen);
    echo "<script language=\"JavaScript\"><!--
    alert('Фаил успешно сохранён!');
    // --></script>" ;
   }
}
else
{
echo "<script language=\"JavaScript\"><!--
alert('Такой фаил уже существует!') ;
// --></script>" ;
header("Location: http://localhost/form.php") ;
}
?>

только вот лажа он не хочет меня перекидивать на саму форму если фаил уже создан smile 
и пишет ошибку после того как выскакивает алерт
вот какую ошибку
 Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\processform.php:18) in C:\AppServ\www\processform.php on line 19
  

кто знает как решить её напишите плзз
PM WWW Skype   Вверх
Vaulter
Дата 3.9.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 6
Всего: 22



XSonicX, заголовки на то и заголовки, что выводить их надо ДО любого вывода.
а у тебя после


--------------------
PM MAIL WWW ICQ   Вверх
Shark
Дата 3.9.2006, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



сделай так:
Код

<?php
header("Location: http://localhost/form.php") ;

//Дальше твой код

?>


Добавлено @ 15:51 
ой....не увидел поста Vaulter..сорри


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
XSonicX
Дата 3.9.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 14.7.2006
Где: Таллинн, Edinburg h

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



да я понимаю но у меня там оператор иф... если я поставлю заголовок в начало то толку не будет... ай лана, напишу перессылку на JavaScript
но всё равно кто знает как сделать заголовок и чтобы у меня сам процесс сохранился пишите сюда
а если кто знает другую функцию автоперессылки на другую страницу пишите тоже сюда)


 smile а народ знаете что я придумал, а если я в начале скрипта создам функцию с заголовком, а потом в конце просто выведу название функции, будет работать? Как думаете? smile  smile 

Это сообщение отредактировал(а) XSonicX - 3.9.2006, 15:58
PM WWW Skype   Вверх
Shark
Дата 3.9.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

<?php
header("Location: http://localhost/form.php") ;

if(!file_exists($_GET['filename']. $_GET['fileformat']) )
{
   if (isset($_GET['Save'])) 
   {
    $fhen = fopen($_GET['filename'].$_GET['fileformat'],"w") or die ("Не удалось сохранить") ; 
    fwrite($fhen, $_GET['text']) or die ("Не удалось сохранить"); 
    fclose($fhen);
    echo "<script language=\"JavaScript\"><!--
    alert('Фаил успешно сохранён!');
    // --></script>" ;
   }
}
else
{
echo "<script language=\"JavaScript\"><!--
alert('Такой фаил уже существует!') ;
// --></script>" ;
}
?>


Вот так сделай!!!! если быдет выдавать ошибку тогда пиши!!!

Добавлено @ 16:09 
если ты его поставишь в начало... толк будет.... ОШИБКИ у тя не будет!


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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