Отправка даных методом POST » Страница 1

-

Программирование на Python



SmartPaul


репутация: 4
на сайте с 2011 года
сообщений: 5

Nokia 5700

Запорожье, Украина

Возраст - 28

#1

Помогите пожалуйста с кодом до Нового года!!! Нужно чтобы на страничку https://sait.ru/index.html методом POST передавались такие переменные: name, id.


тема создана:

Рейтинг: 4
голосов: 1

kinggame


репутация: 43
на сайте с 2007 года
сообщений: 339

Samsung Galaxy S7 (SM-G930)

Ставропольский край

#2

пробуй гуглить, куча же инфы в инете, выбери что больше тебе подходит, и для каких именно целей. например: Пусть у нас есть простая форма, состоящая из двух полей и кнопки для отправки данных:

<form action="action.php" method="post">
Имя: <input name="name" type="text" /><br/>
Пароль: <input name="password" type="password" /><br/>
<input name="submit" type="submit" value="Отправить" />
</form>
Обработчик формы action.php выводит в браузер текст, введенный в поля формы:

<?php
echo 'Имя: '.$_POST['name'].'<br/>';
echo 'Пароль: '.$_POST['password'].'<br/>';
?>
HTML форма позволяет пользователю сформировать POST-запрос, который затем отсылается браузером. Мы сформируем такой запрос скриптом.

Метод POST, в отличие от метода GET, посылает данные не в строке запроса, а в области данных, после заголовков. Передача данных аналогична методу GET: группы name=value объединяются при помощи амперсанда (&):

name=Евгений&password=qwerty
Кроме того, необходимо учитывать, что данные передаются в текстовом виде, поэтому все национальные символы следует подвергать кодированию при помощи функции urlencode.

Отправка данных методом POST через сокеты

<?php
$hostname = 'localhost';
$path = '/handler/action.php';
$content = '';
// Устанавливаем соединение с сервером $hostname
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) die('<p>'.$errstr.' ('.$errno.')</p>');

// Данные HTTP-запроса
$data = 'name='.urlencode('Евгений').'&password='.urlencode('qwerty');
// Заголовок HTTP-запроса
$headers = 'POST '.$path." HTTP/1.1\r\n";
$headers .= 'Host: '.$hostname."\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= 'Content-Length: '.strlen($data)."\r\n\r\n";
// Отправляем HTTP-запрос серверу
fwrite($fp, $headers.$data);
// Получаем ответ
while ( !feof($fp) ) $content .= fgets($fp, 1024);
// Закрываем соединение
fclose($fp);
// Выводим ответ в браузер
echo $content;
?>
Результат работы скрипта выглядит примерно так

HTTP/1.1 200 OK
Date: Sat, 28 Jun 2008 07:53:19 GMT
Server: Apache/2.0.55 (Win32) PHP/5.2.1
X-Powered-By: PHP/5.2.1
Content-Length: 42
Content-Type: text/html

Имя - Евгений<br/>
Пароль - qwerty<br/>
Загрузка POST-данных с использованием CURL

Помимо сокетов, обеспечивающих низкоуровневое обращение к серверу, PHP располагает специальным расширением CURL (Client URL Library).

<?php
// Задаем адрес удаленного сервера
$curl = curl_init("https://localhost/handler/action.php");
// Передача данных осуществляется методом POST
curl_setopt($curl, CURLOPT_POST, 1);
// Задаем POST-данные
$data = 'name=Евгений&password=qwerty';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// Выполняем запрос и выводим ответ в браузер
curl_exec($curl);
// Закрываем CURL соединение
curl_close($curl);
?>
С помощью функции curl_init() задается адрес удаленного сервера и путь к файлу на нем. В отличие от функции fsockopen(), необходимо задавать адрес полностью, включая префикс https://, т.е. расширение CURL позволяет работать с несколькими видами протоколов (HTTP, HTTPS, FTP). Если соединение с указанным сервером происходит успешно, функция curl_init() возвращает дескриптор соединения, который используется во всех остальных функциях библиотеки.

Для того, чтобы сообщить CURL о том, что данные будут передаваться методом POST, необходимо задать параметр CURLOPT_POST. POST-данные устанавливаются при помощи параметра CURLOPT_POSTFIELDS.

По умолчанию библиотека удаляет HTTP-заголовки, возвращаемые сервером. Однако CURL можно настроить на выдачу заголовков, если установить при помощи функции curl_setopt() ненулевое значение параметра CURLOPT_HEADER.
-------------
добавлено в 00.11: плюс я не пойму, у тебя все в хтмл станицы? на пыхе нужно будет тогда писать и создавать куда будет писаться бд, либо к мускулу сайт подсоединить, и создать таблицу с базой данных, если ты хочешь регист сделать, пользователи с данными должны куда то сохранятся и откуда то браться, хотя конечно может я твою идею не так понял..


Яндекс.Метрика