# 【MC-Innovation-Lab】PHP1回目 ## 初期準備 XAMPP又はMAMPのダウンロードとインストール PHPの授業からはXAMPPというアプリケーションを利用します。 *「Apache Server」と「MySQL Server」の横に緑色のランプがついたら、サーバーの起動完了です。 ### 授業資料のダウンロードと解凍 Zipファイルですので解凍してください。 本日使う授業フォルダphp01に入っているもの。 ``` 001hensu.php get_confirm.php get.php index.php input.php phpinfo.php post_confirm.php post.php qa.php read.php write.php dataフォルダ sampleフォルダ ``` ### php01フォルダをMAMPのhtdocs階層に移動させてください。 先ほどCドライブにダウンロードしたXAMMPの中にhtdocsというフォルダがあります。 ここに授業資料の「php01」フォルダを移動してください! ## セクション1 PHP基礎構文 ### 1-1 PHPファイルとタグ #### 1. test.phpファイルを作成 #### 2. PHP開始タグと終了タグを記述 ``` <?php ←開始タグ //ここに処理を書いていきます ?>←終了タグ ``` #### 3. タグの中に以下の処理を記述 `echo 'hello world';` #### 4. MAMPを起動してlocalhost:8888/test.phpを開くと実行結果が確認できる ### 1-2 基本構文(変数) #### 1. 001hensu.phpを開き開始タグ終了タグを準備 #### 2. int型とString型 ``` $name = '中野'; $last_name = '憲一'; echo $name; echo $name + $last_name; echo $name . $last_name; ``` ``` $sato_age = 30; $yamada_age = "25"; $total_age = $sato_age + $yamada_age; var_dump($total_age); echo $total_age; echo "<br>"; ``` ``` //結合演算子 $total_age = $sato_age . $yamada_age; ``` ``` // 簡単なおみくじ // rand(min,max) $num = rand(1,2); // おみくじ if ( $num == 1 ) { echo "アタリ"; }else{ echo "ハズレ"; } ``` #### 3. 制御構文(if文、for文はjsと一緒です) ## セクション2 フォーム操作 ### 2-1 GET通信 #### 1. getで送信するにはmethodとactionの設定 get.phpを開いてformの中身を確認 ``` <form action="get_confirm.php" method="get"> お名前: <input type="text" name="name"> EMAIL: <input type="text" name="mail"> <input type="submit" value="送信"> </form> ``` #### 2. 受け取り方 get_confirm.phpのPHPタグ中で以下の書き方で受け取る ``` // フォームから送られてきたデータを取得し変数に代入 $name = $_GET["name"]; $mail = $_GET["mail"]; ``` #### 3. 表示 get_confirm.phpのHTMLの中で以下の書き方で表示 ``` <li> お名前:<?= $name ?> </li> <li> Mail:<?= $mail ?> </li> <?php echo $name ?> or <?= $name ?> ``` ### 2-2 POST通信 #### 1. postで送信するにはmethodとactionの設定 post.phpを開いてformの中身を確認 ``` <form action="post_confirm.php" method="post"> お名前: <input type="text" name="name"> EMAIL: <input type="text" name="mail"> <input type="submit" value="送信"> </form> ``` #### 2. 受け取り方 post_confirm.phpのPHPタグ中で以下の書き方で受け取る ``` // フォームから送られてきたデータを取得し変数に代入 $name = $_POST["name"]; $mail = $_POST["mail"]; ``` #### 3. 表示 post_confirm.phpのHTMLの中で以下の書き方で表示 ``` <li> お名前:<?= $name ?> </li> <li> Mail:<?= $mail ?> </li> <?php echo $name ?> or <?= $name ?> ``` ### 2-3 XSS:クロスサイトスクリプティング #### 1. 実演postのformに以下をコピペして送信 `<script>alert("ok");</script>` #### 2. 意図しないscriptを埋め込まれる危険性があるので対策 `htmlspecialchars(変数,ENT_QUOTES);` *GETやPOSTで受け取ったデータをechoする時は必ず行う #### 3. 良く使うので自分で関数化 ``` // XSS対策関数 function h($value){ return htmlspecialchars($value,ENT_QUOTES); } ``` 呼び出し方 `<?php echo h(変数); ?>` ## セクション3 ファイル操作 ### 書き込み #### 1. write.phpからファイルを開いて取得した時間を書き込む ``` // 時間取得 $date = date("Y/m/d H:i:s"); // ファイルを読み込む $file = fopen("./data/data.txt","a"); // ファイルに書き込む fwrite($file,$date."\n"); // ファイルを閉じる fclose($file); ``` ### 読み込み #### 1. read.phpからファイルを開いて書き込まれたデータを取り出す ``` // ファイルを変数に格納 $filename = 'data/data.txt'; // fopenでファイルを開く('r'は読み込みモードで開く) $fp = fopen($filename, 'r'); // whileで行末までループ処理 while (!feof($fp)) { // fgetsでファイルを読み込み、変数に格納 $txt = fgets($fp); // ファイルを読み込んだ変数を出力 echo $txt.'<br>'; } // fcloseでファイルを閉じる fclose($fp); ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up