• ベストアンサー

Zend Framework

こんにちは。 PHP zend frameworkについて質問です。 GETパラメータを使用する際に、 http://ホスト名/コントローラ名/アクション名/パラメータ1/バリュー1/パラメータ2/バリュー2 という風にパラメータを渡しますが、 たとえば、バリュー1にURLを渡したい場合、どうすればいいのでしょうか? URLに"/"が含まれるため、おかしくなってしまいます。 よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • hyd155
  • ベストアンサー率100% (1/1)
回答No.1

私も詳しくないですが,URIをエンコードする方法では問題ありますでしょうか?

kensuke734
質問者

お礼

回答ありがとうございました。 解決しました。

関連するQ&A

  • Zend Frameworkのコントローラー名について

    Zend Frameworkのコントローラー名について 現在 CentOS release 5.3 (Final) PHP5.2.14 Zend v2.2.0 にて開発を行っております。 今回URL(コントローラ名)にアンダースコアをつけたい要件があるのですが、可能なのでしょうか? 可能な場合その方法をご教授くださいませ。 例)http://hoge.co.jp/aaa_bbb/ aaa_bbbをコントローラとしたいのですが、Zendの命名規則ではできないようなのですが、 何かしら方法があるのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • zend frameworkでの拡張について

    PHP5.2.4、zend framework1.9.5を使用しています。 Zend_Captcha_WordクラスのgetSession関数内の $this->_session->setExpirationHops(1, null, true); を $this->_session->setExpirationHops(2, null, true); に書き換えたいのですが、できれば元のファイルを書き換えることなく 例えばZend_Captcha_WordExというZend_Captcha_Wordを継承したクラスで getSession関数を書き換えればいいと思ったのですが、しかしそうすると Zend_Captcha_Wordを継承している class Zend_Captcha_Image extends Zend_Captcha_Word{ } や class Zend_Captcha_Figlet extends Zend_Captcha_Word{ } までZend_Captcha_WordExに書き換えないといけないので、 この派生クラスを作って書き換えるやり方は現実的ではないと思いました。 zend frameworkにおいてこういう場合はどのようなやり方で記述すれば良いのでしょうか?

    • 締切済み
    • PHP
  • Zend Frameworkでoracle接続

    Zend Frameworkを勉強しようと思い始めたばかりのものです。 oracleに繋がらずどこをチェックすればよいのかさっぱりわかりません。 どなたかご教授願えないでしょうか? zfツールを使い雛形を作って、module で分けてみたり、ヘッダー、フッターをlayoutを使って分けたりと少し前進しました。 次はDB接続だと思い始めたのですが繋がりません。 ■環境 CentOS release 5.6 (Final) ■やったこと 1)oracle接続モジュール oci8 をインストール # export ORACLE_HOME=/opt/oracle/product/10.2.0/db # pecl install oci8 php.ini に追記 # vi /etc/php.ini extension=oci8.so 2)ローカルで接続テスト これは問題なく接続できてるみたいなのです。 # more test.php <?php putenv("ORACLE_HOME=/opt/oracle/product/10.2.0/db"); putenv("LD_LIBRARY_PATH=:/opt/oracle/product/10.2.0/db/lib"); // Zend_Dbライブラリの読み込み require_once 'Zend/Loader.php'; require_once 'Zend/Db.php'; $dbInit = array( 'host' => 'localhost', 'username' => 'usrxx', 'password' => 'usrxx', 'dbname' => 'xxdb' ); $db = Zend_Db::factory('oracle', $dbInit); $db->getConnection(); echo 'OK'; $db->closeConnection(); # php test.php OK 3)Zend Frameworkで接続テスト IndexController.php の indexAction でやってみたのですがダメなのです。 public function indexAction() { $dbInit = array( 'host' => 'localhost', 'username' => 'usrxx', 'password' => 'usrxx', 'dbname' => 'xxdb' ); $db = Zend_Db::factory('oracle', $dbInit); $db->getConnection(); $db->getConnection(); echo 'OK'; $db->closeConnection(); } ※/etc/sysconfig/httpdに以下を追加しました export ORACLE_HOME=/opt/oracle/product/10.2.0/db export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/db/lib 実行するとどうしてもエラーとなります。 ■エラーメッセージ An error occurred Application error Exception information: Message: Unknown exception Stack trace: #0 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Db/Adapter/Abstract.php(315): Zend_Db_Adapter_Oracle->_connect() #1 /home/www/zf/application/modules/default/controllers/IndexController.php(30): Zend_Db_Adapter_Abstract->getConnection() #2 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Action.php(516): IndexController->indexAction() #3 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('indexAction') #4 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #5 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #6 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #7 /home/www/htdocs/shopping/necs/zf/index.php(29): Zend_Application->run() #8 {main} Request Parameters: array ( 'controller' => 'index', 'action' => 'index', 'module' => 'default', ) どこを確認すればよいかのサッパリわからず投稿させていただきました。 何卒よろしくお願いします。

    • 締切済み
    • PHP
  • zendのcontrollersについて

    Zendを始めたばかりのものです。 サーバ:XPで自営 Apache2,php5 Zendをダウンロードし、Cドライブのルートに「ZendFramework-1.9.0」 という名前で配置しました。 php.iniのinclude_pathの設定も変更し、 htdocsの直下にindex.phpを作成し <?php require_once 'Zend/Version.php'; //ライブラリの読み込み echo Zend_Version::VERSION; //現在のZend Frameworkのバージョンを表示 とすると、正常にバージョンが表示されます。 zendappsというフォルダーをhtdocsの中に作成し、index.phpに <?php require_once 'Zend/Controller/Front.php'; Zend_Controller_Front::run('../zendapps/controllers'); とするとエラーになります。(エラーは長いので後述) '../zendapps/controllers'の部分かとも思いますが、 お分かりになる方、教えていただけると幸いです。 エラーの内容 Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\ZendFramework-1.9.0\library\Zend\Controller\Dispatcher\Standard.php:242 Stack trace: #0 C:\ZendFramework-1.9.0\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\ZendFramework-1.9.0\library\Zend\Controller\Front.php(212): Zend_Controller_Front->dispatch() #2 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\zendapps\index.php(3): Zend_Controller_Front::run('../zendapps/con...') #3 {main} thrown in C:\ZendFramework-1.9.0\library\Zend\Controller\Dispatcher\Standard.php on line 242

    • ベストアンサー
    • PHP
  • Zend Frameworkが機能しなくて

    困っています。 Fedora11にZendFrameworkをDLして解凍して /usr/local/ZendFramework-1.9.3PL1 として入れました。 /etc/php.ini: ......... include_path = ".:/usr/local/ZendFramework-1.9.3PL1/library" ......... と設定し /etc/httpd/conf/httpd.conf: ......... LoadModule rewrite_module modules/mod_rewrite.so ......... <Directory "/var/www/html/zend/public"> AllowOverride All </Directory> と設定し /var/www/html/zend/public/.htacess: RewriteEngine on RewriteBase / RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php と設定し /var/www/html/zend/public/index.php: <?php require_once 'Zend/Version.php'; echo Zend_Version::VERSION; とし #service httpd restart とアパッチを実行し Firefoxブラウザのアドレス欄に http://localhost/index.php を入力しアクセスしたところブラウザに Not Found The requested URL /index.php was not found on this server. Apache/2.2.13 (Fedora) Server at localhost Port 80 と404エラーがでます。 ちなみに http://localhost/zend/public/index.php にアクセスすれば 1.9.3PL1 が問題なく表示されます。 しかしこれではZendフレームワークでWebアプリを組めません。 どうすれば解決できるでしょうか?

    • ベストアンサー
    • PHP
  • zend(phpフレームワーク)でトランザクション処理をしたいのですが

    zend(phpフレームワーク)でトランザクション処理をしたいのですが…。 いつもお世話になっております。 zendでトランザクション処理をしたいのですが O/Rマッパーを使用した方法がわかりません…。 どなたかご存知この方参考サイト等あれば御教示お願いします。

    • ベストアンサー
    • PHP
  • ロリポップでZendを導入できますか?

    ロリポップでZendを導入しようとしていますが、エラーが出て困っています。 Zendの場所はユーザから見たら一番上のルート、つまり/home/sites/lolipop.jp/users/***/web/Zend としています。エラーは下記です。(***は私のユーザ名、/aaa/index.phpを実行しています。) Warning: require_once(Zend/Controller/Action.php) [function.require-once]: failed to open stream: No such file or directory in /home/sites/lolipop.jp/users/***/web/aaa/index.php on line 4 Fatal error: require_once() [function.require]: Failed opening required 'Zend/Controller/Action.php' (include_path='.:/usr/local/php5/php') in /home/sites/lolipop.jp/users/***/web/aaa/index.php on line 4 また、.htaccessにはphpのパスを通すため、下記のように書いています。 php_value include_path ".:/usr/local/php5/php:/home/sites/lolipop.jp/users/***/web/Zend/" .htaccessの場所は、Zendフォルダと同じくルートディレクトリです。(つまり/home/sites/lolipop.jp/users/***/web/ の下です。) また、念のため、.htaccessに下記の記述も試しましたが、だめでした。 php_value include_path ".:/usr/local/php5/php:/home/sites/lolipop.jp/users/***/web/" 何が悪いのでしょうか?あるいはそもそもロリポップへのZendの導入は無理なのでしょうか?

    • ベストアンサー
    • PHP
  • Zend_Layoutについて

    下記URLを参考にZend_Layoutを試しているのですが http://akrabat.com/tutorial/simple-zend_layout-example/ sidebar.phtmlで変数を出力する事ってできますでしょうか? 同フォルダのlayout.phtmlやscriptsフォルダのコンテンツを 表示するphtmlでは出力できるのですがこれだけ出力されない 状況です。 class IndexController extends Zend_Controller_Action { public function indexAction() { $this->view->list = '1'; } } それぞれのアクションメソッドに $response->insert('sidebar', $this->view->render('表示したいファイル名.phtml')); と指定してやればいい事ではあるのですが同様のファイルを複数 作成するのは微妙なので・・・ 例えば、sidebar.phtmlで展開し・・・ <ul> <? php if ($this->list == 1) : ?> <li>リスト1</li> <? else if ($this->list == 2) : ?> <li>リスト2</li> <? endif; ?> </ul> のような使用イメージです。 質問内容と若干ずれるのですが表示はZend_LayoutでするのとSmartyを 使うのとどちらがいいのでしょうか? 判断材料がなく困っているので参考までにご意見を伺えますと幸いです。

    • ベストアンサー
    • PHP
  • Zend framework リダイレクトでデータ受け渡し

    皆さん、お世話になります。 Zend frameworkで、練習として掲示板を作っていまして、 リダイレクトした時にデータを受け渡す方法を調べています。 環境 PHP5.2.8 + Zend framework1.7.1 windowsXP & Linux ■処理遷移 入力→確認→投稿完了 ■画面遷移 トップ画面→確認画面→トップ画面 トップ画面で入力フォームと記事の表示を行い、投稿された時は確認画面を挟み、投稿が反映されたトップ画面へと戻ります。 投稿時、フォームより入力されたデータに問題が無い場合は確認画面へ遷移させますが、 不備があった場合、一度トップ画面へリダイレクトし、どの項目に不備があったかを入力欄の横に表示させてあげたいと思っています。 フォワードだとURLが変わってしまうので、リダイレクトを使っています。 どこの項目かというデータをリダイレクトした時に渡してあげたいのですが、なにか方法はありますでしょうか? リダイレクトだとリクエストが全てリセットされてしまって、POSTなどで渡す事が出来ませんでした。 また、リダイレクト以外でURLを変えずに値を渡す方法などもあるのでしょうか? まだまだ未熟で大した知識もございません。 どうぞよろしくお願いいたします<(_ _)>

    • 締切済み
    • PHP
  • PHPのフレームワーク

    PHPのことはよく分かりませんが、いくつかのフレームワークがあります。 知らないながらもキーワードをあげると、Symfony,Smarty,Zendなど。 RubyではRubyOnRailsが圧倒的ですが、PHPの場合は、どれが有望あるいはどれがよいのでしょうか? 個人的趣味でお答えください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう