プログラミングの最近のブログ記事

phppro

| | コメント(1) | トラックバック(0)
PHPのコミュニティ ポータルサイト「PHPプロ!」
PHPのポータルサイトPHPプロのPHP講座を始めてみた。一応全部やるつもり。
細かいところまで解説が行きとどいていて書籍使ってやるよりも土台固めにはいいのかもしれない。

書籍だとどうしても見落としてる部分があったりするのでうっかり忘れがたくさんあった。

MYSQL、Ajax講座などもあるしあのZAPAさんの講座もあるので楽しみである。

基礎が固まらないとフレームワークなんて雲の上だし、何も見ないである程度打てるようにならねば。


あるサイトで掲示板作成のソースと解説が乗っていたのでとりあえずそれでやってみようとおもったんだが
どうもforeach文でエラーができていて動作させられなかったのでいろいろ探していたんだけど
俺の希望する最近書かれたものでソースがあり解説があるなんて親切なサイトさんはなかった><

配布スクリプトをみて勉強しようにもいかんせん俺にはまだ早かった。長すぎる><
pukiwikiみて勉強してるなんていってたことが恐ろしい。あのころの俺は何を考えて(;・∀・)

基本文法は春休み中にマスターしたいですね。基礎の基礎からやっていかないとだめっすね。

パーミッションでいいこと書いてあるのみっけたのでメモ(引用文)
1桁目の数字は自分の権限
2桁目の数字はグループの権限
3桁目の数字は他人の権限

権限の種類は数字で指定します。
1 = 実行できる
2 = 書き込める
4 = 読み込める

なので、全パターンはこうなります
1 = 実行できる
2 = 書き込める
3 = 実行できて、書き込める (1+2)
4 = 読み込める
5 = 実行できて、読み込める (1+4)
6 = 書き込めて、読み込める (2+4)
7 = 実行できて、読み書きできる (1+2+4)

MYSQLを動作させるためにコマンドプロンプトを使ってSQLを書いていくんですが問題が。
まず、MYSQLの文字コードはすべてutf-8で固定しているため文字化けの心配はない。

はずだったんですが、コマンドプロンプトがutf-8に対応していないということで対応せねばなりません。

ぷぎえもん日記 | 初めてのMysqlと文字化け
コマンドプロンプト内でのデータはshift_jisにする必要がある模様。
Windows上では基本的にshift_jisがデフォルトというかそれしか使えないです。
メモ帳なんかみるとわかるんですけども、euc-jp、utf-8は文字化けします。

mysql > SET NAMES sjis;
character_setの一部?をsjisに変更します。日本語の入力が可能になります。

INSERT文でデータを追加することができます。php側からMYSQL操作をして見ます。


//MYSQLに接続
$my_log = mysql_connect("サーバー名","ユーザー名","パスワード");

//データベースに接続
mysql_select_db("データベース名",$my_log);

//テーブル選択~データ読み出し
$my_row = mysql_query("SELECT * FROM データベース名",$my_log);
select文にてすべてのデータを取得する。


環境設定というかwindows環境での開発はいろいろ厄介なことが多い。
MySQL Control Centerというものがあるようだが検索してみても2004年あたり
の記事しかでてこないため却下。本家のダウンロードページ飛んでも404でしたし。


SQL文

| | コメント(0) | トラックバック(0)

MYSQLを操作する上での簡単なSQL文のまとめ。phpmyadminのよさがわかってきたこのごろ。
命令の最後には必ず;(セミコロン)をつけること。じゃないと動かないしなんにもならない。

mysql --user --password
MYSQLにログインする。ユーザー、パスワード。設定したものに設定。
ログインしないと権限を取得できないため何も指示ができない。エラー出る(アラーム付)
ログインの形式はほかにもあるようだが一番上にあったのでこれを覚えた。

SHOW DATABASES;
存在するデータベースをすべて表示する。データベースがある場合のみ。

CREATE DATABASES データベース名;
新しくデータベースを作成する。同名のデータベースは作成不可。
Windows環境では、大文字、小文字は同等に扱われるため注意が必要。

USE データベース名;
使用するデータベースを指定する。設定に成功するとそのデータベース内で作業できる。

SHOW TABLES;
データベース内にあるすべてのテーブルを表示する。ない場合は出ない。

CREATE TABLES テーブル名;
テーブルを作成する。データベース作成時と決まりなどはほとんど一緒。


1byte=8bit。8bit=2^8=256=-128~127

整数型 バイト数
TINY 1,SMALLINT 2,MEDIUMINT 3,INT 4,BIGINT 5,

文字型
CHAR,VARCHAR

日付
DATETIME 0000-00-00 00:00:00 y-m-d h:m:s
DATE 0000-00-00y-m-d
TIMESTAMP 00000000000000 ymdhms
TIME 00:00:00 h:m:s
YEAR 0000 y

INSERT INTO テーブル名(追加するテーブル) VALUES (値,値,値);
データの値はテーブルのフィールドの型と同一のもの。
文字列は'(シングルクオーテーション)で囲む。PHPは"(ダブルクオーテーション)だけど。

SELECT * FROM テーブル名;
選択したテーブル内のデータを*(ユニバーサルセレクタ:全て)表示させるコマンド。
SELECTは条件を指定して特定のものを呼び出すときにも使用することができる。

DELETE FROM テーブル名 (WHERE 条件);
条件を指定しない場合は全データ削除なので注意。条件に一致したデータを削除することができる。

 

PHP+MYSQL

$mysql_con = mysql_connect("サーバ名","ユーザー名",パスワード);
その名のとおりMYSQLへコネクトする。まあ接続。成功するとtrue、失敗するとfalseを返す。
このまま打ち込むよりもモジュール的な管理を用いて変数等に代入しておくといいのかもしれない。

[example]
$server = サーバー名;
$db_user = ユーザー名;
$db_pass = パスワード;

$mysql_con = mysql_connect("$server","$db_user","$db_pass");

まあこのぐらいでとめておこう。いままでやってなかった分phpの書き方も忘れてた。
環境導入でやや戸惑ったところもあって時間がかかったが少しはやっていかないと。
実際にいじってみてわかったが、全くPHP組めない。自慢じゃないがまじめに組めない。

BBSを製作してみようというあれもあるが基本機能はまあソースなどを参考にできるのかもしれないが
phpでアクセス情報を取得して製作するアクセス禁止設定とか。まあ.htaccessでやればいいのかもだが。
配布しても恥ずかしいだけなのでしないがある程度形になったらするかもね。

ディスガイアも落ち着いたといえば落ち着いたんだが、落ち着いてないといえば落ち着いてない。
MYSQLにデータ格納して呼び出すのはある程度できそうだがどうかねぇ手間かけるほどのデータの価値があるのか。

レベル9999まであげたし、あとは転生繰り返して最強武器取ってやるくらいなんだけどさ。

 

 

 

急遽ですがEclipse+JavaとOracleをセッティングする必要が生じたため慌ててメモ。

最新版の3.3.1が、言語パック未対応なので3.2.2をDLしてきます。
http://archive.eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/index.php

上記URLに過去のアーカイブがあるのでその中から3.2.2をDLしてきます。

次に、日本語パックのDLをしてきます。
http://download.eclipse.org/eclipse/downloads/index.php

上記URLの下記に言語パック3.2.2があると思うのでその中から日本語パックをDL。
「plugins」フォルダと「features」フォルダを上書きして言語パック適応完了です。

起動してみるとわかりますがメニューからすべて日本語になっています。すばらしー。

Oracle
http://www.oracle.com/technology/software/products/database/xe/index.html
より「Oracle10g」をDLすることができますが無料ユーザー登録?が必要です。

全世界対応なので当然日本語環境に対応しています。
商用データベースということで推奨スペックが高いのでご注意を。

インストーラの指示に従ってインストールを進めていけばいいです。

セッティングは完了。あとはのちのちいろいろ書いていくことにします。

参考サイト
Eclipse(最強のフリーJava開発ツール)をインストールしよう
DB界に衝撃が走る! Oracle 10g の無料版ベータが配布開始! :: Drk7jp


作ってみようと思ったがたぶん完成しない挫折予定。

$_POST:postしたデータの格納先

isset:データ入力されたかチェック
htmlspecialchars:HTML のマークアップ用文字を取り除く場合に有用。XSS対策
ENT_QUOTES:シングル、ダブルクオート 共に変換
mb_convert_kana:半角・全角などの変換
strlen:文字列の長さを返す
preg_match:正規表現によるマッチングを行う

name配列に格納するために$_POST["name"]とし中身がない場合エラー配列に文字格納。
エラー配列はinputの隣に表示させる。初期値は""=なしのため格納されなければ何も表示なし。

mailアドレスのエラーチェックはうまくいくんだけど名前チェックがうまくいかねーwww。

その前に同一ファイル内で行うかモジュール別に分けるか考えることが必要だったぜ。


追記:()の閉じ位置をミスしてるだけというなんとも初歩的なミス。
テキストエディタだけでやるのは限界か?デバッグとか環境いれようか。

---
もうちょっと勉強してから作ることにするか。今はHP調整が最優先だし。

あと設計をもう少しまともにやらないとダメポ。とりあえず構想。
◇メールフォーム
├ 情報入力モジュール
├ 入力確認モジュール(エラーチェックなどを含む)
└ メール送信モジュール(送信完了画面など)

1.情報入力モジュール
名前、メールアドレス、内容を記述してもらい、入力確認モジュールに値を渡す

2.入力確認モジュール
エラーならまず返す。入力確認で送信する内容確認する。

3.メール送信モジュール
処理でメール送信する。画面表示はメール送信完了とかにして戻る系の設定。

とりあえず配布スクリプトみて勉強することにします><
なかなかいじりやすくてXHTMLで構成されているのないから編集がめんd

-------
んで以前使っていたのをつかおうと思ったらutf-8対応してねーじゃん。
ということでphpスクリプト探してたんだけどレイアウトに合わせるのめんdってことで
結局作成していました。暫定ではできたけど細かいところにバグがありそうです。

テストを重ねて完成したら公開します。ってかそっこーでデバッグおわらせないと。
一応明後日からEG正式公開予定です。ああ、やることがたくさn。

モジュール的には大体設計通り。というか参考書通りといったほうがただしいか。

---
mb_send_mail関数を使用する際は引数を渡して情報を送信する。
当方使用のxreaだとセーフモードとやらで5つ目の引数を設定すると警告が出る。
またセーフモードはPHP6.0にて削除されるようだ。

mb_send_mailには引数を設定することは前述のとおりだが具体的にいうと(順不同なのかも
mb_send_mail(宛先、題名、内容、送信者(ヘッダー情報)
となり
宛先:$mailto,題名:$subject,内容:$main,送信者:$nameとすると

mb_send_mail($mailto,$subject,$main,"From:$name")となる。
んでこれらの情報が入力されているときのみ送信されるようにifでチェックをかければよい。

XreaだとFromを特に設定しない場合送信者はanonymousとなった。
anonymous FTPとは? IT用語時点e-words
たぶんこれのことだろ。

バグはごり押しでとりあえず使える程度になった。あとは迷惑フォルダ脱出をどうするか。
それと改行コードがおかしいのか表示上の改行を受信すると2行分改行されるのぐらいか。

メールアドレスは必須にしていないが入力する場合正規表現チェックをいれねばならん。
となったときにどうflgを建てようか。入ってなかったらerrorflgがたつっていうのはいいんだが。
入力してあるときに別のflgを立ててそのなかでif文をたててチェックするとかか?まあいいやってみる。

※AM5.00。今日は1日これでおわtt
----
mailの正規表現をいれてみたらおもいっきり合ってるのにはじかれて調べてみた。
あまりの多さに驚愕した。まあ形態は視野に入れないとしてどれにするかな。

うまくいかないので結局正規表現はなし。アドレスは任意だし厳密である必要もない。
企業サイトじゃあるまいしRECとかやる必要もないわけだし。うん。
というかあれだエラーしかかえさなorz。

もう寝る。もとい起きる。

ELEMENTALGARDEN-お問い合わせ-
テストとかしてみたい人はどうぞ。エラー出たり表示おかしかったら言ってくれると感激です><
返信はしないのでご安心?



参考サイト
PHP関数リファレンス/Ray
PHP関数リファレンス/php.net
2php:PHP mb_convert_kana();
pspspot








このアーカイブについて

このページには、過去に書かれたブログ記事のうちプログラミングカテゴリに属しているものが含まれています。

前のカテゴリはゲームです。

次のカテゴリは戯言です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

プログラミング: 月別アーカイブ

Powered by Movable Type 4.0