Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: GET'ом работает, а POST'ом нет!
 
 автор: InsaneMax   (11.04.2007 в 18:54)   письмо автору
 
 

Суть в том, что надо вывести на страничку строку такого формата:
topic_Id=K;names={Name_1;...;Name_N;};posts={post_1;...;post_N};topic_Length=N;
topic_Id не суть важен - его значение на прямую выводится...
Форма вот:

<form action=handler.php method=POST>
<input type=text name=user_Id>
<input type=text name=topic_Id>
<input type=text name=post>
<input type=submit name=submit value="send">
</form>


Обработчик формы:

<?php
  
require_once ("config.php");

if (!
get_magic_quotes_gpc()) 
  { 
    
$_POST['user_Id'] = mysql_escape_string($_POST['user_Id']); 
    
$_POST['topic_Id'] = mysql_escape_string($_POST['topic_Id']); 
    
$_POST['post'] = mysql_escape_string($_POST['post']); 
  } 

  
$user $_POST['user_Id']; 
  
$topic $_POST['topic_Id'];
  
$msg $_POST['post'];
  echo 
"topic_Id=".$topic.";";
  
  
$query "INSERT INTO posts(id_post,id_user,msg) VALUES (NULL,'$user','$msg')";
  if(!
mysql_query($query)) exit(mysql_error()); 
  
  echo 
"names={";

  
$query1 "SELECT * FROM users" ;
  
$ath mysql_query($query1);  
  if(!
$ath) exit(mysql_error()); 
  if(
mysql_num_rows($ath)) 
  { 
    while(
$usr mysql_fetch_array($ath)) 
    { 
       echo 
$usr['name'].";"
    } 
  }

  echo 
"};posts={"

  
$query2 "SELECT * FROM posts" ;
  
$pst mysql_query($query2); 
  if(!
$pst) exit(mysql_error()); 
  if(
mysql_num_rows($pst)) 
  { 
    while(
$past mysql_fetch_array($pst)) 
    { 
       echo 
$past['msg'].";"
    } 
  } 

  echo 
"};";

  
$query3 "SELECT COUNT(id_post) FROM posts";
  
$topic_Len mysql_query($query3);
  
$count mysql_result ($topic_Len,0);
  if(!
$count) exit(mysql_error());
    echo 
"topic_Length=".$count.";";

?>


Вот так оно ругается: topic_Id=;Out of range value adjusted for column 'id_user' at row 1
Когда делаю тоже самое тока везде вместо POST'a ставлю GET все работает!

Никак до меня не дойдет в чем тут дело...Мож кто поможет???

   
 
 автор: Trianon   (11.04.2007 в 19:19)   письмо автору
 
   для: InsaneMax   (11.04.2007 в 18:54)
 

id_user - всей видимости , число. А Вы его строкой накормить пытаетесь.
От метода передачи здесь не зависит ничего.

   
 
 автор: InsaneMax   (11.04.2007 в 20:57)   письмо автору
 
   для: Trianon   (11.04.2007 в 19:19)
 

заработало...а все лишь комп перезагрузил...
а передовал все таки циферки, а не строку)

   
 
 автор: Trianon   (11.04.2007 в 21:08)   письмо автору
 
   для: InsaneMax   (11.04.2007 в 20:57)
 


'$user' 

вот это - самая что ни на есть строка. Потому что в апострофах.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования