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

Приветствую.
Что то не догоню никак. Надо скриптом залогиниться на сайте. Метод POST. С GET-ом все понятно, а пост не знаю как. Подскажите, плиз.
Ответ: что то не то, дает ошибку 500 - хотя сайт работает. это полный код или к нему курл еще прикручивать надо?

Добавлено через 5 минут
а, туплю.

Добавлено через 2 минуты
все супер! залогинился, получил опять массив данных и переход на другую страницу без проблем. спасибо.
Вопрос: При любом запросе методом POST фигурирует ошибка "forbidden"

При ЛЮБОМ запросе методом POST вылетает ошибка
403 returned for /filter with message Forbidden
Использую фрейморк Spring MVC

Вот пример запроса
Код Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
                $.ajax({
                    url: 'filter',
                    type: "POST",
                    data: {
                    },
                    success: function (data) {
                        console.log(data);
                    },
                    error: function (str, xhr) {
                        console.log(str + "        " + xhr);
                    }
                });
            </script>
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
@ResponseBody
    @ResponseStatus(value = HttpStatus.OK)
    @RequestMapping(value = "filter", method = RequestMethod.POST)
    public String filtered(Model model) {
        return "All good";
    }
Если поставить несуществующий адрес, то тоже будет выкидываться эта ошибка.
Ответ: получилось сделать так, чтобы пост он хоть как-то начал воспринимать (с помощью форм)
но теперь ту же ошибку кидает в форме с атрибутом
enctype="multipart/form-data"
вот полный код формы (ее целью является загрузка файла на сервер)
Код HTML5
1
2
3
4
<form action="#" enctype="multipart/form-data" th:action="@{/loadforparse}" method="post" >
                <input type="file"  name="file"/>
                <input type="submit" value="Upload"/>
            </form>
Вопрос: отправка формы методом post без перезагрузки страницы

Помогите! Плз! Существует форма:
<input name="usernic" id="st" type="text" value="">
<input type="submit" value="Send">

Вот нужно отправить введеный текст методом post без перезагрузки.

Я так понимаю отпавлять нужно через xmlHTTP. Ток не понимаю как это написать))!
Ответ:
А подскажет кто-нибудь, как сделать простейшую кнопку, по нажатию на которую отправлялся бы post запрос, заранее прописанный для этой кнопки, но это всё нужно без перезагрузки и обновления страницы. Принимать и обрабатывать их не нужно.
Это нужно для устройства, которое управляется по web путём post запросов. То есть так: перехожу в браузере по адресу и лампа загорается, перехожу по и лампа тухнет. Вот хотелось бы реализовать кнопку.
Пока сделал так:
include('simple_html_dom.php');
$html = file_get_html('http://192.168.1.7');

if(isset($_POST['execute'])){

$sURI = 'http://192.168.1.7/?'.$_POST['comand'];
file_get_contents($sURI);
header("Location: {$_SERVER['PHP_SELF']}");
}


$cont .= '<form method="POST">';
$cont .= '<input type="hidden" name="comand" value="Bra=1">';
$cont .= '<input type="submit" name="execute" value="Бра ON">';
$cont .= '</form>';
$cont .= '<input type="hidden" name="comand" value="Bra=0">';
$cont .= '<input type="submit" name="execute" value="Бра OFF">';
$cont .= '</form>';

Но это как-то криво, и перезагружается страница. Помогите, пожалста.
Вопрос: Загрузка файла методом POST ошибка 2

Здравствуйте.
Имею такую форму
HTML5
1
2
3
4
5
6
7
<form enctype="multipart/form-data" action="/file2.php" method="POST">
    <!-- Поле MAX_FILE_SIZE должно быть указано до поля загрузки файла -->
    <input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
    <!-- Название элемента input определяет имя в массиве $_FILES -->
    Отправить этот файл: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>
Такой файл обработчик
PHP
1
2
3
4
5
6
7
8
9
10
11
    echo '<pre>';
    print_r($_FILES).'<br>';
    echo '</pre>';
    if (move_uploaded_file($_FILES['userfile']['name'], '/uploads' ))
    {
        print "File is valid, and was successfully uploaded.";
    } 
    else 
    {
        print "There some errors11111!";
    }
По данным print_r() имею следущее
Array
(
[userfile] => Array
(
[name] => 11111.jpg
[type] =>
[tmp_name] =>
[error] => 2
[size] => 0
)

)
Загуглил, ошибка означает, что размер превышен. Но как так - размер файла = 306.000 байт. Ограничение 3000000 байт.
В чем причина, подскажите, пожалуйста.
Ответ: теперь File is valid, and was successfully uploaded. т.е. функция успешно выполнена, но когда я открываю папку, по указанному пути - там нет этого файла, как так?
Нашел, он ее сохраняет в корень даже не сайта а самого локального сервера денвер, хотя я указывал даже асболютный путь.

