PHPでシンタックスエラー
Q&A
Closed
PHPでDBを更新するソースを書いていますが、
Parse error: syntax error, unexpected token ";" in C:\xampp\htdocs\Portfolio\password_reissue_commit.php on line 47
のエラーになります。
不要なセミコロンがあるか、近辺に不足があるかと思うのですが、47行目のセミコロンは末尾のセミコロンのみです。
他にも不足等確認したのですが、見つけることができませんでした。
試しにセミコロンを消すと当然別のエラーになります。
念のため、エラー内容は下記です。
Parse error: syntax error, unexpected variable "$stmt" in C:\xampp\htdocs\Portfolio\password_reissue_commit.php on line 48
原因究明にご協力いただければ幸いです。
ソースを添付します。
<?php<?php
session_start();
if(!isset($_SESSION['token']) || !isset($_POST['token']) || $_SESSION['token'] !== $_POST['token']){
die('不正なリクエストです。処理を中断します。');
}
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/contact_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');?>
<main>
<h1>パスワード再発行</h1>
<?php
require_once('db_connect.php');
require_once('password_hash.php');
if($_SERVER['REQUEST_METHOD'] === 'POST'){
if(empty(escape($_POST['new_pass'])) || empty(escape($_POST['new_pass_con']))){
echo '未入力の項目があります。';
}
else if(escape($_POST['new_pass']) !== escape($_POST['new_pass_con'])){
echo '2つのパスワードが一致しません。';
}
else if(!preg_match('/^[a-zA-Z0-9!-/:-@¥[-`{-~]{10,}$/', $_POST['new_pass']) || !preg_match('/^[a-zA-Z0-9!-/:-@¥[-`{-~]{10,}$/', $_POST['new_pass_con'])){
echo '英数字記号10字以上で入力します。';
}
else if($sql=('update customer set password=:password where customer_id = :customer_id')
$stmt = $pdo->prepare($sql);
$stmt -> bindValue(':password', $pass);
$stmt -> bindValue(':customer_id',$_SESSION['customer']['customer_id']);
$stmt -> execute();)
{
header('Location: password_reissue_end.php', true, 303);
exit();
}
else {
echo '更新に失敗しました。';
}
}?>
<?php require_once('footer.php');?>
</body>
</html>
0