2017-12-17 22 views
0

私は、HTMLフォームを使用してWebサイトURLを複数のcURLコマンド(現在はシェルスクリプトフォーム)に提出する最良の方法を探しています。これはHTTPのチェックに使用されますステータス(302など)、プルヘッダー、リダイレクトに従います。リモートのWebサーバーのステータスをチェックするための基本的なcURL関数を使用します。これは、問題のランダムなウェブサイトが現在アクセス可能であることを確認できることを確認するためのものです。ここでも、これらの変数は、何らかの形式で動的に定義する必要があり、スクリプトを介して静的変数/ argとして設定する必要はありません。HTMLフォームからURLをcURLプロセスに渡す

私はこれをターミナルからPHPスクリプトとbashスクリプトを使って実行することができましたが、HTMLフォームからサーバーサイドスクリプトにURLを渡すのに最適なプロセスは何か分かりません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スクリプトです。それはうまく動作します。私はHTMLフォームからこのスクリプトに$ domainの値を渡してきて、それから働いていない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。あらゆる洞察力に感謝します。

+0

PHPを使用してこの問題を解決しようとしたことがあるのであれば、本当の問題は何ですか?それが動作している場合は、ちょうどそのように:) –

+0

返信いただきありがとうございます。問題は、端末だけでなくウェブサイトのフォームからURLを送信する必要があることです。次のPHP、escapearg/escapecmdでは動作しますが、HTMLフォームを使って正しく動作させることはできません...私はいくつかの異なることを試みましたが、無駄です。元の質問を編集してPHPスクリプトを組み込みました。これは$ドメインの静的な値を扱っています。 – uf0undzach

答えて

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); 
?> 
関連する問題