Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: API - метод "POST"

Платежная система.
Нужно отправить на сервер параметры банковской карты.
Сделать это нужно методом POST, а не GET.
Этот код выдает ошибку (причем запрос не доходит до сервера).
Если поменять "POST" на "GET" (или просто запустить линк в браузере), то все работает хорошо, но метод "GET" не годится.
Где грабли?

OleObject loo_xmlhttp
string ls_post_url, ls_post = '', ls_status_text, ls_response_text
long	ll_status_code

//ls_post_url = sle_1.Text
ls_post_url = 'https://secure5.tranzila.com/cgi-bin/tranzila71u.cgi?supplier=testd621&tranmode=A&ccno=12312312&expdate=0917&sum=3¤cy=1&cred_type=1&myid=123456789&mycvv=123'
loo_xmlhttp = CREATE oleobject
loo_xmlhttp.ConnectToNewObject("Msxml2.XMLHTTP.6.0")

loo_xmlhttp.Open ("POST",ls_post_url, FALSE)
loo_xmlhttp.Send(ls_post)
ls_status_text = loo_xmlhttp.StatusText
ll_status_code =  loo_xmlhttp.Status
ls_response_text = loo_xmlhttp.ResponseText
//loo_xmlhttp.DisconnectObject(loo_xmlhttp)
MessageBox(ls_status_text, ls_response_text)
Ответ:
spas2001
Нет, тут явно ошибка в формате параметров
Вы их как для GET-строки передаете только через POST.
У них другой формат.

Их два формата - один из них (application/x-www-form-urlencoded) такой же как в GET
Вопрос: Не работает метод "POST"

В письме не отображаются отправленные методом "POST" данные с заполненной анкеты, с "GET" всё нормально.

1.
HTML5
1
<form action="PHP\formdata.php" method="POST" name="form1">
2.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$result = mail("test@test.ru", "Анкета сайта", "С сайта была получена анкета с такими данными: \nИмя: $_POST[name] \nПароль: $_POST[password] \nСколько часов спит: $_POST[sleep] \nСвои наработки в экономии времени: $_POST[text]");
 
if ($result) {
echo "<p>Сообщение отправлено успешно!</p>";
}
else {
echo "<p>Сообщение не отправлено!</p>";
}
 
 
?>
3.
В итоге приходит письмо без данных:

X-Sendmail-Cmdline: sendmail.pl -t -i
To:
Subject: Анкета сайта
X-PHP-Originating-Script: 0:formdata.php


С сайта была получена анкета с такими данными:
Имя:
Пароль:
Сколько часов спит:
Свои наработки в экономии времени:


Имена перепроверял несколько раз, - всё верно.
Ответ: Отлично, большое спасибо.
Вопрос: Не работает "POST"

Беру первый попавшийся пример из поисковика:
HTML5
1
2
3
4
5
6
7
8
9
<form name="form1" method="post" action="post.php">
  Введите текст:<br />
<textarea name="text" cols="80" rows="10"></textarea>
 
<br />
<br />
<input name="" type="submit" value="Отправить"/>
 
</form>
Итог: 404 Not Found
Но стоит "POST" заменить на "GET" и всё норм, всё работает, страницу находит.
Ответ: содержимое из первого сообщения в файле post.php ?
Вопрос: submit method="post" без перезагрузки страницы без использования PHP

HTML-->

<form method="post" id="deletclic">
<input type="hidden" name="idsr" value="@row["Id"]">
<a onclick="document.getElementById('deletclic').submit(); return false;" name="deleccloa">X</a>
</form>

<--HTML

С#--->

if (IsPost)
{
var dbzx = Database.Open("StarterSite");
var sda =dbzx.Execute("DELETE FROM Comment WHERE Id=@0 and who=@1;", Request.Form["idsr"], WebSecurity.CurrentUserId);
_db3 = db.Query("SELECT * FROM Comment WHERE kuda=@0 ORDER BY Id DESC;", _db["KeyBlog"]);
}

<----C#

подскажите как сделать return false но при этом что бы выполнялся method="post"
без использования PHP
Ответ:
skyANA
ASP.NET AJAX избавят его от этого :) Плюс в книжке написано, как это работает.

Жестокий ты!
Вопрос: Method = "post" на ссылке <a href>

Всем доброго!
как мне известно method = "post" используется в форме и отправляется через кнопку submit.
мне надо сделать так что-бы, переход осуществился не с нажатием в submit. а с нажатием на изображение при этом передавая на $_POST[url] = ссылку на фото.
это возможно?
Ответ: Илхом,
Код HTML5
1
2
3
4
<form id="form1" action="newpage.php" method="post">
    <img src="image.jpg" alt="Photo 1" onclick="parentNode.submit();">
    <input type="hidden" name="img" value="адрес фото"/>
</form>
В value прописать адрес фото этого.
По сути - можно отправлять форму из любого тега, где onclick поддерживается:
Кликните здесь для просмотра всего текста

<a>, <abbr>, <acronym>, <address>, <applet>, <area>, <b>, <basefont>, <bdo> <bgsound>, <big>, <blockquote>, <body>, <br>, <button>, <caption>, <center>, <cite>, <code>, <col>, <colgroup>, <dd>, <del>, <dfn>, <dir>, <div>, <dl>, <dt>, <em>, <embed>, <fieldset>, <font>, <form>, <frame>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <hr>, <i>, <iframe>, <img>, <input>, <ins>, <isindex>, <kbd>, <label>, <legend>, <li>, <link>, <map>, <marquee>, <menu>, <nobr>, <object>, <ol>, <option>, <p>, <plaintext>, <pre>, <q>, <s>, <samp>, <select>, <small>, <span>, <strike>, <strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>, <th>, <thead>, <tr>, <tt>, <u>, <ul>, <var>, <wbr>, <xmp>
Вопрос: HttpListener - Request "Post" and "Get"

Нужны примеры обработки запроса с извлечением переданных данных , для POST-отправки и GET-отправки , тобишь 2 примера.(Сразу с момента получения контекста [GetContext] , инициализация листенера и др. не нужно)Под извлечением понимаю - представление в любом стандартном типе , строкой , массивом строк или чем-то другим.

Добавлено через 17 часов 55 минут
Я решил , кому нужно пишите в лс.
Ответ: Конечно.
C#
1
2
3
4
5
6
7
8
9
10
11
var request = contextRequest.Request;//HttpListenerRequest
 if (request.HttpMethod == "GET")
                date = new RequestDate(request.QueryString, contextRequest);
            else
            {
                var stream = request.InputStream;
                string[] pairs;
                using (var reader = new StreamReader(stream))
                    pairs = reader.ReadToEnd().Split('&');
                //Теперь pairs содержит строки типа "Name=Ilya" "Password=petux"
            }
Добавлено через 6 минут
Сообщение от RaevskiAnatoly
date = new RequestDate(request.QueryString, contextRequest);
request.QueryString - NameValueCollection , с данными запроса
Вопрос: Получить только месяц из POST-а

Здравствуйте!
Очередной вопрос?
Не могу получить из POST а только месяц.(
Вот код:
<?php
if(isset( $_POST['submit1'] ) ){
$month = $_POST['date'];
echo date_format($month, 'm');
}
?>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form  method="POST">
<input type="date" name="date"/>
<input type="submit" name="submit1"/>
</form>
</body>
</html>

Всю голову сломал. Помогите пожалуйста!
За ранее спасибо!
Ответ: Ну если более универсально, то можно так:

var_dump(date("m", strtotime("2017-12-01")));
string(2) "12"


или
Вопрос: POST запросы

Помогите пожалуйста! Подключаю к своему сайту Merchant Webmoney, сделал форму отправки данных методом POST на сайт Webmoney:

PHPHTML
1
2
3
4
5
6
7
8
<form action="https://merchant.webmoney.ru/lmi/payment.asp" method="POST">
<input type="text" name="LMI_PAYMENT_AMOUNT" value="10">
<input type="hidden" name="id_player" value="<?php echo $_SESSION['player_id']; ?>">
<input type="hidden" name="LMI_PAYMENT_DESC_BASE64" value="0J/QvtC/0L7Qu9C90LXQvdC40LUg0LHQsNC70LDQvdGB0LA=">
<input type="hidden" name="LMI_PAYEE_PURSE" value="Rкошелек">
<input type="hidden" name="LMI_PAYMENT_NO" value="1">
<input type="submit" value="Пополнить баланс">
</form>
Потом получаю данные с сайта Webmoney методом POST:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$connect = mysqli_connect('localhost','root','password', 'db');
if ($_POST['LMI_PREREQUEST'] == 1) {
  if(trim($_POST['LMI_PAYEE_PURSE']) != "Rкошелек") {
    exit;
  }
  echo "YES";
}
else {
  $secret_key="KakaShka123";
  $common_string = $_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO'].
     $_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].
     $_POST['LMI_SYS_TRANS_DATE'].$secret_key.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];
  $hash = strtoupper(hash("sha256",$common_string));
  if($hash!=$_POST['LMI_HASH']) { exit; }
  else {
  $id_player = htmlspecialchars(trim($_POST['id_player']));
  mysqli_query($connect, "UPDATE `users` SET `money` = `money` + $_POST[LMI_PAYMENT_AMOUNT] WHERE `id` = $id_player");
}
}
?>
Пишет: операция успешно завершена! Но! переменная $hash не совпадает с POST['LMI_HASH']. После чего я хотел посмотреть на данные POST'ов, попытался занести их в куки, но они пустые. ПРОШУ ПОМОЩИ ТОВАРИЩИ! Я УЖЕ ЗАБОДАЛСЯ ДЕЛАТЬ!
Ответ: xpoince, расшифровка не нужна. А в настройках Вебмани я поставил шифровку SHA256 и "Передавать параметры в предварительном запросе".
Вопрос: Пустой POST

PHPHTML
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<html>
<head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       <script type="text/javascript" src="js/market.js"></script>
</head>
<body>
<?php 
print_r($_POST);
?>
       <form action="" method="post">
       
<div id="kvar">
    <div id="10">
    <select name="type_kvar" id="view_type">
            <option value="">Тип объявления</option>
            <option value="1">Продам</option>
            <option value="2">Сдам</option>
            <option value="3">Куплю</option>
            <option value="4">Сниму</option>
    </select>
    
    </div>
</div>
<div id="kvar">
    <div id="11">
    <select name="type_kvar" id="view_type">
            <option value="">Тип объявления</option>
            <option value="1">Продам</option>
            <option value="2">Сдам</option>
            <option value="3">Куплю</option>
            <option value="4">Сниму</option>
    </select>
    
    </div>
</div>
<div id="kvar">
    <div id="12">
    <select name="type_kvar" id="view_type">
            <option value="">Тип объявления</option>
            <option value="1">Продам</option>
            <option value="2">Сдам</option>
            <option value="3">Куплю</option>
            <option value="4">Сниму</option>
    </select>
    
    </div>
</div>
 
<input type="submit" value="Go">
</form>
</body>
</html>
Имеется такой код, если я выбераю ид 10 или 11, тогда отправляется пустой POST, если же 12, тогда все нормально. Как исправить? Имя должно быть таким type_kvar, Эти блоки отображаются от выбранного результата в форме.

Добавлено через 22 минуты
В след году решу, или псевдо-формы или скрытое поле запилю, а может тут кто подскажет Всех с Наступающим.
Ответ: Kerry_Jr, Идет блок, который открытый за счет категории 8(допустим) он содержит select's и input's которые отобразились при клике по данному блоку. В обработчике идет так
PHP
1
2
3
4
5
if($category_id === 8){
// тут проверки select'ov и полей.
}elseif($category_id === 9){
// тут проверки select'ov и полей.
}
Что категория 9, что 8 и до 14 - это категории которые относятся для записи в таблицу именно с недвижимостью. В категории 8 select есть сдачи квартиры, а 9 категория - это продажа. И у каждого блока своя выборка.
Если я буду задавать всегда разное имя, тогда у меня получится очень большой POST. Об этом я писал в другой тебе. А именнно вот в этой.

Там часть этой же проблемы, название темы некорректное только. Поиск я реализую, но первоначально необходимо реализовать добавление.

Добавлено через 46 минут
Kerry_Jr, var_dump возвращает NULL, если так



PHP
1
$type_kvar = array_filter($type_old, function($i){ return !empty($i); });
Добавлено через 15 секунд
Kerry_Jr, var_dump возвращает NULL, если так



PHP
1
$type_kvar = array_filter($type_old, function($i){ return !empty($i); });
Добавлено через 48 минут
С массивами разобрался. А пока думаю и пишу дальше. Все равно какой-то метод выбранный мной в данный момент неверный. Костыль.

Добавлено через 15 секунд
С массивами разобрался. А пока думаю и пишу дальше. Все равно какой-то метод выбранный мной в данный момент неверный. Костыль.

