open(FP, "exec ./authcheck at=11000 cp=00120 sc=40001 tu=http://xxxxxxxx/xxtest1/cgi-bin/membertop.cgi
nu=http://xxxxxxxx/xxtest1/entrace.html lt=300 |");
$input=<FP>;
if( (index $input, "Location:") == 0 ) {
close(FP);
print "$input¥n";
exit;
} elsif( (index $input, "uid" ) == 0 ) {
close(FP);
$param = $ENV{'QUERY_STRING'};
@input = split(/&/, $input);
foreach $i (0 .. $#input) {
$input[$i] =~ s/¥+/ /g;
$input[$i] =~ s/%(..)/pack("c", hex($1))/ge;
($key1, $value1) = split(/=/, $input[$i], 2);
$input{$key1} = $value1;
}
$uid = $input{'uid'};
$isp = $input{'isp'};
$asts = $input{'asts'};
print "Content-type: text/html;charset=Shift_JIS¥n¥n";
print "<html>¥n";
print "<head><meta http-equiv=Cache-Control content=no-cache />¥n";
print "<title>会員認証</title></head>¥n";
print "<body bgcolor=ffffff link=ff0000 alink=00ff00 vlink=0000ff>¥n";
print "認証種別:11000<br>¥n";
print "端末: 対応端末 <br>¥n";
print "認証パターン:会員認証<br>¥n";
print "退会時処理:提供不可<br>¥n";
print "課金ログ:なし<br>¥n";
print "告知画面:なし<br>¥n";
print "<a href=http://xxxxxxxx/xxtest1/cgi-bin/member01.cgi?$param>次へ¥n";
print "</body>¥n";
print "</html>¥n";
exit;
}
print
一番参考になる回答をいただけた方に200ポイント差し上げます
動作未確認のものですが、よろしければ・・・
if (FALSE === $last_line = system("./authcheck at=11000 cp=00120 sc=40001 tu=http://xxxxxxxx/xxtest1/cgi-bin/membertop.cgi nu=http://xxxxxxxx/xxtest1/entrace.html lt=300", $input)){ echo "Error!! 外部プログラムから値が返ってこない。 または、外部プログラムの呼び出し失敗。<br />\n"; }else{ if(strpos($input,"Location:") == 0){ echo "$input\n"; exit; }elseif(strpos($input,"uid") == 0){ $param = $_SERVER["QUERY_STRING"]; $input_array = explode("&", $input); $param_array = array(); $c = count($_array) - 1; foreach $i (0 .. $c) { list($key,$value) = explode('=',$input_array[$i],2); }elseif($key=="uid"){ $uid = urldecode($value); }elseif($key=="isp"){ $isp = urldecode($value); }elseif($key=="asts"){ $asts = urldecode($value); } } echo "Content-type: text/html;charset=Shift_JIS\n\n"; echo "<html>\n"; echo "<head><meta http-equiv=Cache-Control content=no-cache />\n"; echo "<title>会員認証</title></head>\n"; echo "<body bgcolor=ffffff link=ff0000 alink=00ff00 vlink=0000ff>\n"; echo "認証種別:11000<br>\n"; echo "端末: 対応端末 <br>\n"; echo "認証パターン:会員認証<br>\n"; echo "退会時処理:提供不可<br>\n"; echo "課金ログ:なし<br>\n"; echo "告知画面:なし<br>\n"; echo "<a href=http://xxxxxxxx/xxtest1/cgi-bin/member01.cgi?$param>次へ\n"; echo "</body>\n"; echo "</html>\n"; exit; } }
ご回答ありがとうございます
ご指示通り訂正した上で動かしてみましたが
15行目の"foreach $i (0 .. $c) {
"の部分は何をしようとしているのでしょうか
私の中ではforeachは配列をまとめて処理するときに使う程度の認識しかないのですが、何やらこの部分でエラーが起きているみたいです
あっ・・・こういうことですか?↓
foreach ($c as $key => $value) {
これでとりあえず・・・大丈夫かな・・・
すみません・・・もう限界なので寝ま。。。ZZZ