目次

若手SE向け研修

サーバーについて

本研修で使用するサーバーはさくらサーバーである。

ウェブサーバー

URLは、http://seminar-junior.jeez.jp となっている。

これは、若手SE向け研修用に取得したドメインである。

FTPサーバー

FTPサーバーも同じ名前である。 ユーザ名、パスワードはセミナー中に示す。

DBサーバー

DBとしてMySQLが利用できる。

サーバー名はmysql514.db.sakura.ne.jpであるが、これは上記のウェブサーバーのみからアクセス可能である。

データベース管理ツールはphpMyAdminがここから使用できる。

ユーザ名、パスワードはセミナー中に示す。

NetBeansでPHP開発

HTML

ウェブサーバーに自分用のページを準備する。

ファイル転送

HTMLの準備

自分用のページを作成し、以下のファイルを置く。

index.html

<!doctype html>
<html>
<head>
<meta charset='utf-8' />
<title>渕田のホームページ</title>
</head>
<body>
<h1>渕田のホームページ</h1>
<p>渕田のホームページへようこそ!</p>
<ul>
<li><a href="test.php">PHPのテスト</a></li>
</ul>
</body>
</html>

PHP

PHPについては「PHP マニュアル」で検索するとトップに出るPHPマニュアルですべて解説されている。

PHPとは

PHPは、C言語やJava言語と同様な一般的なプログラミング言語である。

しかし多く場合、PHPはサーバーサイドで動作するプログラムを記述するためによく使われるスクリプト言語である。 以前はPerlやshも使われていたが、近年はPHPが使われることが多い。 (さらに最近はnode.jsなどのサーバーサイドJavaScriptも多く用いられる。)

PHPの特徴の1つとして、HTMLの中に埋め込んで使うことができる、という事がある。

例として次の簡単なHTMLファイルを見てみよう。ファイル名は "index.php" とする。

<!doctype html>
<html>
<body>
<h1>PHPの第一歩</h1>
<?php print("<p>ここはPHPで出力されています。</p>"; ?>
</body>
</html>

このコードをサーバー上に配置してブラウザからアクセスすると、通常のウェブページが表示される。

このようなページをあえてPHPで出力する必要はないが、これによっていくつかわかることがある。

作成したコード

test.php

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>PHPのテスト</title>
<script type="text/javascript">
function clicked(){
  var name=document.getElementById("name").value;
  var age=document.getElementById("age").value;
  var res=document.getElementById("result");
  res.innerHTML="<p>"+name+"さんの年齢は"+age+"歳ですね。</p>";
}
</script>
</head>
<body>
<h1>PHPのテスト</h1>
<p>PHPのテストをします。</p>
<form method="post" action="test.php">
<p>
  名前:<input type="text" name="name" value="<?php print($_POST['name']); ?>" size="20" />
  年齢:<input type="text" name="age" value="<?php print($_POST['age']); ?>" size="5" />
  <input type="submit" value="確認" />
</p>
<div>
<?php
  if($_POST['name']==""){
    print("<p>ここに名前と年齢が表示されます。</p>\n");
  }
  else{
    print("<p>".$_POST['name']."さんの年齢は".$_POST['age']."歳ですね。</p>\n");
  }
?>
</div>
<p>
  名前:<input type="text" id="name" size="20" />
  年齢:<input type="text" id="age" size="5" />
  <input type="button" value="確認" onclick="clicked()" />
</p>
</form>
<div id="result"><p>ここに名前と年齢が表示されます。</p></div>
<?php
  for($i=0;$i<10;$i++){
    print("<p>これはPHPで出力の".$i."です。</p>\n");
  }
?>
<script type="text/javascript">
  for(var i=0;i<10;i++){
    document.write("<p>これはJavascriptで出力の"+i+"です。</p>\n");
  }
</script>
</body>
</html>

result.php

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>結果</title>
</head>
<body>
<h1>結果</h1>
<p>
  <?php print($_POST['name']); ?>さんの年齢は<?php print($_POST['age']); ?>ですね。
</p>
</body>
</html>

MySQL

MySQLサーバーの中に各自のデータベースを準備してある。

エクセルからデータを準備する手順

PDOの注意

PDOでMySQLに接続する際の文字コードの指定。

$pdo = new PDO("mysql:host=dbhost; dbname=dbname","username", "password",
            array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'"));

作成したコード

DBTest1/index.php

<!DOCTYPE html>
<?php include("my.php"); ?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>PHPによる会員管理</title>
    </head>
    <body>
        <h1>PHPによる会員管理システム</h1>
        <form method="post" action="index.php">
            <input type="hidden" name="modify" value="<?php print $sel_id; ?>"/>
            <p>氏名:<input type="text" name="name" <?php if($sel_id!=""){ print "value='".$data[$sel_id]['name']."'"; } ?> size="20"/></p>
            <p>年齢:<input type="text" name="age" <?php if($sel_id!=""){ print "value='".$data[$sel_id]['age']."'"; } ?> size="5" /></p>
            <p>メール:<input type="text" name="mail" <?php if($sel_id!=""){ print "value='".$data[$sel_id]['mail']."'"; } ?> size="40"/></p>
            <input type="submit" value="<?php print ($sel_id!="")?"修正":"登録"; ?>"/>
        </form>
        <h2>会員表</h2>
        <table border="1">
            <tr><th>ID</th><th>氏名</th><th>年齢</th><th>メール</th></tr>
            <?php
            foreach($data as $d)
                print("<tr><td>" . $d['id'] . "</td>" .
                        "<td>" . $d['name'] . "</td>" .
                        "<td>" . $d['age'] . "</td>" .
                        "<td>" . $d['mail'] . "</td>" .
                        "<td>" .
                        "<form method='post' action='index.php'>" .
                        "<input type='hidden' name='del_id' value='" . ($d['id']) . "'>" .
                        "<input type='submit' value='削除'/>" .
                        "</form>" .
                        "</td>" .
                        "<td>" .
                        "<form method='post' action='index.php'>" .
                        "<input type='hidden' name='sel_id' value='" . ($d['id']) . "'>" .
                        "<input type='submit' value='選択'/>" .
                        "</form>" .
                        "</td>" .
                        "</tr>\n");
            ?>
        </table>
    </body>
</html>

DBTest1/my.php

<?php
try {
    // データベースに接続する
    $pdo = new PDO("mysql:host=mysql514.db.sakura.ne.jp; dbname=forcreate_fuchida", "forcreate", "junior2015", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET 'utf8'"));

    // もしPOSTデータがあってmodifyでない場合はデータベースに新規登録する
    $name=$_POST['name'];
    $age=$_POST['age'];
    $mail=$_POST['mail'];
    if($_POST['modify']=="" && $name!="" && $age!="" && $mail!=""){
        $q="insert into member (name,age,mail) ".
                "values ('".$name."','".$age."','".$mail."');";
        $pdo->query($q);
    }
    
    // もしmodifyなら修正する
    if($_POST['modify']!="" && $name!="" && $age!="" && $mail!=""){
        $q="update member ".
                " set name='".$name."',age='".$age."',mail='".$mail."'".
                " where id='".$_POST['modify']."';";
        $pdo->query($q);
    }
    
    // もしdel_idがあれば、そのIDを削除する
    if($_POST['del_id']!=""){
        $q="delete from member where id='".$_POST['del_id']."';";
        $pdo->query($q);
    }
    
    // もしsel_idがあれば、そのIDを保存しておく
    $sel_id=$_POST['sel_id'];
    
    // データベースからデータを取り出す
    $st = $pdo->query("select * from member;");
    $data=null;
    while (($d = $st->fetch()))
        $data[$d['id']] = $d;
    
    // データベースとの接続を切る
    $pdo = null;
} catch (PDOException $e) {
    print("<p>" . $e . "</p>");
}
?>

jQuery

jQueryは大きく2つの目的を持って使われる。

作成したコード

index.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script type="text/javascript" src="js/libs/jquery/jquery.js"></script>
        <script type="text/javascript" src="js/my.js"></script>
        <title>jQueryのテスト</title>
    </head>
    <body>
        <h1>jQueryのテスト</h1>
        <form>
            <p>名前:<input type="text" id="name" size="20"/>
                年齢;<input type="text" id="age" size="5"/>
                <input type="button" id="confirm" value="確認"/></p>
        </form>
        <div id="result"></div>
    </body>
</html>

my.js

$(function(){
    $('#confirm').click(function(){
        var name=$('#name').val();
        var age=$('#age').val();
        $('#result').text(name+"さんの年齢は"+age+"歳ですね。");
    });
});

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS