2012-10-11 53 views
3

我目前正試圖解決Zend Framework 2 TutorialZend Framework2嘗試添加到sqlite分段錯誤db

我在Solaris系統上使用Zend Engine v2.4.0的Apache 2和php 5.4.7。

我設法創建了我需要的所有東西,但是當我想從列表中添加或刪除一個相冊時,Apache子進程總是崩潰,導致出現分段錯誤。 我backtraced這與 GDB的httpd, 運行-X 直到發生錯誤, 發現,這裏的東西是最後一次執行的框架試圖得到Zend的StringLength.php功能的isValid():169

添加或編輯專輯時,用戶必須提供藝術家和專輯名稱的數據,然後點擊提交按鈕。 現在在驗證表單的輸入時會崩潰。

我嘗試添加單個字符名稱,üöä包含名稱和只是簡單的名稱,如'西蒙貓',一切都失敗。

你有什麼建議可能是什麼問題?

編輯:

我本地化了一點錯誤。

public function isValid($value) 
{ 
    if (!is_string($value)) { 
     $this->error(self::INVALID); 
     return false; 
    } 
/* 
    $this->setValue($value); 
    if ($this->getEncoding() !== null) { 
     $length = iconv_strlen($value, $this->getEncoding()); 
    } else { 
     $length = iconv_strlen($value); 
    } 

    if ($length < $this->getMin()) { 
     $this->error(self::TOO_SHORT); 
    } 
*/ 
    if (null !== $this->getMax() && $this->getMax() < $length) { 
     $this->error(self::TOO_LONG); 
    } 

    if (count($this->getMessages())) { 
     return false; 
    } else { 
     return true; 
    } 
} 

分段錯誤會在isValid()中的註釋間產生差異。 也許它與getEncoding()方法有關?

EDIT2:

問題是iconv_strlen連接,不知道爲什麼,雖然:如果你只是用普通的strlen /做工精細()

+0

所以,我沒有解決問題。 我只是使用正常的strlen()。 – RobRob

回答

0

我不明白你到底正在嘗試做的。

看來你正在使用一些驗證類:Zend \ Validator \ StringLength?或者我錯了?

你能提供你的驗證者的初始數據嗎?