FC2ブログ

[スポンサー広告]スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Zend]ラジオボタンとチェックボックスで改行しない方法

Zend Framework で、ViewHelperを用いて、チェックボックスやラジオボタンを複数作成すると、自動的に改行が挿入され、複数行で表示される。

Zendを知り尽くしている人なら困惑しないんだけど、扱い初めの人は、ぐぐってもなかなか出てこないので、意外と四苦八苦する。(私自身もそうだった。笑)
ということで、以下は答え。

<改行あり> 一般的な記述方法。これだとラジオボックス毎に改行されて出力されてしまう。

$this->formRadio("hoge-radio", null, null, array("1"=>"iti","2"=>"nini"))


<改行なし> 第5引数に空文字を指定する。

$this->formRadio("hoge-radio", null, null, array("1"=>"iti","2"=>"nini"), "")


ちなみにフレームワークのヘルパーの記述はこうなってる。

public function formRadio(
 $name, $value = null, $attribs = null,
 $options = null, $listsep = "<br />\n")

第5引数のデフォルトは "<br />\n" になってる。なるほどね~、という話。

【補足】
controller側で設定する場合は、Zend_Form の「setSeparator()」というメソッドを用いて空文字を設定すればOK。
スポンサーサイト

[Zend]ダイジェスト認証をやってみる

さくらサーバでBasic認証ができないため、代替え案として、ダイジェスト認証を実装する。

Zendframework:ダイジェスト認証

基本的な実装は上記の通りだが、すんなりと行かなかったのでメモ。

例えば、以下の内容で認証する場合

userId: user01
realm: hoge
password: pass1234


認証ファイルは(userId:realm:password)と記述するので以下のとおりとなる。

user01:hoge:15db8810c556e2e2a55b7154b3817296

※ここで十分に注意しないといけないのはパスワードの記述。
  単純に md5('pass1234') の結果値を設定すると思いきや、それだとNGしか返ってこない。
  正しくは、md5('user01:hoge:pass1234') の値 "15db8810c556e2e2a55b7154b3817296" を設定する必要がある。

controllerの認証処理はこんな感じ。

$filename = dirname(__FILE__) . '/../../public/passwd.txt';
$adapter = new Zend_Auth_Adapter_Digest(
 $filename,  //filename
 'hoge',   //realm
 '入力したユーザID',    //userId
 '入力したパスワード'   //password
);

$result = $adapter->authenticate();
$identity = $result->getIdentity();

if ($result->isValid()) {
 echo "認証成功";
}else{
 echo "認証失敗";
}

[Zend]リダイレクトが効かない

特定のアクションを実行後にリダイレクトすることは、
ウェブサイトでは一般的な仕組みなのだが、
ローカルで動作させた時は正常にリダイレクトするのに、
サーバにアップロードして動作させると、
なぜか特定のアクションでのみリダイレクトが効かない。

試しにリダイレクト先URLにダミーのパラメータを追加してみると、
正常にリダイレクトが効く。

うーむ、原因は現在表示しているURLと、リダイレクト先URLが全く一緒のため、
同じページの表示動作と認識し、キャッシュから表示されてしまっているためと判明。

ということで、以下のhtmlヘッダーを共通コントローラーのpreDispatch()に追記して対応した。

$this->getResponse()->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', true);
プロフィール

jsuz

Author:jsuz
あなたは 人目の覗き人
せっせと自宅で作る開発者ブログ。 メインblogはこちら↓
今日もイイコトあった?

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。