2011-02-05 82 views
-1

我有了这个脚本,它产生以下错误:001校验失败校验失败

这是剧本,我不知道有什么不对的地方,你能帮帮我吗?

<?php 

/* 

    Access control for TargetPay Pay per Use 
    (C) TargetMedia 2007 

    Upload this file in the protected directory and make sure 
    that .htaccess support is enabled. 

    MODIFICATIONS IN THIS CODE ARE ALLOWED BUT NOT SUPPORTED 

    Product-ID: 28717 Generated: 16-01-2011 14:57:05 

*/ 

define ("CHECKSUM", "739b54dc26"); 
define ("ERR001", "001 Checksum failure"); 
define ("ERR002", "002 Can't open .htaccess for writing. Check rights."); 
define ("ERR003", "003 I/O Error, cannot write to .htaccess. Disk full?"); 

list($thispage) = explode("?", 
    "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]); 

$payscreen = "http://www.targetpay.nl/send/?id=28717&rtlo=51090". 
    "&pm=".urlencode("inline=1"). 
    "&ref=".urlencode($thispage); 

header ("Content-type: text/plain"); 

if ($_GET["checksum"] != CHECKSUM) { 
    die (ERR001); 
    } 

function ip2hex ($ip) { 
    list ($a,$b,$c,$d) = explode(".", $ip); 
    return str_pad(dechex($a),2,"0",STR_PAD_LEFT). 
      str_pad(dechex($b),2,"0",STR_PAD_LEFT). 
      str_pad(dechex($c),2,"0",STR_PAD_LEFT). 
      str_pad(dechex($d),2,"0",STR_PAD_LEFT); 
    } 

function hex2ip ($hex) { 
    return hexdec(substr($hex,0,2)).".". 
      hexdec(substr($hex,2,2)).".". 
      hexdec(substr($hex,4,2)).".". 
      hexdec(substr($hex,6,2)); 
    } 

function parse ($whitelist, $payscreen) { 
    $here = substr($_SERVER["SCRIPT_FILENAME"], 
     strrpos ($_SERVER["SCRIPT_FILENAME"], "/") + 1); 

    $o = "ErrorDocument 403 $payscreen\n". 
      "<Files .htaccess>\n". 
      "Order allow,deny\n". 
      "Deny from all\n". 
      "</Files>\n". 
      "<Files $here>\n". 
      "Order allow,deny\n". 
      "Allow from all\n". 
      "</Files>\n". 
      "Order deny,allow\n". 
      "Deny from all\n"; 

    if ((!$whitelist) || ($whitelist=="empty")) { 
     return $o; } 

    $iplist = explode(",", $whitelist); 
    foreach ($iplist as $hex) { 
     $ip = hex2ip ($hex); 
     if ($ip) { 
      $o .= "Allow from $ip\n"; 
      } 
     } 
    return $o; 
    } 

if ($_GET["register"]) { 
    $fp = @fopen(".htaccess", "w+"); 
    if (!$fp) { 
     die (ERR002); 
     } 
    if ([email protected] ($fp, parse($_GET["register"],$payscreen))) { 
     die (ERR003); 
     } 
    @fclose ($fp); 
    echo "000 OK"; 
    } 

if ($_GET["reset"]) { 
    @unlink (".htaccess"); 
    $fp = @fopen(".htaccess", "w+"); 
    if (!$fp) { 
     die (ERR002); 
     } 
    if ([email protected] ($fp, parse("",$payscreen))) { 
     die (ERR003); 
     } 
    @fclose ($fp); 
    echo "000 RESET OK"; 
    } 

if ($_GET["dump"]) { 
    echo @implode("",file(".htaccess")); 
    echo "\n-EOF-"; 
    } 
?> 

非常感谢!

+3

这需要基本调试。 `$ _GET [“校验和”]`包含什么,它为什么不同于`739b54dc26`?只有你(或者Targetpay的支持)才能回答这个问题。这不是一个编程问题,因此 – 2011-02-05 17:44:16

回答

1

我不认为它的错误。其实

if($_GET["checksum"] != CHECKSUM) { 
    die (ERR001); 
} 

这个条件变成了真,所以输出没有错误。 所以只需从最初获取它的任何位置检查GET数据。它肯定不是编程错误。

+0

所以我需要删除! ?让我们试试看。 – Andre 2011-02-05 17:47:22

+0

不要删除它,因为它一定是出于某种目的。找出并找到$ GET是你提供给你的脚本。我希望你知道。 http://localhost/test.php?checksum = 739b54dc26,这个脚本会正常工作。 – ayush 2011-02-05 17:50:01

0

你需要通过GET与调用脚本,至少,这个参数:

checksum=739b54dc26 

,所以如果你的网页是test.php的,在本地主机上,这样调用它(您可以添加其他参数当然请求字符串):

http://localhost/test.php?checksum=739b54dc26 

希望它可以帮助