将URL从HTML表单传递到cURL进程

问题描述 投票:0回答:1

我正在寻找通过HTML表单提交网站URL到多个cURL命令(目前采用shell脚本形式)的最佳方法,这些命令将用于检查HTTP状态(302等等),提取标题,然后关注重定向。所以使用基本的cURL函数来检查远程Web服务器状态。这是为了确认有问题的随机网站目前可以被确认为可访问的。同样,这些变量需要通过某种形式动态定义,而不是通过脚本设置为静态变量/ arg。

我已经能够使用来自终端的PHP和bash脚本来解决这个问题,但是我不知道将URL从HTML表单传递到服务器端脚本然后再转发到shell的最佳流程是什么cURL的过程...或者即使这是最好的选择,老实说。我也知道PHP可能不是这个过程的最佳选择,因为它不一定是最安全的方法。

我想要做的是使用以下HTML表单提交以下cURL命令的URL,因为它们存在于我的bash脚本中...让它们运行,然后在网站上回显,结果是状态为提供的URL。

<html>
<body>
<form method="post" action="test.php">
<input type="text" name="domain" size="35" />
<input type="submit" value="submit" />
</body>
</html>

cURL命令:

curl -Isk $domain | grep HTTP | cut -d ' ' -f2

curl -LIs $domain --max-redirs 10 | grep 301 | wc -l

curl -LIs $domain --max-redirs 10 | grep -i Content-Type

编辑::这是我在终端上使用的PHP脚本。它工作正常。我一直在尝试将$ domain的值从HTML表单传递给此脚本,然后传递给我的cURL bash脚本,该脚本无效。我不确定我在哪里出错。

<?PHP
$domain = "google.com";
$command = "/usr/lib/cgi-bin/test.sh";
$output = shell_exec($command . " " . $domain);
echo "$output";
?>

这是我的test.sh bash脚本。

#!/bin/bash
domain=$1
output="$(curl -Isk $domain | grep HTTP | cut -d ' ' -f2)"
echo "$output"

就像我说的那样,真正的简单和工作就像一个冠军形成终端..从HTML形式,无论我尝试过什么... nogo。提前感谢任何见解。

php html forms curl post
1个回答
0
投票

我想出了这个,并让它在PHP本身内部工作。当我发布原始问题时,我不知道PHP有自己的cURL lib可用。这是工作顺序的样子。我使用与以前相同的HTML表单。

<?php
$ch = curl_init($_POST['domain']);
curl_exec($ch);

   if (!curl_errno($ch)) {
      switch (http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
         case 200: echo 'HTTP code: ', $http_code, '-Success', "\n";
         break;
         default: 
         echo 'HTTP code: ', $http_code, '-Success', "\n";
      }
   }

curl_close($ch);
?>
© www.soinside.com 2019 - 2024. All rights reserved.