[xampp]PhpMyAdminとhtmlのUTF-8が文字化け


xampp環境でPHPをちょろっと書いて、iPhone専用サイト検索エンジンを押忍番に、こしらえようとしている舞ですが、xampp + MySQL + PHP + phpMyAdminで文字化けするじゃないですか。
最初は、phpMyadmin上の日本語データが文字化けして、php.iniを書き換えて解決したと思いきや、読み込んでhtml上に表示したデータが文字化け。これに悩まされました。DB上のフォーマットもサイトのテキストも共にUTF8の場合は、注意が必要ですぞ。
 調べた末に、最後は、my.iniに以下を追加。

##################
[mysql]
default-character-set = utf8

[mysqldump]
default-character-set = utf8

[mysqld]
skip-character-set-client-handshake
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[client]
default-character-set = utf8

###################
いやー、舞が解決したわけではないんですけどね。はは。

Category: 未分類 | No Reviews » |Author:admin | Date:2010-02-27

[apache]ubuntuで.htaccessが有効にならない[サーバ管理]


アクセス制限をかける為の.htaccessがubuntuのデフォルトでは、有効でないことが判明。やってくれるぜ、ubuntuさんよ。
しょがないので、設定を変更。設定をまず有効にする。

% sudo a2enmod rewrite

ファイルを開いて編集(vi使ってください。)

% emacs /etc/apache2/sites-available/default

AllowOverride の値をNoneからAllへ設定を変更する。

<Directory /var/www/>
:
# AllowOverride None  # こっちの設定から
AllowOverride All  #こっちの設定へ
:
</Directory>

apache2を再起動する。

% /etc/init.d/apache2 restart  

ちなみに.htaccessファイルの中身は、こんな感じ。

order deny,allow
deny from all
allow from XXX.XXX.XXX.XXX(うちのIP)

いやー、apt-getも、こんなんでハマるとなんだかな。ハマー。

Category: サーバー管理Tips | No Reviews » |Author:admin | Date:2010-01-24

(初歩の初歩)ポインタのポインタ


C言語のポインタのmy復習です。本当に初歩的なことをねちねち書きました、すみません。

①(まず)ポインタ

ピクチャ 1


変数には実態(収まっているものの内容)と、アドレス(収まってる場所)があります。

int a =5;

int* p=&a;

この時、変数aに入れた5が実態。変数aがメモリ上のどこにあるのか、

そのアドレスが&aとなります。&aはアドレスなので、ポインタ型じゃないと受け取れません。

アドレスを取り出すのがポインタ型(ここではint*)。これがpです。

#include <stdio.h>

int main (int argc, const char * argv[]) {

int a = 5;

int* p = &a;

printf(“a = %d, &a = %d, p = %d”,a, &a, p);

return 0;

}

<結果ログ>

a = 5, &a = -1073744280, p = -1073744280

②(で、)ポインタのポインタ(??のところ)

ピクチャ 2

ポインタ自体もアドレスが入っていようが変数です。変数として、実態とアドレスがあります。(アドレス値のくせに、アドレス値が収まっている場所のアドレスがさらにある、というのがややこしい。ややこしいけど当たり前。そりゃメモリ上のどっかに住所があるはず。)pの実態は上のとおり、ここでは、-1073744280 という値であり、これはaのアドレスに当たります。pは int* というポインタ型だったので、pのアドレスを取り出すには、int** というポインタのポインタ型で取り出さなくてはいけません。

int a;

int*  p=&a;

int** pp=&p;

&は、「アドレスちょーだい」という記号です(マイ解釈)。


#include <stdio.h>

int main (int argc, const char * argv[]) {

int a = 5;

int* p = &a;

//printf(”a = %d,&a = %d,p = %d”,a, &a, p,);

int** pp=&p;

printf(“pp=%d,&p=%d,p=%d”,pp,&p,p);

return 0;

}

<結果ログ>

pp=-1073744284,&p=-1073744284,p=-1073744280

※(補足)

アドレスのログは、printf(”0x%x\n”, p);

で16進数での表記が基本、ということをしりませんでした。

「マイナスなんておかしいじゃないか!」ということに気付きもしません。。。

上は恥さらし記念として残します。

ちなみに、

//×10進法で

printf(“pp=%d,&p=%d,\n”,pp,&p);

//○16進法で

printf(“pp=0x%x, &p=0x%x\n”,pp,&p);

<結果ログ>

//×10進法 (わかりにくい)

pp=-1073744348,&p=-1073744348,

//○16進法(わかりやすい)

pp=0xbffff624, &p=0xbffff624

でした。


Category: 初歩の初歩 | No Reviews » |Author:mitchell | Date:2010-01-22

【プログラミング】C言語のポインタ【3分で分かった気になる】


C言語のポインタについてです。ここは、いつも説明に戸惑います。理解度によって解説の工夫が必要だなと思ったりします。ピンとくる解説に巡り合うまで、頑張って勉強して下さい。下は、左側のプログラムがどのようにメモリ上に展開されるかのイメージ図です。

pointer1
基本的にポインタ型もint型もメモリ上は扱いは同じです。違うのは、ポインタ型は、その中の値が、また別な変数などへのアドレスを指している可能性があるのに対して、int型などは、そのままの値がすぐに使えるということです。
上の状況ですと、(int*)型の変数pは、int型変数アドレスの何処かを指している可能性がありますし、意図的に指すこともできます。下の図では、int型変数tのアドレスをアドレス演算子&を使って指し示すようにしています。これでpには、tのアドレスが入り、そのアドレスを使って、ポインタ変数pからtの値の操作が可能となります。*p = 21;という感じで、逆参照演算子*を使います。
pointer2
メモリイメージと中の値が実値なのかポインタ値(アドレス値)なのかを意識すると、迷わなくなると思うのですが、なかなかねー。

Category: プログラミング | No Reviews » |Author:舞 | Date:2010-01-21

【Webalizer】sitesの意味が間違って広まっている件について【サーバ管理】


アクセス解析ソフト、WebalizerのSiteの意味が微妙に誤って広まっているようなので、ここで訂正の記事でも書いておこう。
これは、ソースをコンパイルした時に、拾った中のREADMEからの”Sites”の説明です。


Sites

  Each request made to the server comes from a unique 'site', which can
be referenced by a name or ultimately, an IP address.  The 'sites'
number shows how many unique IP addresses made requests to the server
during the reporting time period.  This DOES NOT mean the number of
unique individual users (real people) that visited, which is impossible
to determine using just logs and the HTTP protocol (however, this
number might be about as close as you will get).

簡単に訳すと、
“sites”は、参照したユニークなIPアドレスの数であって、決して、サイトを訪れたユニークな個人ユーザーの数を示すわけではない。
と書かれているようです。
ググると、1年間に訪れたユニークユーザー数を示すみないな記載が多いですが、ユニークユーザーでもDHCPとかでたらいまわしになっている場合とかは、カウントされていないので、少し注意が必要ですね。
Webalizerのデータで、SitesがVisitsを上回る事がある件について調べていたんだが。こっちは、sitesとvisitsの求め方の違いによるらしい。

Category: サーバー管理Tips | No Reviews » |Author:舞 | Date:2010-01-20

Page 1 of 812345»...Last »