Wątek przeniesiony 2023-11-17 22:37 z Webmastering przez Riddle.

cgi-bin - bad gateway

0

Hej,

Taka sytuacja. Popełniłem skrypt, który skanuje dostępne sieci wi-fi i ma je wyświetlić na stronie. Kod skryptu jest banalny i wygląda w ten sposób:

#!/bin/bash

FILE=/tmp/wifiscan
if [[ -f "$FILE" ]]; then
    rm $FILE
fi

iw wlan0 scan > /tmp/wifiscan 

if [[ -f "$FILE" ]]; then
	if grep -q "wlan0" /tmp/wifiscan; then
		ssids=($(cat $FILE | grep "SSID" | awk -F': ' '{print $2}'))
		signals=($(cat $FILE | grep "signal" | awk -F'-| dBm' '{print $2}'))

		echo "Content-type: text/html"
		echo "<html>"
		echo "<head>"
		echo "<link type='text/css' rel='stylesheet' href='/style.css'>"
		echo "<title>Wireless Networks Scan Results</title>"
		echo "</head>"
		echo "<body>"
		echo "<div class='container'>"
		echo "<h1>Available Wireless Networks:</h1>"
		for ((i = 0; i < ${#ssids[@]}; i++)); do
 			echo "  <p>SSID: ${ssids[i]}, Signal Strength: ${signals[i]}</p>"
		done
		echo "</div>"
		echo "</body>"
		echo "</html>"	
	fi
fi

Skrypt działa z shella i daje piękny wynik:

Content-type: text/html
<html>
<head>
<link type='text/css' rel='stylesheet' href='/style.css'>
<title>Wireless Networks Scan Results</title>
</head>
<body>
<div class='container'>
<h1>Available Wireless Networks:</h1>
<p>SSID: k1_net_keg_RPT, Signal Strength: 72.00</p>
<p>SSID: af3net, Signal Strength: 62.00</p>
</div>
</body>
</html>

natomiast jak go puszczam ze strony:

  <form action='/cgi-bin/scan_wireless.cgi' method='post'>
  <button type='submit'>Scan Wireless Networks</button>
  </form>

to nieustannie otrzymuję wynik

Bad Gateway
The process did not produce any response

w logach web serwera oczywiście ani słowa. Ktoś? Coś? Bo zgłupiałem zupełnie

pozdr

KK

1

Problem z uprawnieniami?

0

nie. to jest OpenWrt - tam wszystko działa na roocie

1

hehe, okazało się, że pomiędzy nagłówkiem a tagiem <html> powinna być pusta linia. Nikt tego nie zauważył :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1