Добавлено через 10 минут
Все равно не тот ключ берется если примерно такой результат.
Array ( [0] => [1] => [2] => [3] => [4] => 250 [5] => 249
Как понять какой был, а был 250 - это я знаю. Нужна альтернатива. Чтобы было понятней - это фактически поиск авито. Как он реализован там? Откуда они подгружаются, это отдельные формы или это блоки невидимые, где выбираются параметры.

Добавлено через 25 минут
Сейчас все выглядит у меня вот так
Array ( [country_id] => 6 [region_id] => 255 [city_id] => 79321 [country_name] => Армения [region_name] => Котайкская [city_name] => Аргел [categorys_id] => 14 [automarka] => [typecuzov] => [year] => 2016 [probeg_from] => [probeg_to] => [korob] => [cms] => 1 [objem] => 0.1 [model] => [type] => Array ( [0] => [1] => [2] => [3] => [4] => 250 [5] => 249 ) [room] => Array ( [0] => [1] => [2] => [3] => [4] => [5] => ) [view] => Array ( [0] => [1] => [2] => ) [kvm] => Array ( [0] => 10 [1] => 10 [2] => 10 [3] => 10 ) [flen] => Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 1 ) [type_house] => Array ( [0] => [1] => [2] => [3] => ) [term] => Array ( [0] => [1] => ) [subject] => test [price] => test [description] => test [token] => a4d07eb61438563559b6f7c4b9816247 [add_market] => Okay )
Добавлено через 13 минут
Чуть код поправил, почему-то получается так
Array ( [country_id] => 4 [region_id] => 168 [city_id] => 71909 [country_name] => Казахстан [region_name] => Алма-Атинская область [city_name] => Авангард [categorys_id] => 14 [automarka] => [typecuzov] => [year] => 2016 [probeg_from] => [probeg_to] => [korob] => [cms] => 1 [objem] => 0.1 [model] => [type] => Array ( [0] => 249 [1] => 249 [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => 251 [11] => 249 ) [room] => Array ( [0] => [1] => [2] => [3] => [4] => [5] => ) [view] => Array ( [0] => [1] => [2] => ) [kvm] => Array ( [0] => 10 [1] => 10 [2] => 10 [3] => 10 ) [flen] => Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 1 ) [type_house] => Array ( [0] => [1] => [2] => [3] => ) [term] => Array ( [0] => [1] => ) [subject] => test [price] => test [description] => tests [token] => a4d07eb61438563559b6f7c4b9816247 [add_market] => Okay ) 249
В данный момент меня интересует пока исключительно type
PHP
1
2
                $types = array_filter($_POST['type'], function($i){ return !empty($i); });
                $types = mysql_real_escape_string($types[0]);
Но я получаю 249, а выбор был 251
[type] => Array ( [0] => 249 [1] => 249 [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => 251 [11] => 249
Добавлено через 49 минут
В общем необходимо удалить повторы с оригинала с массивом и получится результат. array_unique оставляет оригинал 249, каким образом можно удалить?

Добавлено через 30 минут
Пока не знаю как быть, в общем, каждому селекту присвоил свое имя и в зависимости от категории выбираю POST и присваиваю значение переменной. Дальше решу как быть.

Добавлено через 16 секунд
Пока не знаю как быть, в общем, каждому селекту присвоил свое имя и в зависимости от категории выбираю POST и присваиваю значение переменной. Дальше решу как быть.
Вопрос: Не отправляется методом POST

Подскажите пожалуйста, в чем может быть дело. Пытаюсь отправить данные из формы методом пост. Но массив print_r($_POST) оказывается пустым.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
 <form action="test.php" method="POST" enctype="text/plain">
              <table width="97%">
                <tr>
                  <td align="left" valign="top" class="body" id="ContactName"><strong>Имя:</strong></td>
                  <td align="left" valign="top"><input name="name" type="text" size="40" /></td>
                </tr>
                 <tr>
                  <td></td>
                  <td><input type="submit" name="submit" class="button" value="Отправить сейчас" /></td>
                </tr>
              </table>
</form>
Может быть дело в использовании таблиц внутри тега form? В чем может быть проблемма?
Ответ: Уберите enctype="text/plain"

Добавлено через 10 минут
enctype="text/plain" используется для отправки методом GET.