スクロール位置を取得する
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;// ex) 100(px)
TrackBack URL :
Comments (2)JavaScript、PHP、MySQLを使ったり
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;// ex) 100(px)
TrackBack URL :
Comments (2)以下のように、Zend_Controller_Router_Route_Regexを使用する。
$front->getRouter()->addRoute( 'page', new Zend_Controller_Router_Route_Regex( 'page_(\d+)\.html', array( 'controller' => 'Index', 'action' => 'page' ), array( 1 => 'pageid' ) ) );
Actionからは以下のコードでマッチした部分を参照できる。
$this->_getParam('pageid');
但し、URLヘルパーやこのクラスのメソッドを使用する場合は第4引数が必要となる。
$front->getRouter()->addRoute( 'page', new Zend_Controller_Router_Route_Regex( 'page_(\d+)\.html', array( 'controller' => 'Index', 'action' => 'page' ), array( 1 => 'pageid' ), 'page_%d.html' ) );
TrackBack URL :
Comments (0)/home/user/directory配下のファイルの所有者を全てftp_userにする。
chown -R ftp_user /home/user/directory
TrackBack URL :
Comments (0)var_dump($_SERVER['SERVER_NAME']); //string(16) "sample.org"
マルチドメイン、シングルホスティングの時には使いそうだ。
TrackBack URL :
Comments (0)インストール直後は何もパスワードが設定されていないので注意すること!
SET PASSWORD FOR root@localhost=PASSWORD('password');
TrackBack URL :
Comments (0)vi /etc/ssh/sshd_config
以下のオプションをnoにしてあげる。
PermitRootLogin no
TrackBack URL :
Comments (0)その前にポート3306は初期状態では閉じられているので開ける。
iptables -I INPUT -j ACCEPT -p tcp -s x.x.x.x --dport 3306
IPはクライアント側のIP。このIPからだけ接続できる。192.168.1.%のようにワイルドカードも使えるがセキュリティには注意しなくてはならない。
GRANT ALL PRIVILEGES ON *.* to user@'192.168.1.1' IDENTIFIED BY 'password';
TrackBack URL :
Comments (0)vi /etc/vsftpd/vsftpd.conf
chroot_list_enableとchroot_list_fileの記述を以下のように修正する。
chroot_list_enable=YES chroot_list_file=/etc/vsftpdd.chroot_list
vi /etc/vsftpd/vsftpd.conf
ファイルに制限したいユーザ名を書く。
ftp_user
再起動を忘れずに。
/etc/init.d/vsftpd restart
ftp_userがホームディレクトリより上にいけなくなる。
TrackBack URL :
Comments (0)コマンドラインにおけるオプションの設定・取得。|の後がエイリアス名、=の後の文字列で型を指定できる。
try {
$options = new Zend_Console_Getopt(
array(
'help|h' => 'help.',
'zfm|m=s' => 'module',
'zfc|c=s' => 'controller',
'zfa|a=s' => 'action'
)
);
$options->parse();
}
catch(Zend_Console_Getopt_Exception $e){
die($e->getMessage() . ' : ' . $e->getUsageMessage());
}
Zend_Controller_Request_Simpleがポイント。アクション、コントローラ、モジュールを引数に指定してリクエストオブジェクトを取得する。
if(isset($options->zfa) && isset($options->zfc) && isset($options->zfm)){
$request = new Zend_Controller_Request_Simple(
$options->zfa,
$options->zfc,
$options->zfm
);
$front = Zend_Controller_Front::getInstance();
$front->setRequest($request);
$front->setRouter(new Custom_Controller_Router_Cli());
$front->setResponse(new Zend_Controller_Response_Cli());
$front->throwExceptions(true);
$front->addModuleDirectory(dirname(__FILE__) . '/application/modules');
$front->dispatch();
}
Custom_Controller_Router_Cliはこんな感じ。
<?php
require_once 'Zend/Controller/Router/Interface.php';
require_once 'Zend/Controller/Router/Abstract.php';
class Custom_Controller_Router_Cli extends Zend_Controller_Router_Abstract implements Zend_Controller_Router_Interface
{
public function assemble($userParams, $name = null, $reset = false, $encode = true) {}
public function route(Zend_Controller_Request_Abstract $dispatcher) {}
}
基本的には以上で実行できるが
アクセスコントロールを行っている場合は上述のコードよりも先にアクセスできるようにしなければならない。以下は一例。
$sesion = new Zend_Session_Namespace('global');
$sesion->userLevel = 'admin';
$acl = new Zend_Acl();
$acl->addRole(new Zend_Acl_Role('guest'));
$acl->addRole(new Zend_Acl_Role('admin'), 'guest');
$acl->add(new Zend_Acl_Resource('guestPage'));
$acl->add(new Zend_Acl_Resource('adminPage'));
$acl->allow('guest');
$acl->allow('admin');
$acl->deny('guest', 'adminPage');
$acl->allow('admin', 'adminPage');
Zend_Registry::set('acl', $acl);
基本的には一般ユーザが閲覧(実行)できる場所に、このファイルを配置するのは良くない。
TrackBack URL :
Comments (0)OS名
echo PHP_OS;
パスを区切る文字
echo PATH_SEPARATOR;// linux => ';', win => ':'
ディレクトリを区切る文字
echo DIRECTORY_SEPARATOR;// linux => '/', win => '\'
TrackBack URL :
Comments (0)