![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Каков формат 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';
сделал?