Автор Тема: Method POST  (Прочитано 6007 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yura_A

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Method POST
« : 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") ?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Method POST
« Ответ #1 : 21 Ноября 2003, 13:27:00 »
так никто ничего не проверяет.
"если я нажал там-то, то переменная не передалась, потому, что страница показалась"

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

А вообще, пора бы уже переходить от register_globals=on к нормальной работе.
тогда и путаницы меньше будет

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Method POST
« Ответ #2 : 21 Ноября 2003, 13:40:14 »


это никакой не POST. это самый натуральный GET
ну, будем исповедоваться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Method POST
« Ответ #3 : 21 Ноября 2003, 13:53:03 »
AliMamed, читай целиком

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Method POST
« Ответ #4 : 21 Ноября 2003, 14:43:35 »
а зачем этот изврат с яваскриптом?
так не проще?
ну, будем исповедоваться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Method POST
« Ответ #5 : 21 Ноября 2003, 15:14:53 »
А вот это, кстати, правильное замечание

Оффлайн Yura_A

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Method POST
« Ответ #6 : 22 Ноября 2003, 10:09:44 »
Цитировать
А вообще, пора бы уже переходить от register_globals=on к нормальной работе.
тогда и путаницы меньше будет

Может это бред, но получается что писать надо так:
if ($HTTP_POST_VARS["do_this"]==\'SEND\')
???????????????
А вообще у меня при нажатии кнопки SEND остаются теже значения что и при нажатии ADD

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Method POST
« Ответ #7 : 22 Ноября 2003, 10:12:19 »
извини, но я не понимаю, что означает заклинание " нажатии кнопки SEND остаются теже значения что и при нажатии ADD"

Оффлайн Yura_A

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Method POST
« Ответ #8 : 22 Ноября 2003, 10:17:37 »
Нажал я кнопку SEND - в строке браузера пишет:
index.php?do_this=add&i=1...еще пару переменных

Нажал ADD та же строка. Если пробовать методомGET тогда все нормально - index.php?do_this=send...еще пару переменных

Оффлайн Yura_A

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Method POST
« Ответ #9 : 22 Ноября 2003, 10:18:17 »
Нажал я кнопку ADD- в строке браузера пишет:
index.php?do_this=add&i=1...еще пару переменных

Нажал SEND та же строка. Если пробовать методомGET тогда все нормально - index.php?do_this=send...еще пару переменных

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Method POST
« Ответ #10 : 22 Ноября 2003, 11:06:23 »
охохох...
короче.
выкини на помойку весь яваскрипт.
вместо бредового onclick="this.form
пишешь СРАЗУ в хиддене


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

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Method POST
« Ответ #11 : 22 Ноября 2003, 11:14:52 »
ладно, разобрался я уже сам.
ты уверен, что для того, чтобы вывести одну кнопку, форму надо растягивать на всю страницу?

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

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

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

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




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

НИ яваскрипта, НИ хидденов

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Method POST
« Ответ #12 : 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\'])) {
?>
<a href="<? echo $_SERVER[\'PHP_SELF\']; ?>?id=0">Добавить новость</a>
<table>
  <tr> 
    <td align="center"><b>Заголовок</b></td>
    <td align="center" colspan="2"><b>Действие</b></td>
  </tr>
<?
  $query="SELECT * FROM $table" ;
  $res=mysql_query($query) or die(mysql_error());
  while($row = mysql_fetch_array($res)) {
?> 
  <tr> 
    <td><? echo $row[\'title\'] ?></td>
    <td><a href="<? echo $_SERVER[\'PHP_SELF\'].\'?id=\'.$row[\'id\']; ?>">Править</a></td>
    <td><a href="<? echo $_SERVER[\'PHP_SELF\'].\'?id=\'.$row[\'id\']; ?>&action=delete">Удалить</a>
    </td>
  </tr>
<? 
  } 
?>
</table>
<?
} 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();
}
?>

Оффлайн Yura_A

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Method POST
« Ответ #13 : 22 Ноября 2003, 11:41:17 »
RomikChef огромное тебе спасибо. И что бы я без тебя делал.

Оффлайн Художник

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 76
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mkf.tj
Method POST
« Ответ #14 : 26 Ноября 2003, 08:53:16 »
Yura_A
И не только ты один... :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28