htmlのユーザ情報一覧データをphpから抽出して使おうと考えております。
抽出には、filter_var_array()を使おうと検討中です。
それに際し、パスワードには半角英数でフィルターしたいと考えているのですが、方法調査に詰まっており、ご相談させて頂きたいと思います。
htmlのユーザ情報は一覧化しており、以下の表があります。
ID|ユーザ|パスワード 1 |sam |1111 2 |joh |2222
コードは以下。
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>ユーザー一覧</title> 6</head> 7<body> 8<form action="index.php" method="post"> 9<table> 10 <tr> 11 <th>ID</th> 12 <th>ユーザ</th> 13 <th>パスワード</th> 14 </tr> 15 <tr> 16 <td><input type="text" name="id[]" value="1"></td> 17 <td><input type="text" name="user[]" value="sam"></td> 18 <td><input type="text" name="pass[]" value="1111"></td> 19 </tr> 20 <tr> 21 <td><input type="text" name="id[]" value="2"></td> 22 <td><input type="text" name="user[]" value="joh"></td> 23 <td><input type="text" name="pass[]" value="2222"></td> 24 </tr> 25</table> 26<input type="submit" name="update" value="更新"> 27</form> 28</body> 29</html>
php
1<?php 2define('UPDATEFILTER',['id'=>FILTER_VALIDATE_INT,'user'=>FILTER_FLAG_STRIP_BACKTICK,'pass']=>XXXXXXX); 3 4if (!empty($_POST)) { 5 if($inData = filter_input_array(INPUT_POST)){ 6 echo "エラー:L".__LINE__ ; 7 return; 8 } 9 if($in_array('update',$inData)){ 10 // ユーザ情報抽出 11 if(!$userData = filter_var_array($this->inputData,UPDATEFILTER)){ 12 echo "エラー:L".__LINE__ ; 13 } 14 if(count($userData['id']) != $userData['user'] || count($userData['id']) != $userData['pass']){ 15 echo "エラー:L".__LINE__ ; 16 } 17 // 以降は抽出データを使ってPDOでDB更新のため省略。 18 } 19}
#開発環境
PHP 7.4.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。