@jackytom

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PHPでsyntax error

Q&A

Closed

PHPでシンタックスエラーが出ています。
具体的には
「Parse error: syntax error, unexpected token ";" in C:\xampp\htdocs\Portfolio\user_update_commit.php on line 36」
です。
問題となっているのは36行目のようです。

36行目↓
[htmlspecialchars($_REQUEST['password'],ENT_QUOTES | ENT_HTML5,'UTF-8')]);)

エラーとしては;を指摘してますが、SQLの閉じカッコの後に;を記述しているので問題ない
ように思えます。
閉じカッコの過不足や、位置を確認し、修正しましたが、解決できません。
どこか問題なのかご教示いただけないでしょうか。
ソースコードを添付します。

該当するソースコード

<?php 
var_dump($_REQUEST['password']);
try{
	require_once('db_connect.php');
	$sql=$pdo->prepare('update user_table set last_name=?, first_name=?, last_name_kana=?, first_name_kana=?, user=?, password=? where id=? ');
		if(empty($_REQUEST['sei']) || empty($_REQUEST['mei']) || empty($_REQUEST['sei_kana']) || empty($_REQUEST['mei_kana']) || empty($_REQUEST['user']) || empty($_REQUEST['password']))
			{
				echo '未入力の項目があります。';
			}
			else if(!preg_match('/\A[ァ-ヴー]+\z/u', $_REQUEST['sei_kana']) || !preg_match('/\A[ァ-ヴー]+\z/u', $_REQUEST['mei_kana']))
				{
					 echo 'カナ名は全角カナで入力してください。';
				}
				else if(!preg_match('/\A[a-zA-Z0-9!-\/:-@[-`{-~]+\z/u', $_REQUEST['user']))
					{
						echo 'ユーザーは半角英数字記号で入力します';
					}
					else if(!preg_match('/\A[a-zA-Z0-9!-\/:-@[-`{-~]{10,}\z/u', $_REQUEST['password']))
						{
							echo 'パスワードは半角英数字記号10文字以上で入力します。';
						}
						else if(!preg_match('/\A[a-zA-Z0-9!-\/:-@[-`{-~]{10,}\z/u', $_REQUEST['password2']))
							{
								echo 'パスワードは半角英数字記号10文字以上で入力します。';
							}
							else if($_REQUEST['password'] !== $_REQUEST['password2'])
								{
									echo '2つのパスワードが一致してません。';
								}
								else if($sql->execute(
										[htmlspecialchars($_REQUEST['sei'],ENT_QUOTES | ENT_HTML5,'UTF-8')],
										[htmlspecialchars($_REQUEST['mei'],ENT_QUOTES | ENT_HTML5,'UTF-8')],
										[htmlspecialchars($_REQUEST['sei_kana'],ENT_QUOTES | ENT_HTML5,'UTF-8')],
										[htmlspecialchars($_REQUEST['mei_kana'],ENT_QUOTES | ENT_HTML5,'UTF-8')],
										[htmlspecialchars($_REQUEST['user'],ENT_QUOTES | ENT_HTML5,'UTF-8')],
										[htmlspecialchars($_REQUEST['password'],ENT_QUOTES | ENT_HTML5,'UTF-8')]);)
									{
										echo '更新に成功しました。';
									}
										else {
												echo '更新に失敗しました。';
											}}
catch(PDOException $e)
	{
		echo "次がエラーの内容です。;" .$e->getMessage();
	}
?>

0 likes

1Answer

下記の;が要らないのでは?

36行目
[htmlspecialchars($_REQUEST['password'],ENT_QUOTES | ENT_HTML5,'UTF-8')]);)

1Like

Comments

  1. @jackytom

    Questioner

    回答ありがとうございます。
    ;の削除で解決しました。

Your answer might help someone💌