PHPで<button type="submit">のisset($button)が効かない
Q&A
Closed
ユーザー、パスワードの登録フォームで、ユーザーが既存のものだとエラーとする仕組みをPHP+javascriptで作成中ですが、その前段で躓いています。
isset($button)でボタンがクリックされたら後続処理が動くようにしたいのですが、できません。
isset(button)をvar_dump()したところ、""(空文字)だったので、そもそもクリックされたと認識されてない気がします。
HTML側を確認すると、「value="button_con"]と記述しています。
参考までですが、mariadb側のログを確認したところ、prepereもexecuteもログが出力されてません。
原因究明に協力いただければ幸いです。
ソースを添付いたします。
<?php
session_start();
header('Expires:-1');
header('Cache-Control:');
header('Pragma:');
$token = '';
if ( isset( $_SESSION[ 'token' ] ) || !empty( $_SESSION[ 'token' ] ) ) {
$token = $_SESSION['token'];
} else {
$token = bin2hex(random_bytes(32));
$_SESSION['token'] = $token;
}
function escape($val)
{
return htmlspecialchars($val, ENT_QUOTES | ENT_HTML5, 'UTF-8');
}
?>
<!doctype html>
<html lang=ja>
<head>
<meta charset="utf-8">
<title>パスワード作成画面</title>
<meta name="description" content="ヘッドセラピーを中心としたセラピーのサービスを提供しております。">
<!--リセットcss-->
<link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css">
<!--css-->
<link href="css/customer_style.css" rel="stylesheet">
<!--レスポンシブ対応-->
<meta name="viwport" content="width=device-width, initial-scale=1">
<!--Googleフォント-->
<link href="https://fonts.googleapis.com/css2?family=Sawarabi+Gothic&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500&display=swap" rel="stylesheet">
</head>
<body>
<?php require_once('header.php')?>
<h1>パスワード作成画面</h1>
<form method="post" action="customer_create_pass_conf.php" class="password_cre" id="password_cre">
<input type="hidden" name="token" class="token" id="token" value="<?=$token;?>">
<div class="last_name" id="last_name">
<label for="sei">姓</label>
<input type="text" name="sei" class="sei" id="sei">
</div>
<div class="first_name" id="first_name">
<label for="mei">名</label>
<input type="text" name="mei" class="mei" id="mei">
</div>
<div class="last_name_kana" id="last_name_kana">
<label for="sei_kana">姓(カナ)</label>
<input type="text" name="sei_kana" class="sei_kana" id="sei_kana">
</div>
<div class="first_name_kana" id="first_name_kana">
<label for="mei_kana">名(カナ)</label>
<input type="text" name="mei_kana" class="mei_kana" id="mei_kana">
</div>
<div class="genders" id="genders">
<label for="gender">性別</label>
<input type="radio" name="gender" class="gender" value="1" checked>女性
<input type="radio" name="gender" class="gender" value="2">男性
</div>
<div class="mail" id="mail">
<label for="address">メールアドレス</label>
<input type="text" name="address" class="address" id="address">
</div>
<div class="pass" id="pass">
<label for="password">パスワード</label>
<input type="password" name="password" class="password" id="password">
</div>
<div class="pass_sec" id="pass_sec">
<label for="password_sec">パスワード(確認用)</label>
<input type="password" name="password_sec" class="password_sec" id="password_sec">
</div>
<div class="buttons">
<button type="submit" class="button_b" name="button_con" id="button_con" value="button_con">確認</button>
</div>
</form>
<?php
require_once('db_connect.php');
require_once('password_db.php');
$mail = $_POST['address']?? "";
$button = $_POST['button_con']?? "";
$mailJson = 3;
if(isset($button)){
$sql = "select count(*) from customer where convert(AES_DECRYPT(UNHEX(mail_address), '" . $password . "')USING utf8) = ? ";
$stmt = $pdo->prepare($sql);
$stmt -> execute([escape($mail)]);
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
$data = [];
foreach($row as $data){
function num() {
if(($data['count(*)']) >= 1){
return 1;
}
else {
return 2;
}
$mailCount = num();
$mailJson = json_encode($mailCount);
}
}
}
?>
<?php require_once('customer_pass_chk_js.php');?>
<?php require_once('footer.php');?>
<?php var_dump($button);?>
</body>
</html>