やったー!できたー

新しいPC購入後、シムピープルにかまけておろそかにしていたphpに目を向けてみました。

前回は、Apache、php4、php5をそれぞれ別にインストールしていましたが、今回はphpspotさんで紹介されているXAMPPというものをダウンロードしてみました。

これいろいろ入って楽ちんそうと思って。
実際インストールはすごく早く終わりました。

いろいろやらないといけないことがあるようなのですが、ちょっと理解できない部分があったので、検索し、テクニカルラウンジさんのXAMPPでMySQL/PHPの一括インストール(Windows編)を参考にしました。

終わってから読み返してみると、双方ともほぼ同じ内容で、理解力などのスキルの低さを実感…
できたからいっか!

php.iniって一度設定するとなかなかいじらないので、変更を加えたらApache再起動なんてすっかり忘れてました…

インストールだけなのに、実りがあった気がします。
実際には半歩も進んでなさそうです。

Smartyその後。

Smartyの本買いました(一週間くらい前に)
Smarty入門~PHP5+テンプレート・エンジンでつくるMVCアプリケーション~
Smarty入門~PHP5+テンプレート・エンジンでつくるMVCアプリケーション~
山田 祥寛

最初のサンプルでつまずいています…
phpでSQLiteのデータベースを作る、というものなのですが、どうにもうまくいかない…
何か設定がおかしいらしいが、基本的に手探りで、何がおかしいのか確かめるのも難しい状態。
というのも、あたしのPCにはもともとPHP4がインストールされていたため。
この本で書かれている環境はPHP5+Apache2。
綺麗なPCでなら多分問題なく動くであろうプログラムもうまく動かないのだ。
phpinfo()をしても問題なく表示はされている。
php、Apacheなどなど…
Apacheとphpはつながってるし、ちゃんとphp4もphp5も認識されてるしなー…
そういえば認識はされど、ヴァージョンは4が表示されている。
もしやこれが原因?
httpd.confの
LoadModule php4_module "C:/php/sapi/php4apache2.dll
LoadModule php5_module "C:/php/php5apache2.dll
を逆に変えてみると、phpのヴァージョンは5に変わった。
エラーの表示も若干変わった。
しかし相変わらず…

ちなみにエラーの内容は『prepare()が呼び出せない』とかそんな感じの内容。
これにつまずいてもう1週間…はぁ…
もうちょっとがんばります。

あ、SQLiteを除けば、Smarty自体の実験は一応成功しています。
カンマ区切りのテキストファイルを読み込んで、テーブルに表示させて見ました。



浮気癖。

phpの勉強中、smartyなるものを発見しました。

『phpを記入したhtmlが面倒…』とか、
『更新作業が人に頼めない…』といった悩みを抱えていたので、ちょっとかじってみましょうと。

デザイナーとプログラマーで作業分担がしやすくなる上に、更新作業もしやすいという優れもの(らしい)

phpをかじり始めてから、『これは何でできてるの?』と気にするようになった。
そういえばこの形式、このブログのテンプレートの形に似てるなぁ…
もしかしたらsmartyでできてるのかしら?
もしそうなのだとしたら、CMSも自分で作成できる???
ちょー楽しそうてれちゃう
夢は膨らみますラブラブラブ

とはいっても、浮気癖あり&飽きっぽいあたしにはそこまで到達するかが心配。すでにphpからsmartyに心奪われ系だし…
いや、がんばる!どっちも兄弟みたいなものだし!

最近webデザインより、webプログラムに興味深々★
もっと時給上げてもらえるようにがんばろー。

試行錯誤。

コードの引継ぎは、システム管理の人に『これは使えそう?』とメール的なもので送ったところ、何の返事も無いので、必要ないと判断。
まぁ成功ということで。
そのうち、php実践のページつくろー★

今度はショッピングカートのようなものを作成中…
これも実践に使えるか不明。
楽しいから良いけど。
phpじゃ無理かしらねー?
がんばろ。別に仕事じゃないしなー。

またひとつ進歩。

昨日のを今日見直してみたら、ちょっとおかしくないかい?
ってことでちょっと変更。

<?php
if($_SERVER['QUERY_STRING'] == ""){
$code = "zzz";//ここが変更になりました。
}
else {
$code = $_SERVER["QUERY_STRING"];//この辺も
}
?>

これで多分大丈夫かも?
普通のhtmlに渡す時には?を加えて、システムに送るときには変数だけを送ることで何とかなりそう。

問題は
<a href="http://amuamuknit.girly.jp/?<?php echo $code;?>">あむあむ</a>と途中にphpの記述が必要なこと。困ったなー。もう少しつめます。

あと少し。

おいさー!結構できてきたかも!

<?php
$code = $_SERVER["QUERY_STRING"];
echo "<p><a href=¥"http://";
echo $_SERVER["HTTP_HOST"];
if($_SERVER['QUERY_STRING'] == ""){
echo "?code=xxx";
}
else {
echo "?";
echo $code;
}
echo "¥">hoge<a/>";
?>

一応これで、URLに何もついてないときには次のページにcode=xxxをもっていく。ついている場合にはそれをもっていく、というのができたっぽい。

でも多分、もっと簡単な記述の方法があるはずだ。
これでは他の人に更新作業を頼むことはできそうにない。
もちろんあたしもこれを再現できる保障が無い。

あと少し、もう少し。たのし。

コードの引継ぎ。

仕事で使えるかも、とphpのお勉強。

URLに付加された文字情報を取得するというもの。
たとえば
http://amuamuknit.girly.jp/aaa
でアクセス、aaaから何アクセスあったかなどを調べる方法。

URLに?と変数をつけて、たとえばhttp://amuamuknit.girly.jp/?code=aaaといった形では成功しました。(一応)。
でも本当は?も変数名codeもつけないのが理想。
その方が管理しやすいし、更新作業を他の人が行なったとしても、間違いが少なくなるから。
現在の方法だと、最悪の場合、アクセスできなくなってしまう…

もちっと勉強だなー。
ガンバろ。

phpその後。

げへへ…これやばいっす。
まださわりだけど、こんなに楽しいなんて…

今日楽しんだのはこちら↓
htmlファイル
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<title>phpのお勉強</title>
<style type="text/css">
<!--
table {
border: 1px solid #666666;
border-collapse: collapse;
}
td {
border: 1px solid #666666;
}
--></style>
</head>

<body>
あなたのプロフィールを入力してください。

<form action="moji.php" method="post">
<table cellpadding="5">
<tr><td>お名前</td><td><input type="text" name="onamae" /></td></tr>
<tr><td>ハンドルネーム</td><td><input type="text" name="handle_name" /></td></tr>
<tr><td>性別</td><td><input type="radio" name="sex" value="男性" />男性<input type="radio" name="sex" value="女性" />女性</td></tr>
<tr><td>好きな背景の色(16進法で)</td><td><input type="text" maxlength="7" name="b_color" value="#" /></td></tr>
<tr><td>好きな文字の色(16進法で)</td><td><input type="text" maxlength="7" name="t_color" value="#" /></td></tr>

<tr><td colspan="2"><input type="submit"value="送信" name="submit" /></td></tr>
</table>
</form>

</body>
</html>

phpファイル↓
<html>
<head>
<title>練習</title>
</head>

<?php
$b_color = $_POST["b_color"];
$t_color = $_POST["t_color"];
$onamae = $_POST["onamae"];
$handle_name = $_POST["handle_name"];
$sex = $_POST["sex"];
print ("<body style=¥"background:$b_color;color:$t_color;¥">");
print ("<table border=¥"1¥" cellpadding=¥"10¥" cellspacing=¥"2¥">");
print ("<tr><td>お名前:</td><td>$onamae</td></tr>");
print ("<tr><td>ハンドル:</td><td>$handle_name</td></tr>");
print ("<tr><td>性別:</td><td>$sex</td></tr>");
print ("</table>");
?>


</body>
</html>

結果
好きな背景色、文字の色で、名前、ハンドルネーム、性別がテーブルで表示される。


本当はなんかEUC-JP?とか言うので書かなきゃいけないとか、色々な決まりごとがあるようですが、その辺は無視で。タイトルが適当とか色々アラがあるし…
それに今のところただの趣味だしー。遊びだしー。

でもこれ本当に楽しいかも。
HTMLや編み物や、今でも好きなものたちを始めたときのわくわく感。
ステキときめき
恋しちゃったかも…抱擁

formの値の受け渡し。

や、やっとできた…
formからphpに変数を渡したものを表示する、というすごく簡単なことができなくて、やったりやめたりを繰り返していたphpですが、やっとできました。
しかも調べればわかることが、うまく調べられてなかったみたい…
以下が今回やっとできたこと。

htmlファイル
<form action="xxx.php" method="post">
 <input type="test" name="amumamu" />
 あなたのお名前:<input type="submit"value="送信" name="submit" />
</form>

xxx.php内の記述(一部省略)
<?php
$amuamu = $_POST["amuamu"]; //←ここが全然わかんなかったの!
print ("あなたのお名前は$amuamuさんですね;");
?>

結果
あなたのお名前は(input入力した文字)さんですね

すごーく単純でしょ?でも今日までできなかったの。

どうやらPHPの基礎体力さんによると、
■ 外部から来る変数が獲得できない!?
PHP4.2.0以降、$変数名 という書式では、スクリプトに渡された変数を獲得できません。これは、PHPの初期設定ファイル php.ini 内の register_globalsのデフォルト設定が、OFF に変更されたためです。セキュリティー上の理由でこのような処置がなされたので、この設定を ON にすることは推薦されません。
PHP4.2.0 以降で、外部から来る変数を獲得する場合は、$_GET['変数名'] ・ $_POST['変数名'] ・ $_COOKIE['変数名']という書式を使いましょう。

とのこと。
あたしが使ってるのが、(おそらく)php4.4.2なので、この状況に当てはまるように思われます。
実際にそうだったっぽいし。
今まで検索で見たページにもヴァージョンとか書いてあったけど、大して気にせずにいましたが…結構大事な事だったのね…今度から注意しよっと。
でも今回の成功で、またやる気が起きた。
しばらく楽しめそうイヒヒ

| 1/1PAGES |