はじめに
今回は、PHPで作成しているCSV一覧を作成後、一覧の一部データを取得した詳細ページを作成することができたのでアウトプットのためにまとめます。
試したこと
URLにOpenSSLで暗号化したデータを載せてページ遷移後に復号しようとしていましたが、
あまりうまくいかなかったためOpenSSLではない方法で作成しました。
送信ページ
<!DOCTYPE html>
<?php
// エラー表示
ini_set('display_errors', 1);
?>
<head>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<head>
<title>人材絞り込み表示</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="styling.css">
</head>
<body>
<?php
// 読み取り専用でsample.csvを開きます。
$f = fopen("sample.csv", "r");
// POSTでデータ送信
if(!empty($_POST)){
$name1 = $_POST['sample_name1'];
$name2 = $_POST['sample_name2'];
echo '選択された名前は'.$name1.'と'.$name2.'です。<br>';}
echo '<br>';
while($data = fgetcsv($f)){
// 1行分の要素すべてを文字列として結合しても空ではない、つまり空行でなければ出力します。
if(implode($data) != null){
// 読み込んだ結果について
// 二つ目の名前が一致していたら表示
if (preg_match("/$value1/", $name1)) {
// 二つ目の名前が一致していたら表示
if (preg_match("/$value2/", $name2)) {
?>
<div>
<tr>
<td colspan="2"">
<form class="sample" name="form'.$i.'" action="postPlus.php" method="post">
<input name="sample_name1" type="hidden" value="<?php echo("$data[0]"); ?>">
<input name="sample_name2" type="hidden" value="<?php echo("$data[5]"); ?>">
<input type="submit" value="<?php echo("$data[2]"); ?>">
</form>
</td>
</div>
<?php
}
// 一つ目の名前が一致していたら非表示
else {
}
}
// 二つ目の名前が一致していたら非表示
else {
}
}
}
// test.csvを閉じます。
fclose($f);
?>
</body>
<style>
.sample {display:inline-block;}
.sample input[type="submit"]{
border:none;
background:#FFF;
text-decoration:underline;
color:#00f;
}
.sample input:hover {cursor:pointer;}
</style>
</html>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="selectbox.js"></script>
受信ページ
<!DOCTYPE html>
<?php
// エラー表示
ini_set('display_errors', 1);
?>
<head>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>受信ページ</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="styling.css">
</head>
<body>
<?php
//職業情報の取得
// 読み取り専用でsample.csvを開きます。
$f = fopen("sample.csv", "r");
// POSTでデータ送信
if(!empty($_POST)){
$name1 = $_POST['sample_name1'];
$name2 = $_POST['sample_name2'];
while($data = fgetcsv($f)){
// 1行分の要素すべてを文字列として結合しても空ではない、つまり空行でなければ出力します。
if(implode($data) != null){
// 読み込んだ結果を表示します。
// 一つ目の名前が一致していたら表示
if (preg_match("/$value1/", $name1)) {
// 二つ目の名前が一致していたら表示
if (preg_match("/$value2/", $name2)) {
?>
<div>
<tr>
<th>名前</th>
<?php echo("<td>$data[0]</td>"); ?>
</tr>
</div>
<?php
}
// 一つ目の名前が一致していないなら非表示
else {
}
}
// 二つ目の名前が一致していないなら非表示
else {
}
}
}
// sample.csvを閉じます。
fclose($f);
?>
</body>
<style>
.sample {display:inline-block;}
.sample input[type="submit"]{
border:none;background:#FFF;text-decoration:underline;color:#00f;
}
.sample input:hover {cursor:pointer;}
</style>
</html>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="selectbox.js"></script>
参考サイト
POSTについて
https://atmarkit.itmedia.co.jp/ait/articles/1407/02/news038_2.html
https://wepicks.net/phpref-post/
https://www.sejuku.net/blog/27843
URLにGETでデータを取得する方法について
https://hirashimatakumi.com/blog/311.html
OpenSSLについて
https://www.youtube.com/watch?v=jz8e7lBvE34
(あまり参考になりませんでした)
これからの課題
今回、途中で断念したOpenSSLについて理解を深めておく必要がある
セキュリティについても同様に知識を得ておく必要を感じました