Я пытаюсь получить различные строки, которые хранятся в 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"?
Первое, что вы должны добавить, это метод 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
.