Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Каков формат POST запроса? [D6, XP]


vegarulez ©   (2007-11-01 18:00:00) 

доброго времени суток мастерам!

У меня вопрос такого характера, есть демка (c:\Program Files\Borland\Delphi6\Demos\Indy\HTTPClient\)
так вот там есть поле для ввода POST аргументов.

Вопрос как правильно вбить туда переменные?

[У меня допустим используются несколько переменных: choose,Naz, Cena, kol и т.п. (внизу приведу пример пхп скрипта там можно увидеть остальные)]

чтобы при обращении этой демки к файлу find.php - файл find.php выводил в демку html код таблички с найдёнными элементами, т.е. уже с теми данными которые, выбрались из БД, как будто бы переменные [choose,Naz, Cena, kol и т.п. ] были получены из браузера с помощью POST`а.

Ещё раз повторю вопрос:
Вопрос как правильно в поле POST`a, в демке вбить переменные, и их значения?

пример php скрипта :

<html>
<head>
<title>Поиск дисков</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
</head>
<body background=" http://localhost/1/skin.jpg" BGCOLOR=white>

<?php   include "head.html" ?>
<?php
   error_reporting(0);
    $Naz=$_POST['Naz'];
    $Cena=$_POST['Cena'];
    $Kol=$_POST['Kol'];
    $styl=$_POST['styl'];
    $format=$_POST['format'];
    @ $db=mysql_pconnect('localhost','paywell','paywell');
    mysql_select_db('user120');    
   If ($choose!=0)
   {
    if ($choose==1)
     $query = "SELECT * FROM diski WHERE diski.name LIKE '%".$Naz."%';";
    if ($choose==2)            
     $query = "SELECT * FROM `diski` WHERE diski.format='".$format."';";
    if ($choose==3)
     $query = "SELECT diski.id,diski.name,diski.presence,diski.price,diski.style,diski.format FROM diski where diski.style like '".$styl."';";
    if ($choose==4)
     $query = "SELECT diski.id,diski.name,diski.presence,diski.price,diski.style,diski.format FROM diski where diski.id=".$Cena.";";
    if ($choose==5)
     $query = "SELECT diski.id,diski.name,diski.presence,diski.price,diski.style,diski.format FROM diski where diski.presence>'".$Kol."';";
    $result = mysql_query($query);
    $num_results = mysql_num_rows($result);    ?>
<br>
<table align=center width=100% border=1>
<tr>
 <td align=center bgcolor= #C0C0C0>ID</td>
 <td align=center bgcolor= #C0C0C0>Название</td>
 <td align=center bgcolor= #C0C0C0>Наличие</td>
 <td align=center bgcolor= #C0C0C0>Цена</td>
 <td align=center bgcolor= #C0C0C0>Стиль</td>
 <td align=center bgcolor= #C0C0C0>Формат</td>
  </tr>
<?php    for($i=0;$i<$num_results;$i++)            
    {
         $row=mysql_fetch_array($result);      ?>

<tr>
 <td align=center>
<?php    echo $row[0];              ?>
 </td>
 <td align=center>
<?php    echo $row[1];              ?>
 </td>
 <td align=center>
<?php    echo $row[2];              ?>
 </td>
 <td align=center>
<?php    echo $row[3];              ?>
 </td>
 <td align=center>
<?php    echo $row[4];              ?>
 </td>
 <td align=center>
<?php    echo $row[5];              ?>
 </td>
 </tr>
<?php    }
   }              
   else
   {           ?>
<FORM NAME="Добавление" METHOD="POST" ACTION="find.php">
<br> <font size=4>
Найти данные о дисках по:
<table border=2>
   <tr>
  <td align=left><input checked type=radio name=choose value=1> <font size="4">  Названию</td>
  <td> <INPUT TYPE=TEXT SIZE=20 NAME=Naz value=''></td></tr>
 
   <tr>
  <td align=left><input type=radio name=choose value=2> <font size="4"> Формату</td>
<td>
<?php   echo '<select name=format>';
  $form_cd=array("cd","dvd","cd+dvd");
 $j=-1;
 while (++$j<count($form_cd)){
  echo'<option value="'.$form_cd[$j].'">'.$form_cd[$j];
 }                          
   echo '</select>'                ?>

  </td>
 </tr>
     
 <tr>
 <td align=left><input type=radio name=choose value=3> <font size="4">Стилю</td>
<td>
<?php   echo '<select name=styl>';
$style_cd=array("Disco","Rap","House","Jaz","Techno","Rock","Classic","Pop","Blu es","Rock-n-Roll");
   $n=count($style_cd);
   $i=0;
   for ($i=0;$i<$n;$i++){
  echo '<option value="'.$style_cd[$i].'">'.$style_cd[$i];
  }
    echo '</select>'                  ?>
     
  </td>
 </tr>
 
 <tr>
<td align=left><input type=radio name=choose value=4> <font size="4">Цене</td>
  <td>
   <select name=Cena>
<?php
     $query = "SELECT id,price FROM diski Order by `price`";
     $result = mysql_query($query);            
     $num_results = mysql_num_rows($result);
     for($i=0;$i<$num_results;$i++)
     {
      $row=mysql_fetch_array($result);        
      echo '<option value="'.$row[0].'"> '.$row[1];
     }                         ?>
   </select>
  </td>
 </tr>
 <tr>
  <td align=left><input type=radio name=choose value=5> <font size="4">Наличию на складе ></td>
  <td><INPUT TYPE=TEXT SIZE=5 NAME=Kol value="0"></td>
 </tr>
</table>
<p>
 <INPUT TYPE="SUBMIT" VALUE="Найти">
 <INPUT TYPE="RESET" VALUE="Очистить">
</p>
</form>
<?php   }           ?>


vegarulez   (2007-11-01 21:19:00) [1]

Всё. Всем спасибо. Разобрался. (передаю строку в формате GET а пытаюсь разобрать POST`ом).
Тока странно почему всё же делфя тогда передаёт в формате GET`a данные для POST`а   и они успешно разбираются скриптом...
Кто нить может на этот вопрос ответить?
(З.ы. Браузер, как мы видим выше не смог :)) )


vegarulez   (2007-11-01 20:23:00) [2]

Подскажите где тут собака порылась???...


vegarulez   (2007-11-01 20:22:00) [3]

в браузере строка http://localhost/lab4/find.php?choose=4&Cena=100
не хотит выводить то что надо ... ничего не понимаю...
уже переделал скрипт поправил косяки и прога номано заработала, а вот браузер тупит... [или я туплю (нужное подчеркнуть) ]


vegarulez   (2007-11-01 20:16:00) [4]

Млин ерунда какая-то... в проге всё номано работает тепрь, а в браузере не хотит номано пахать... ничего не понимаю...


vegarulez   (2007-11-01 19:33:00) [5]

Спасибо большое!


vegarulez   (2007-11-01 19:27:00) [6]

а... всё понял свою ошибку кажись...
дело в скрипте find.php


Palladin   (2007-11-01 19:09:00) [7]

ну например

Var
l:TStringList;
r:String;
Begin
l:=TStringList.Create;
Try
 l.Text:='a=b&c=d';
 .ContentType:='application/x-www-form-urlencoded';
 r:=.Post(,l);
Finally
 l.Free;
End;
End


vegarulez   (2007-11-01 19:06:00) [8]

чот поробовал не получается :(
Сможешь в аську стукнуть?
250921382


Palladin   (2007-11-01 18:59:00) [9]

да самым обычным

a=b&c=d
и тд и тп


vegarulez   (2007-11-01 18:49:00) [10]

неа не сделал ещё...
так я же не про контент тайп спрашиваю...
Там в демке есть поле: Post information, я так понимаю туда нужно пост параметры помещать... Но в каком формате я не знаю :(


Palladin   (2007-11-01 18:46:00) [11]

<TIdHTTP>.ContentType:='application/x-www-form-urlencoded';

сделал?


Наверх

Титульная страница Поиск, карта сайта Написать письмо