Добавлено через 46 минут
Все разобрался
1) Пусть нужно писать полный т.е. не '/uploads/' , а '/home/a2/www/uploads/'
2) В конце папки нужно еще один слэш поставить.
Большое спасибо, Dolphin, что помогли разобраться.
Вопрос: Обращение к переменной из другого файла из файла вызванного методом POST

Привет! Не могу понять почему не работает.

user.php
PHP
1
2
3
<?php
$test = "привет";
?>
buy.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php 
    include_once("shop/user.php"); //Подключить функции
    // если была нажата кнопка "Отправить" 
    if($_POST) 
    {
         echo 'пост';
         echo "переменная: ".$test;
    }
    else
    {
        echo 'не пост';
        echo "переменная: ".$test;
    }
?>
Вот если к buy.php обращаемся на прямую (например прописываем в браузере в строке), то всё ок, переменная $test выводится нормальное, если обращение идёт через POST запрос, то переменная не выводится. Помогите пожалуйста разобраться почему так.
Ответ:
Сообщение от Jodah
Потому что в user.php нет echo. Вы объявили переменную, но не вывели её.
Хм, оказалось, что в случае с переменной $test неправильно прописана include, прописал так:
PHP
1
include_once("user.php"); //Подключить функции
И заработало (не учёл, что обращаюсь из файла который лежит рядом, до этого просто обращался из папки выше), но вариант для массивов не работает.

user.php
PHP
1
2
3
4
5
6
<?php
$test = array(
    "name" => "text1",
    "buy" => "text2",
);
?>
buy.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
    include_once("user.php"); //Подключить функции
    // если была нажата кнопка "Отправить" 
    if($_POST) 
    {
         echo 'пост ';
         echo "переменная: ".$test->name;
         //echo "переменная: ".$test[0]; //пробовал так
    }
    else
    {
        echo 'не пост ';
        echo "переменная: ".$test;
    }
?>
Добавлено через 7 минут
Обратился к элементу массива и помогло.
PHP
1
echo "переменная: ".$test[name];
Блин.. это всё "около" того, что мне нужно. Вообще мне нужно в CMS ips community suite получить данные о пользователе.
И вот этот код в POST-запросе не срабатывает.

user.php
PHP
1
2
3
<?php
$member = \IPS\Member::loggedIn(); //Получить инфо о пользователеое
?>
buy.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php 
    include_once("user.php"); //Подключить функции
    // если была нажата кнопка "Отправить" 
    if($_POST) 
    {
         echo 'пост ';
         echo "переменная: ".$member->name;
    }
    else
    {
        echo 'не пост ';
        echo "переменная: ".$member->name;
    }
?>
Так как не факт, что люди сидящие тут работали с этой CMS, решил зайти из далека.
В общем в случае если POST-запрос - то не работает, если не post то работает.

Добавлено через 4 минуты
Хотя при прямом доступе к файлу, тоже не работает. Он тупо выдает ошибку. Код
PHP
1
$member = \IPS\Member::loggedIn(); //Получить инфо о пользователеое
почему-то напрочь убивает файл. И только если я делаю обращение с сайта к этому файлу не post-запросом, то он работает. В общем спасибо за помощь, попробую сам разобраться. Главное, что понял, что проблема не там где думал
Вопрос: Метод POST и GET

Доброго времени суток. Чем отличается метод POST от GET в ASP.NET. Если возможно приведите пример с этими методами на vb.net asp.net.
Спасибо за ранее!
Ответ:
Сообщение от Ghanijon
POST от GET в ASP.NET
ASP.NET тут не при чем, это методы запросов HTTP, и их намного больше чем эти два

ссылку вам уже предоставили.

вкратце: при GET в запросе данные передаются в самой запрашиваемой URL, в query path (все что после знака вопроса "?"). когда вы в браузере переходите по ссылке это GET запрос.

при POST запросе помимо данных в query path, данные передаются в теле запроса, пример когда вы вводите данные в поля и нажимаете кнопку сохранить (в этом случае обычно идет отправка формы POST методом) или когда вы логинетесь на каком либо сайте.
Вопрос: Выслать данные из контроллера методом POST вместе с редиректом на внешний URL (MVC)

Всем привет!
Хочу реализовать отсылку данных из контроллера методом POST, чтобы при этом сработала переадресация на URL.
(Данные отсылаются, но без переадресации)

До этого было, что на .aspx странице при загрузке просто делался сабмит с помощью javscripta.

Хочется сделать по нормальному, чтобы в урле не было видно никаких параметров и данных.

Спасибо!
Ответ: capitol, ASP.NET работает на стороне сервера. Поэтому запрос отправленный через HttpWebRequest никак не связан с браузером на стороне клиента. Генерируй форму с нужными параметрами в виде скрытых полей и делать submit с помощью js. Это нормальный вариант.
Вопрос: При загрузке файла на сервер меняется кодировка

