Curl post параметры php формы (на стороне клиента)

0

Я пытаюсь получить различные строки, которые хранятся в php файлах, например http://www.site_address.com/file.php. Я пробовал много команд завитка, таких как

curl -d "user=__&password=____" http://www.site_address.com/file.php

но все это действительно не работает: он просто возвращает действие формы. Вот как выглядит файл.php:

<?php
$message="string";
if(isset($_POST['login']))
{
        if ($_POST['username'] != '' && $_POST['password'] !='') {
                if ($_POST['username'] == 'user' && $_POST['password'] == 'pass') {
                        echo $message;
                        exit();
                }
                else {
                        $error = 'failed!';
                }
        }
        else {
                $error = 'Error!';
        }
}

if (isset($error))
{
        echo $error;
}

?>

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
        Username: <input type="text" id="username" name="username" size="32" value="" /><br />
        Password: <input type="password" id="password" name="password" size="32" value="" /><br />
        <input type="submit" name="login" value="Login" />
</form>

Я должен добавить, что у меня нет знаний о PHP. В этом случае я просто клиент. Должен ли я использовать другие флаги для команды curl, чтобы получить эту строку из "$ message"?

Теги:
curl
login

1 ответ

1
Лучший ответ

Первое, что вы должны добавить, это метод POST для команды curl:

curl -X POST

И ваша логика формы в этом самом скрипте PHP зависит от трех существующих входных переменных. А именно username, password и login.

curl -X POST -d "login=1&username=__&password=____" http://example.org/file.php

Параметр isset($_POST["login"]) не будет проходить без имени кнопки отправки, и вы написали name вместо имени username.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню