たぶん常識なんですかね?
ものすごく詰まったので、記載。
setTimeOutで10秒後にホゲホゲを繰り返すみたいなことをやりたくて、
単純に
var str = "文字列"
setTimeOut("hogehoge(" + str + ")",100);
でやっていたところエラーでつまりました。
俺としては
hogehoge(文字列)
をやってるつもりだったのだけれど、
実際には
hogehoge([HTMLDivElement])
が実行されていて、できませんよと。
setTimeoutで呼び出した場合、
オブジェクトとして扱われるのでホゲホゲなんで、
なんだか難しい説明がありましたが動いたから良しとした。
setTimeOut("hogehoge('" + str + "')",100);
のように変数をシングルで囲ってあげなさいと言われました。
参考
JavaScriptのsetInterval()に引数ありの関数を渡す場合
文字のフェードイン・フェードアウト
2008年12月11日木曜日
2008年12月8日月曜日
初めてのjquery.js
おそらく一番使う使い方だけど、
まったく理解していないからわからなかったので、記載。
idの指定は$("#id_name")、クラスの指定は$(".class_name")
cssみたいで私たち半端ものには親しみやすい感じ。
jqueryで指定のdivの子要素にあたるclassの取得
$("#targetID").children(".targetClass");
これで取得したクラスのstyleを操作するには
$("#targetID").children(".targetClass").css("display", "block");
あーわかりやすすぎて、全然わかんなかった。
すばらしいリファレンス
jQuery日本語リファレンス
まったく理解していないからわからなかったので、記載。
idの指定は$("#id_name")、クラスの指定は$(".class_name")
cssみたいで私たち半端ものには親しみやすい感じ。
jqueryで指定のdivの子要素にあたるclassの取得
$("#targetID").children(".targetClass");
これで取得したクラスのstyleを操作するには
$("#targetID").children(".targetClass").css("display", "block");
あーわかりやすすぎて、全然わかんなかった。
すばらしいリファレンス
jQuery日本語リファレンス
ラベル:
ajax jquery
2008年12月2日火曜日
javascriptでのdivのスライド
無駄にはまった、書いておく。
setTimeoutを使ってのdivのスライド。
setTimeoutでのstyleのtopに数を加算していく場合、
以下では動かない。
×直では動かない。
document.getElementById('target').style.top += move_num + "px";
○変数で加算していって、styleに代入。
move_num += 5;
document.getElementById('target').style.top = move_num + "px";
60px上に移動する場合の例)
function slide_up() {
move_num -= 5;
hr.style.top = move_num + "px";
if((60 + move_num) <= 0) {
document.getElementById('target').style.top = -60 + "px";
clearTimeout(timer);
return;
}else{
var timer = setTimeout("slide_up()",0);
}
}
clearTimeoutでキャンセルすることを忘れるな。
setTimeoutを使ってのdivのスライド。
setTimeoutでのstyleのtopに数を加算していく場合、
以下では動かない。
×直では動かない。
document.getElementById('target').style.top += move_num + "px";
○変数で加算していって、styleに代入。
move_num += 5;
document.getElementById('target').style.top = move_num + "px";
60px上に移動する場合の例)
function slide_up() {
move_num -= 5;
hr.style.top = move_num + "px";
if((60 + move_num) <= 0) {
document.getElementById('target').style.top = -60 + "px";
clearTimeout(timer);
return;
}else{
var timer = setTimeout("slide_up()",0);
}
}
clearTimeoutでキャンセルすることを忘れるな。
ラベル:
javascript
2008年11月21日金曜日
javascriptによるformの値を取る方法
javascriptによるformの値を取る際、
radioボタンやcheckboxは一度for文で回す必要がある。
複数ある中から、ひとつを探すわけだから当たり前か・・わからんかった。
以下サンプルソース
<form action="#" name="fName">
<input name="radioName" value="0" type="radio">
<input name="radioName" value="1" type="radio">
<input name="radioName" value="2" type="radio">
<input name="radioName" value="3" type="radio">
</form>
radioボタンやcheckboxは一度for文で回す必要がある。
複数ある中から、ひとつを探すわけだから当たり前か・・わからんかった。
以下サンプルソース
<form action="#" name="fName">
<input name="radioName" value="0" type="radio">
<input name="radioName" value="1" type="radio">
<input name="radioName" value="2" type="radio">
<input name="radioName" value="3" type="radio">
</form>
2008年11月20日木曜日
PHP:$_SERVER サーバ環境変数
PHPでは、サーバに関する環境変数はグローバル変数$_SERVERに格納されます。
HTTP_REFERERやREMOTE_ADDR、PHP_SELFなどスクリプト構築において欠かせない変数群を簡単に取得できるので、それぞれ暗記しておいて損はないです。
$_SERVER['GATEWAY_INTERFACE'] | CGIのバージョン |
$_SERVER['SERVER_NAME'] | サーバ名 |
$_SERVER['SERVER_SOFTWARE'] | サーバID |
$_SERVER['SERVER_PROTOCOL'] | プロトコル名・リビジョン(HTTP/1.0) |
$_SERVER['REQUEST_METHOD'] | リクエストの種類(HEAD・POST・GET・PUT等) |
$_SERVER['QUERY_STRING'] | クエリーを格納 |
$_SERVER['DOCUMENT_ROOT'] | サーバのルートディレクトリ |
$_SERVER['HTTP_ACCEPT'] | Acceptヘッダの内容 |
$_SERVER['HTTP_ACCEPT_CHARASET'] | Accept-Charasetヘッダの内容(eucなど) |
$_SERVER['HTTP_ACCEPT_ENCODING'] | Accept-Charasetヘッダの内容(gzipなど) |
$_SERVER['HTTP_ACCEPT_LANGUAGE'] | Accept-Languageヘッダの内容(jpなど) |
$_SERVER['HTTP_CONNECTION'] | Connectionヘッダの内容(Keep-Aliveなど) |
$_SERVER['HTTP_HOST'] | Hostヘッダの内容 |
$_SERVER['HTTP_REFERER'] | 現在のページへのリンク元のURLを格納。 ※ブラウザによっては設定しない場合や'Hidden-Referrer'などと設定する場合があり、必ずしも取得できるとは限らない。 |
$_SERVER['HTTP_USER_AGENT'] | User_Agentヘッダの内容 (compatible; MSIE 6.0; Windows NT 5.0など) |
$_SERVER['REMOTE_ADDR'] | クライアントのIPアドレス |
$_SERVER['REMOTE_PORT'] | クライアントマシンで使用されているポート番号 |
$_SERVER['SCRIPT_FILENAME'] | 実行中のスクリプトの絶対パス |
$_SERVER['SERVER_PORT'] | サーバで使用されているポート番号 |
$_SERVER['SERVER_SIGNATURE'] | サーバのバージョン・ヴァーチャルホスト名 |
$_SERVER['PATH_TRANSLATED'] | 実行中のスクリプトの物理パス |
$_SERVER['SCRIPT_NAME'] | 実行中のスクリプトのパス |
$_SERVER['REQUEST_URI'] | 指定されたURI |
$_SERVER['PHP_SELF'] | 実行中のスクリプトのドキュメントルートに対する相対パス ※PHPスクリプトなどで、自身にフォームを送信したい場合などにactionにこの変数を設定することが多い。 |
コピペですいません。
元ネタありがとうございます。
STUDIO WING
ラベル:
php $_SERVER
2008年11月12日水曜日
phpによるメール
// カレントの言語を日本語に設定する
mb_language("ja");
// 内部文字エンコードを設定する
mb_internal_encoding("UTF-8");
// 件名
$subject = 'メールのタイトル';
// 本文
$mailbody = 'メールの内容';
// メール送信
mb_send_mail("info@hogehoge.com",$subject,$mailbody);
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
「info@hogehoge.com」の部分が宛先メールアドレス。
「$subject」の部分が件名。
「$mailbody」の部分が本文。
文字化けの問題が以外に多いということなので、
念のため記述。
元ネタコピペです。
mb_language("ja");
// 内部文字エンコードを設定する
mb_internal_encoding("UTF-8");
// 件名
$subject = 'メールのタイトル';
// 本文
$mailbody = 'メールの内容';
// メール送信
mb_send_mail("info@hogehoge.com",$subject,$mailbody);
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
「info@hogehoge.com」の部分が宛先メールアドレス。
「$subject」の部分が件名。
「$mailbody」の部分が本文。
文字化けの問題が以外に多いということなので、
念のため記述。
元ネタコピペです。
2008年11月11日火曜日
.htaccessの小技編 - 特定のファイルだけ守る
アクセス制限をかけるときに使う「.htpasswd」ファイルや、掲示板やアクセス解析CGIなどが出力するログファイルなどは、通常ですと、ブラウザーで直接アクセスすると、見れてしまいます。しかし、「.htaccess」の設定により、特定のファイルをHTTPで見れないようにすることができます。
上の例では、拡張子が「.log」のファイルを見れないようにします。これを応用して、たとえば、「.htaccess」と「.htpasswd」を見れないようにするには、
と記述すればいいのです。この記述は、正規表現によるパターンマッチを使っています。難しい言葉ですが、具体例を見て、応用してください。なお以下の例では、上記の例での1行目だけを記載しております。1行だけでは、有効になりませんので、必ず、3行記述するようにして下さい。
■ 特定の拡張子のついたファイルをすべて見れなくする。
これは拡張子が「.dat」であるすべてのファイルが見れないようになります。たの拡張子のファイルを見れないようにするには、「.dat」の部分を書き換えてください。
■ 指定したファイルだけ見れなくする。
これは、「access.log」というファイルだけが見れないようになります。他のファイル名にしたいときは、「access\.log」の部分を書き換えてください。ただ、「.」(ドット)の前には、必ず「\」を入れてください。
■ ワイルドカードを使う
これは、ファイル名のはじめが「foo」で始まって、すべての拡張子をもったファイルが見れなくなります。たとえば、「foo.dat」「foo.log」「foo.jpg」「foo.gif」は、すべて対象となります。ただ、「foo」のように拡張子を持たない場合には、適応されません。
■ 一文字ワイルドカードを使う
これは、「access」の次にくる一文字がなんであろうと、適応されます。ただし、ファイル名の最後は「.dat」である必要があります。たとえば、「access1.dat」「access2.dat」「accessA.dat」はすべて適応されます。ただし、「?」の部分が2文字になると適応されません。たとえば、「access11.dat」がそうです。この場合には、 とする必要があります。
■ 複数の文字列を同時に指定する。
これは、拡張子が「.gif」「.jpg」「.png」であるファイルのみを見れなくします。その他の拡張子を加えたいばあいには、「|」(パイプ)で区切って加えてください。
上であげた例で、見慣れない文字が入っていますが、それぞれについて意味をみていきましょう。
元ネタコピペです。
<Files ~ "\.log$">
deny from all
</Files>
上の例では、拡張子が「.log」のファイルを見れないようにします。これを応用して、たとえば、「.htaccess」と「.htpasswd」を見れないようにするには、
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
と記述すればいいのです。この記述は、正規表現によるパターンマッチを使っています。難しい言葉ですが、具体例を見て、応用してください。なお以下の例では、上記の例での1行目だけを記載しております。1行だけでは、有効になりませんので、必ず、3行記述するようにして下さい。
■ 特定の拡張子のついたファイルをすべて見れなくする。
<Files ~ "\.dat$">
これは拡張子が「.dat」であるすべてのファイルが見れないようになります。たの拡張子のファイルを見れないようにするには、「.dat」の部分を書き換えてください。
■ 指定したファイルだけ見れなくする。
<Files ~ "^access\.log$">
これは、「access.log」というファイルだけが見れないようになります。他のファイル名にしたいときは、「access\.log」の部分を書き換えてください。ただ、「.」(ドット)の前には、必ず「\」を入れてください。
■ ワイルドカードを使う
<Files ~ "^foo\.*$">
これは、ファイル名のはじめが「foo」で始まって、すべての拡張子をもったファイルが見れなくなります。たとえば、「foo.dat」「foo.log」「foo.jpg」「foo.gif」は、すべて対象となります。ただ、「foo」のように拡張子を持たない場合には、適応されません。
■ 一文字ワイルドカードを使う
<Files ~ "^access?\.dat$">
これは、「access」の次にくる一文字がなんであろうと、適応されます。ただし、ファイル名の最後は「.dat」である必要があります。たとえば、「access1.dat」「access2.dat」「accessA.dat」はすべて適応されます。ただし、「?」の部分が2文字になると適応されません。たとえば、「access11.dat」がそうです。この場合には、
■ 複数の文字列を同時に指定する。
<Files ~ "\.(gif|jpg|png)$">
これは、拡張子が「.gif」「.jpg」「.png」であるファイルのみを見れなくします。その他の拡張子を加えたいばあいには、「|」(パイプ)で区切って加えてください。
上であげた例で、見慣れない文字が入っていますが、それぞれについて意味をみていきましょう。
~ | パターンマッチであるという意味です。「=」でないことに注意してください。「~」より右側に記述したルールにマッチしたファイルを適応するということです。 |
^ | ファイル名の先頭であることを指示します。たとえば、 |
$ | ファイル名の最後であることを指示します。たとえば、 |
* | ワイルドカードです。 |
? | 一文字ワイルドカードです。 |
\ | 「.」「\」「|」「$」のような記号文字は、 |
(foo|bar) | 括弧内に、「|」で区切って記述すると、その中に記述された文字列のいづれかという意味となります。この場合には、「foo」もしくは「bar」という意味となります。 |
元ネタコピペです。
2008年11月7日金曜日
javascriptでフォームをチェック [fValidator]
かなり便利なjavascriptのフォームチェック。
fValidatorからfValidator.jsをダウンロードし、さらにmootools.jsをダウンロードします。
フォームを普通に書き、必須項目の場合はclassにfValidate['required']を付与するだけです。
またrequiredのほかにも以下のようなオプションがあるので、項目に合わせ適宜付与してください。
例) class="fValidate['required','email']" メールチェック 兼 入力チェック。
最初に初期化をする必要があります。
window.addEvent("domready", function() {
var exValidatorA = new fValidator("formのid名");
});
最初なんでか動かず。
mootools.js
fValidator.js
のセットだと確実に動く。
コピペですんませんがskuare.netさん、ありがとう。
カスタマイズする際はここが参考になる。
Chris McMichael
fValidatorからfValidator.jsをダウンロードし、さらにmootools.jsをダウンロードします。
フォームを普通に書き、必須項目の場合はclassにfValidate['required']を付与するだけです。
またrequiredのほかにも以下のようなオプションがあるので、項目に合わせ適宜付与してください。
required | 必須項目 |
alpha | アルファベット |
alphanum | アルファベットと数字 |
integer | 数字 |
date | 日付(mm/dd/yyyyの形) |
phone | 電話番号 |
url | URL |
例) class="fValidate['required','email']" メールチェック 兼 入力チェック。
最初に初期化をする必要があります。
window.addEvent("domready", function() {
var exValidatorA = new fValidator("formのid名");
});
最初なんでか動かず。
mootools.js
fValidator.js
のセットだと確実に動く。
コピペですんませんがskuare.netさん、ありがとう。
カスタマイズする際はここが参考になる。
Chris McMichael
ラベル:
javascript mootools
POSTに関するセキュリティー
POSTの際に、エスケープしないと色々と危険な話。
どうやら、ただhtmlspecialchars を使うだけでなく、
第二引数にENT_QUOTESをいれて シングルクォートもエスケープしなさいと。
ついでに文字コードもビシッと設定。
mb_internal_encoding
追記:2008/11/11
htmlspecialcharsでmb_internal_encodingしたらエラーでた。
消したら直ったので、理由は調べてない。
どうやら、ただhtmlspecialchars を使うだけでなく、
第二引数にENT_QUOTESをいれて シングルクォートもエスケープしなさいと。
ついでに文字コードもビシッと設定。
$hoge= htmlspecialchars($_POST['size'], ENT_QUOTES, mb_internal_encoding("UTF-8"));
mb_internal_encoding
追記:2008/11/11
htmlspecialcharsでmb_internal_encodingしたらエラーでた。
消したら直ったので、理由は調べてない。
2008年11月6日木曜日
正規表現 一覧
文字や数字の種類 | |
---|---|
.(ドット) | 改行文字を除く任意の1文字 |
[a-z0-9] | [ ]の中の任意の1文字(小文字大文字は別として扱う) |
[^a-z0-9] | [ ]の中にない任意の1文字 |
[ぁ-ん] | ひらがな |
[ァ-ヶ] | 全角カタカナ |
[ヲ-゚] | 半角カタカナ |
\w | アルファベット、数字又は下線 |
\W | アルファベット、数字、下線以外 |
\d | 数字 |
\D | 数字以外[^0-9]と同じ |
\s | 空白文字(スペース、タブ、改行) |
\S | 空白文字以外 |
\n | 改行 |
\r | リターン(復帰) |
\t | タブ |
\d | バックスペース |
\o033 | 8進数で「033」の文字 |
\x1b | 16進数で「1b」の文字 |
\cx | 制御文字 |
文字数を指定 | |
? | 直前の文字が0個または1個 |
* | 直前の文字が0個以上 |
+ | 直前の文字が1個以上 |
{x} | 直前の文字がx個 |
{x,} | 直前の文字がx個以上 |
{x,y} | 直前の文字がx個以上y個以下 |
?? | 直前の文字が0個または1個(最短一致) |
*? | 直前の文字が0個以上(最短一致) |
+? | 直前の文字が1個以上(最短一致) |
{x}? | 直前の文字がx個(最短一致) |
{x,}? | 直前の文字がx個以上(最短一致) |
{x,y}? | 直前の文字がx個以上y個以下(最短一致) |
文字の位置を指定 | |
^ | 行頭 |
$ | 行末 |
\b | 単語の区切り |
\B | 単語の区切り以外 |
その他 | |
\ | メタ文字のエスケープ( \\ → "\"自身を表わす) |
( ) | グループ化 |
\\1,\\2…… | 後方参照(グループ化した項目を後で参照する) |
$& | マッチした文字列全体 |
$` | マッチした文字列の前にある全ての文字列 |
$' | マッチした文字列の後ろにある全ての文字列 |
登録:
投稿 (Atom)