2012-05-27 169 views
0

日誌文件已滿此錯誤的:未定義偏移:255個

Undefined offset: 255 in /var/www/html/site2/functions.inc.php on line 764"

線764是如下:

$counter[$i] = $counter[$x];  

整個功能見下文。

有人可以幫我解決嗎?謝謝。

function Encode($data,$pwd) { 
    $pwd_length = strlen($pwd); 
    for ($i = 0; $i < 255; $i++) { 
     $key[$i] = ord(substr($pwd, ($i % $pwd_length)+1, 1)); 
     $counter[$i] = $i; 
    } 
    $x = ''; 
    for ($i = 0; $i < 255; $i++) { 
     $x = ($x + $counter[$i] + $key[$i]) % 256; 
     $temp_swap = $counter[$i]; 
     $counter[$i] = $counter[$x]; 
     $counter[$x] = $temp_swap; 
    } 
    $a = ''; 
    $j = ''; 
    $Zcrypt = ''; 
    for ($i = 0; $i < strlen($data); $i++) { 
     $a = ($a + 1) % 256; 
     $j = ($j + $counter[$a]) % 256; 
     $temp = $counter[$a]; 
     $counter[$a] = $counter[$j]; 
     $counter[$j] = $temp; 
     $k = $counter[(($counter[$a] + $counter[$j]) % 256)]; 
     $Zcipher = ord(substr($data, $i, 1))^$k; 
     $Zcrypt .= chr($Zcipher); 
    } 
    return $Zcrypt; 
} 

回答

2

您的循環停止時$ I> = 255你不希望出現這種情況。我想你希望for循環在$ i> 255停止。

因此改變

for ($i = 0; $i < 255; $i++) {

for ($i = 0; $i <= 255; $i++) {

,你是好去!

+0

謝謝,它工作:) – user1406271