Здравствуйте, возник такой вопрос: Написал код для загрузки на сервер, файлы загружаются все хорошо, только когда загружаю файлы с русским названием в папке куда они загружаются слетает кодировка. Например вместо файла с названием "отчет.docx" получается "диплом.docx". Файл формы html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Загрузка файла на сервер - PHP</title>
</head>
<body>
    <h2 align='center'>Загрузка файла на сервер</h2>
    <form method="post" name="upload_form" action="upload.php" enctype="multipart/form-data">
        <input type="hidden" name="MAX_FILE_SIZE" value="5242880" />
        <p align='center'>Максимальный размер файла: 5 мб.
<input name="uploaded_file" type="file"><input type="submit"></p>
    </form>
</body>
</html>
код скрипта
PHP
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
53
54
<?php
/*
 * Загрузка файла на сервер
 * Автор: Mowshon (Live-code.ru)
 * Дата: 11.11.13
 */
// Максимально допустимый размер загружаемого файла - 5Мб
$MaxFileSizeInBytes = 5242880;
// Разрешение расширения файлов для загрузки
$AllowFileExtension = array('jpg', 'png', 'jpeg', 'gif', 'rar', 'zip', 'doc', 
 
'pdf','docx','xls','xlsx', 'djvu');
// Оригинальное название файла
$FileName = $_FILES['uploaded_file']['name'];
// Полный путь до временного файла
$TempName = $_FILES['uploaded_file']['tmp_name'];
// Папка где будут загружатся файлы
$UploadDir = "uploads/";
// Полный путь к новому файлу в папке сервера
$NewFilePatch = $UploadDir.$FileName;
if($FileName) {
    // Проверка если расширение файла находится в массиве доступных
    $FileExtension = pathinfo($FileName, PATHINFO_EXTENSION);
    if(!in_array($FileExtension, $AllowFileExtension)) {
        echo "Файлы с расширением {$FileExtension} не допускаются";
    }
     else {
         // Проверка размера файла
         if(filesize($TempName) > $MaxFileSizeInBytes) {
             echo "Размер загружаемого файла превышает 5МБ";
         }
          else {
              // Проверяем права доступа на папку
              if(!is_writable($UploadDir)) {
                  echo "Папка ".$UploadDir." не имеет прав на запись";
              }
               else {
                   // Копируем содержимое временного файла $TempName и создаем нового в 
 
папке сервера
                   $CopyFile = copy($TempName, $NewFilePatch);
                   if(!$CopyFile) {
                       echo "Возникла ошибка, файл не удалось загрузить!";
                   }
                    else {
                        echo "Файл успешно загружен!<br />Ссылка на файл: <a 
 
href='{$NewFilePatch}'>{$NewFilePatch}</a>";
                    }
               }
          }
     }
}
?>
Ответ: Если использовать другую функцию загрузки файлов на сервер move_uploaded_file а для преобразования кодировки можно использовать iconv("windows-1251", "UTF-8", $file_name)
Вопрос: Методы POST и GET

Зачем нужен метод GET если имеется более работоспособный и безопасный метод POST.
Когда же рационально использовать GET вместо POST?
Ответ:
Сообщение от SZV
Когда же рационально использовать GET вместо POST?
У каждого из методов свое предназначение.
GET - запрос на получение данных, не изменяет состояния системы. Два последовательных гет запроса должны возвращать одинаковый результат, естественно если между ними не было никаких изменений. GET запросы могут быть закешированы. GET запросом можно поделиться с другим человеком, например, если форма поиска реализована гет запросом, я могу скопировать ее и передать, при этом кому я передам будет видеть то же что и я за счет переметров в строке запроса.
POST - запрос на изменение данных. Два последовательных пост запроса приведут к разным результатам, пост запрос не может быть закеширован.
Помимо GET и POST существуют и другие , но их нельзя использовать в качестве значения аттрибута method, применяются они в основном в api.
Вопрос: Методы POST GET и их работа с UTF-8

Добрый день,
изучаю JSP, написал самое простое приложение
1 страница с формой (логин, пароль, отправить)
2 результирующая страница (отображение отправленных данных)

в результирующей странице указал кодировку
Код HTML5
1
 <% request.setCharacterEncoding("UTF-8"); %>
ПРОБЛЕМА:
почему при использование метода POST русские слова отображаются правильно, а при использование GET отображаются иероглифы несмотря на явно указанную кодировку?
заранее спасибо.
Ответ: RentrAnt, за кодировку GET запросов отвечает сервер. Программно вы её не измените. Если сервер томкат, то в файл conf/server.xml в Connector HTTP добавьте URIEncoding="UTF-8".