簡體   English   中英

超過最大執行時間(PHP)

[英]Maximum execution time exceeded (PHP)

即時通訊收到此錯誤,我不知道為什么。

Fatal error: Maximum execution time of 30 seconds exceeded in E:\web\autoopti\thanks.php on line 65

我為PHP腳本編寫的代碼是:

<?php
    $key = 129;

    $email = $_REQUEST["payer_email"];
    $first = $_REQUEST["first_name"];
    $last = $_REQUEST["last_name"];
    $acode = $_REQUEST["hash"];

    $txt = $email . "|" . $email . "|" . $first . "|" . $last . "|" . $acode;
    $outtxt = '';

    for($i=0;$i<strlen($txt);)
    {
        for($j=o;$j<strlen($key);$j++,$i++)
        {
            $outtxt .= $txt{$i} ^ $key{$j};
        }
    }

    echo "thanks";
?>

錯誤消息所指向的行是:

$outtxt .= $txt{$i} ^ $key{$j};

因此,我猜想這行代碼花費的時間太長了。 有人可以幫我解決這個問題嗎?

謝謝

您有一個無限循環。 $j從o開始(由於不存在o常量,所以從o ,而不是0),並且:

$j = 'o';
$j++;

結果$ j ='p'(即使'o' + 1為1 ...)

$ j最終從'z'變為'aa'。 任何非數字字符串<任何數字,因此內部循環是無限的。

我不確定腳本的重點是什么。 但是看起來您正在嘗試進行一些自行開發的加密或哈希處理,這通常是一個錯誤。 查看mcrypt哈希

編輯:我最初的答案是關於無限循環的原因是錯誤的。

檢查一下,它肯定會工作

<?php
$key = 129;

$email = $_REQUEST["payer_email"];
$first = $_REQUEST["first_name"];
$last = $_REQUEST["last_name"];
$acode = $_REQUEST["hash"];

$txt = $email . "|" . $email . "|" . $first . "|" . $last . "|" . $acode;
$outtxt = '';

for($i=0;$i<strlen($txt);)
{
    for($j=0;$j<strlen($key);$j++,$i++)
    {
        $outtxt .=  ( $txt{ $i } ^ $key{$j} ) ;
    }
}

echo "thanks";
?>

請查看這是否已解決錯誤或對我發表評論

這里沒什么好奇怪的。 您的代碼運行時間太長。 可以在PHP配置文件中增加超時限制。 但是,我建議您使用命令行PHP解釋器查看程序在這30秒內所處的位置,然后找出如何對其進行優化。

如果要繼續執行將忽略php.ini中的任何超時設置的代碼,請使用set_time_limit(0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM