私は現在、ZendFramework2チュートリアルを回避しようとしています。
SolarisシステムでZendEnginev2.4.0でApache2とphp5.4.7を使用しています。
必要なものをすべて作成できましたが、リストからアルバムを追加または削除したい場合、Apacheの子プロセスが常にクラッシュし、セグメンテーション違反が発生します。これをgdbhttpdでバックトレースし、エラーが発生するまで-Xを実行します。最後に何かが実行されたフレームが、ZendのStringLength.php:169の関数isValid()を取得しようとしていることがわかりました。
アルバムを追加または編集する場合、ユーザーはアーティストのデータとアルバム名を入力してから、送信ボタンを押す必要があります。フォームの入力を検証するとクラッシュします。
単一の文字名、名前を含むüöä、および「猫のシモン」のような単純な名前を追加しようとしましたが、すべて失敗します。
問題が何であるかについて何か提案がありますか?
編集:
エラーをもう少しローカライズしました。
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()を使用するだけで問題なく動作します