とりあえず、PHPで書いたチャットボックスです。
これを、徐々に人工無脳に仕立てあげていきます。
・・・・・・・・
今、世間で、ネットセキュリティについて取り沙汰されてるけど、
PHPやJavaScriptなどのスクリプト言語を使うと、いたって簡単に危険なサイトを作れてしまうんですね。
勉強していて、「これ、危ないんじゃない??」などとセキュリティホールになりそうな部分を見つける。
実際、悪用をしようとすれば、悪用できる。
まあ、私はしないけどね。
世の中でハッカーとか、クラッカーとかって言われてる人たちは、こういったセキュリティホールを巧みに利用して他人のコンピュータに侵入しているんでしょうね。
・・・・・・・・
・・・・・・・・
・・・・・・・・
PHPチャットのソース
HTML部分はカットしてあります。
スタイルシート部分
#contents {
width:600px;
border: medium solid #ff00ff;
padding:5px;
}
.chat_line {
border-top: medium solid #ff00ff;
height:22px;
}
<?php
ここからPHP文
// ユーザー名
$str_user_name = "";
// 送信ボタンが押されていれば
if (isset($_GET["chat_submit"])) {
issetというのは決まり文句らしいです。
$_GET[ ]というのもよく使うみたいです。
// 入力チェック
$isInputError = false;
if ($_GET["chat_user"] === "") {
左右完全一致判定には===を使うそう。
他の言語でいうところの==
// ユーザー名が入力されていない
$isInputError = true;
}
if ($_GET["chat_text"] === "") {
// コメントが入力されていない
$isInputError = true;
}
// 入力チェックに問題がなければ
if (!$isInputError) {
// 過去の書き込みを読み込む(ファイルの中身を全て読み込んで配列に格納)
$lst_file = file('chat.txt');
// 書き込むデータ
$data = htmlspecialchars($_GET["chat_user"] . ":" . $_GET["chat_text"]) . PHP_EOL;
htmlspecialchars()を書かないと、チャットのコメントの中にJavaScriptが書けてしまう。
PHP_EOLは/r/n(改行文字)と同じ。
//
$lst_file[] = $data;
// ファイルのオープン
$fp = fopen('chat.txt', 'w');
// ファイルがオープン出来たら
if ($fp){
// ロックを取得できたら
if (flock($fp, LOCK_EX)){
// 書き込む配列の開始位置の算出
$i_rows_limit = 15;
if (count($lst_file) < $i_rows_limit) {
// 制限以下の場合、全て書き込む
$i_write_start_point = 0;
} else {
// 制限以上の場合、制限数分のみ書き込む
$i_write_start_point = count($lst_file) - $i_rows_limit;
}
// 書き込み
for($i = $i_write_start_point; $i < count($lst_file); $i++) {
fwrite($fp, $lst_file[$i]);
}
//if (fwrite($fp, $data) === FALSE){
//print('ファイル書き込みに失敗しました');
//}else{
//print($data.'をファイルに書き込みました');
//}
// ロックを解放
flock($fp, LOCK_UN);
}else{
//print('ファイルロックに失敗しました');
}
}
// ファイルのクローズ
fclose($fp);
ここらへんの手順はPerlなどと同じ。
}
}
?>
<div id="contents">
<form action="index.php">
ユーザー名: <input name="chat_user" type="text" value="<?php echo $_GET["chat_user"]; ?>"><br />フォームの中にPHP文を書いている。この使い方は便利。
コメント: <input name="chat_text" type="text"><br />
<input name="chat_submit" type="submit" value="送信">
</form>
<?php
// ファイルの中身を全て読み込んで配列に格納
$lst_file = file('chat.txt');
// 配列の順序の反転
$lst_file = array_reverse($lst_file);
// 1行ずつ取り出して表示
foreach($lst_file as $row){
//echo $row;
print("<div class='chat_line'>" . $row . "</div>");
}
/*
$lst_file = array();
// ファイルオープン
$fp = fopen('chat.txt', 'r');
// ファイルがオープンできたら
if ($fp){
// ロックをかける
if (flock($fp, LOCK_SH)){
// ファイルの終端になるまで処理を繰り返す
while (!feof($fp)) {
// 1行読み込む
$lst_file[] = fgets($fp);
//$buffer = fgets($fp);
//print("<div class='chat_line'>" . $buffer . "</div>");
}
// ロックを解放
flock($fp, LOCK_UN);
}else{
//print('ファイルロックに失敗しました');
}
}
// ファイルのクローズ
fclose($fp);
// 配列の順序の反転
rsort($lst_file);
// 1行ずつ取り出して表示
foreach($lst_file as $row){
//echo $row;
print("<div class='chat_line'>" . $row . "</div>");
}
*/
?>

割合、近所にボーカルスクールが出来た。
行くかどうか考え中。
月謝制でいつでも辞められるから、気楽ではあるんだけど。
でも、昨日は、朝からハリキッテ裏声で歌っていたら、声がれしちゃって、
せっかくの体験レッスンで声が出ない!!
「きょうは調子悪いんですよね~」
とか言って言いわけしてたけど、
かえって、下手糞なボーカルの言いわけしているみたいで悔しかった。
くっそぉぉぉ。
このジャイアンヴォイスがぁぁぁ。。。
なまじっか、一度上手いとか言われただけに悔しい。
最近は本当に上手い人が「上手い」と言われて、自分が言われなくなって久しい。
それだけに悔しい。
本当に「上手い」にならないと、このプライドは取り返せない。
・・・・・・・・・・・・
・・・・・・・・・・・・
自分って、ライバルがいると燃える。
ベジータタイプの人間なのね。わかりやすい。
・・・・・・・・・・・・
・・・・・・・・・・・・
この本を読んでいる。
洋書のペーパーバックなんだけど、
マイケルクライトンの「MICRO」
以前は、洋書を読むのはかなり時間がかかっていたんだけど、
最近は、それこそ、サクサクと読める力が付いてきた。
嬉しいことだ。
英語の文章読解力がかなり高まっている。
それと、
CNN、BBCなんかをTVで観ていても、よく聞きとれる。
つまり、リーディング、リスニング、共に良いところまで来ているってことなんですね。
TOEICで次は900点を確実に狙っていこう。
絶対900点以上。
ちなみに、MICROは現在160ページ/400ページ
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・

ゆくゆくは、LINUXの自作OSの作り方でも勉強しようかな。
自作PCすらやったことないけど。
なんか、
知りたい、とか、
できるようになりたい、っていう欲求がいつのまにか、「渇望」になって、自分を突っ走らせるこの自分の癖というか、特徴というか、この自分は、また何か学ぶのでしょう。
まあ、
シロウトから始めて、
ゲームプログラミングをやってしまったあたりで、大きなハードルは越えているので、
自作OSも数年内に作っていそうです。
・・・・・・・・・
韓国語 学習日記새 정부 장관 후보자들의 인사청문회가 다음주부터 열리지만 일부 부처는 청문회 일정조차 잡지 못하고 있습니다.
초대 내각의 온전한 출범까지는 상당한 시간이 걸릴 것 같은데요,
청문회 일정과 제기되는 의혹들을 김병용 기자가 보도합니다.
excite翻訳
新政府長官候補者などの人事聴聞会が来週から開かれるが一部部署は聴聞会日程さえつかめなくなっています。
初代内閣の完全なスタートまでは相当な時間がかかりそうなところで、
聴聞会日程と提起される疑惑をキム・ビョンヨン記者が報道します。
새新 정부政府 장관長官 후보자들의候補者などの 인사人事 청문회가聴聞会が 다음주부터来週から 열리지만開かれるが 일부一部 부처는部署は 청문회聴聞会 일정조日程さえ 차 잡지つかめ 못하고なく 있습니다.なっています。
초대初代 내각의内閣の 온전한完全な 출범까지는スタートまでは 상당한相当な 시간이時間が 걸릴かかり 것 같은데요,そうなところで、
청문회聴聞会 일정과日程と 제기되는提起される 의혹들을疑惑を 김병용キムビョンヨン 기자가記者が 보도합니다.報道します。
・・・・・・・・・・・
韓国語は、毎日、欠かさずにKBS↑↑のニュースを翻訳することを続けていたら、もう少しで大きなステップを越えそうな感じになっている。
現在は、ゆるいプラトーになっていて、
ただ、まだ、初心者レベルなので、このプラトーはすぐに終わるんだけど、
次に来る中級レベルまでは、比較的先が見えている状態。
そんな、「キツイ」といった感じではなく、覚える単語量と学習量をこなしていけば、中級レベルまではいたって平穏に到達できそう。
英語も、中国語も、韓国語も毎日触れているってことが大事で、毎日触れていればどんなに緩やかでも丘(プラトー)を登っていきますから。
それが、今の英語のリスニング、リーディングの高レベル状態(自己内比較)へ導いたものでもありますから。
(自己内比較・・・TOEIC800点 から 確実に900点に向けて向上している自己内の到達度の比較)
・・・・・・・・・
・・・・・・・・・
帰納的に学習することはできる。
しかし、帰納的に学習するためには、毎日触れていないといけない。
生まれて初めて見るプログラミング言語を、
ただ、見よう見まねで一文字一文字写す。
すると、プログラムが動作する。
普通だったら。プログラミングは演繹的に勉強するんだけど、
例えば、テキストを見てハローワールドから順に打って行って、徐々に難しくするみたいな。
ちゃんと、法則性や決まりを最初に教えて、手順を追ってやっていく。
これが演繹的な学習。
しかし、帰納的に学習することも可能だ。
毎日、ちゃんと触れていれば。
私の場合、中国語と韓国語は、とりもなおさず、毎日の一言日記で帰納的に学習している面が大きい。
・・・・・・・
積み重ねが大事だね。
日
文章読解能力が改善する
英
Text reading comprehension capability improves.
韓
문장독해 능력이 개선한다
ムンジャンドクヘ ヌンリャギ ケサンハダ
中
文章阅读和理解能力改善
wen2 zhang1 yue4 du2 he2 li3 jie3 neng2 li4 gai3 shan4