Forum Webscript.Ru

Программирование => PHP => Тема начата: Yura_A от 21 Ноября 2003, 10:12:07

Название: Method POST
Отправлено: Yura_A от 21 Ноября 2003, 10:12:07
Народ помогите, а то я чуть веру в жизнь не потерял!
Есть примерно такой код:
if ($do_this==\'SEND\')
{ Вставка в базу }
?>


.........
if ($do this=\'add\')
  {
?>


............



else
{


Выводим все записи из базы +


.......

ВОПРОС:
Когда использовать именно такой код, вставка в базу проходит нормально и после нажатия кнопки "Send"
я перехожу на страницу с записями из базы("select"), но если вставлять очень большие текста, то в базу вставляется не весь текст, его обрезает.
Если писать

то вставляет нормально (весь текст до единого символа, но после нажатия кнопки "Send" я остаюсь в форме вставки причем с тем текстом который я ввел.

Получается, что не передается через  "post" переменная(onclick="this.form.do_this.value=\'SEND\'">) ведь должно переходить на  страницу с записями из базы("select") ?
Название: Method POST
Отправлено: Меняздесьдавнонет от 21 Ноября 2003, 13:27:00
так никто ничего не проверяет.
"если я нажал там-то, то переменная не передалась, потому, что страница показалась"

Ели тебе надо проверить - передалась переменная, или нет, то и проверяй именно это - выводи ее на экран.

А вообще, пора бы уже переходить от register_globals=on к нормальной работе.
тогда и путаницы меньше будет
Название: Method POST
Отправлено: AliMamed от 21 Ноября 2003, 13:40:14


это никакой не POST. это самый натуральный GET
Название: Method POST
Отправлено: Меняздесьдавнонет от 21 Ноября 2003, 13:53:03
AliMamed, читай целиком
Название: Method POST
Отправлено: AliMamed от 21 Ноября 2003, 14:43:35
а зачем этот изврат с яваскриптом?
так не проще?
Название: Method POST
Отправлено: Меняздесьдавнонет от 21 Ноября 2003, 15:14:53
А вот это, кстати, правильное замечание
Название: Method POST
Отправлено: Yura_A от 22 Ноября 2003, 10:09:44
Цитировать
А вообще, пора бы уже переходить от register_globals=on к нормальной работе.
тогда и путаницы меньше будет

Может это бред, но получается что писать надо так:
if ($HTTP_POST_VARS["do_this"]==\'SEND\')
???????????????
А вообще у меня при нажатии кнопки SEND остаются теже значения что и при нажатии ADD
Название: Method POST
Отправлено: Меняздесьдавнонет от 22 Ноября 2003, 10:12:19
извини, но я не понимаю, что означает заклинание " нажатии кнопки SEND остаются теже значения что и при нажатии ADD"
Название: Method POST
Отправлено: Yura_A от 22 Ноября 2003, 10:17:37
Нажал я кнопку SEND - в строке браузера пишет:
index.php?do_this=add&i=1...еще пару переменных

Нажал ADD та же строка. Если пробовать методомGET тогда все нормально - index.php?do_this=send...еще пару переменных
Название: Method POST
Отправлено: Yura_A от 22 Ноября 2003, 10:18:17
Нажал я кнопку ADD- в строке браузера пишет:
index.php?do_this=add&i=1...еще пару переменных

Нажал SEND та же строка. Если пробовать методомGET тогда все нормально - index.php?do_this=send...еще пару переменных
Название: Method POST
Отправлено: Меняздесьдавнонет от 22 Ноября 2003, 11:06:23
охохох...
короче.
выкини на помойку весь яваскрипт.
вместо бредового onclick="this.form
пишешь СРАЗУ в хиддене


И, самое главное, НЕ ПУТАЕШЬСЯ с логикой работы СВОЕЙ программы.
Как написал - то и выводит.
Для начала опиши эту логику словами здесь. Я уверен что не получится. потому, что ты ее даже сам для себя четко не сформулировал, а "на ощущениях"
Название: Method POST
Отправлено: Меняздесьдавнонет от 22 Ноября 2003, 11:14:52
ладно, разобрался я уже сам.
ты уверен, что для того, чтобы вывести одну кнопку, форму надо растягивать на всю страницу?

Выводим все записи из базы
а потом

ВСЕ! никаких извращений!

в скрипте потом (точнее - над)
if ($_GET[\'submit\']==\'add\') {
?>

............




и в самом верху скрипта
if($_SERVER[\'REQUEST_MEHTOD\']==\'POST\') {
записываешь в базу.
}

НИ яваскрипта, НИ хидденов
Название: Method POST
Отправлено: Меняздесьдавнонет от 22 Ноября 2003, 11:29:15
Вот, как это делаю я.

if ($action=$_REQUEST[\'action\']) {
  if ($action==\'add\') queryInsert($table,$fields);
  if ($action==\'edit\') queryUpdate($table,$fields);
  if ($action==\'delete\') queryDelete();
  Header("Location: ".$_SERVER[\'PHP_SELF\']);
  exit;  
}
if (!isset($_GET[\'id\'])) {
?>
?id=0">Добавить новость

 
   
   
 
  $query="SELECT * FROM $table" ;
  $res=mysql_query($query) or die(mysql_error());
  while($row = mysql_fetch_array($res)) {
?>
 
   
   
   
 
  }
?>
ЗаголовокДействие
">Править&action=delete">Удалить
   

} else {
  formStart();
  if ($id=$_GET[\'id\']) {
    $query="SELECT * FROM $table WHERE id=\'$id\'" ;
    $res=mysql_query($query) or die(mysql_error());
    $row = mysql_fetch_array($res);
    formHidden("action","edit");
    formHidden("id",$id);
  } else {                  
    formHidden("action","add");
  }
  formText("title","Заголовок",$row,50);
  formSubmit("Сохранить");
  formEnd();
}
?>
Название: Method POST
Отправлено: Yura_A от 22 Ноября 2003, 11:41:17
RomikChef огромное тебе спасибо. И что бы я без тебя делал.
Название: Method POST
Отправлено: Художник от 26 Ноября 2003, 08:53:16
Yura_A
И не только ты один... :)