提示コードの下部の///
コメント部のコードですがforeach
文が回るとaccount
要素が定義されるのでそれを使って後のif(isset())
文で判定しているのですが。foreach
文ではなくてif
文で一致するかどうかを判定したいです。
※このコードは会員の登録画面ですでに一致するID、パスワードだった時に既にアカウントが存在するかどうか?という判定をしたいです。
参考サイト: https://www.php.net/manual/ja/class.pdostatement.php
<!DOCTYPE html> <html> <head> <title> 新規作成完了 </title> <link rel="stylesheet" href="Style.css"> <meta charset="UTF-8"> </head> <body> <?php session_start(); ini_set( 'display_errors', 1 ); ini_set( 'error_reporting', E_ALL ); ?> 文字数の関係で省略 //すべて正しいとき if($register == true) { $pdo = new PDO('mysql:host=localhost;dbname=Bulletin_Board;charset=utf8','root','〇〇◯'); $sql = $pdo->prepare('select * from Bulletin_Board where id=? password=?'); if($sql->execute([$id,$password]) == true) ///////////////////////////////////////////////////////////////////////////////////////////////////// { foreach($sql->fetch_All() as $row) { $_SESSION['account']= [ 'id'=>$row['id'], 'password'=>$row['password'] ]; } ///////////////////////////////////////////////////////////////////////////////////////////////////// //アカウントがある時 if(isset($_SESSION['account']) == true) { echo "<h1> アカウントが既に存在します。ログインしてください。 </h1>"; echo "</br>"; echo '<p> ID </p>'.$id; echo "</br>"; echo '<p> 名前 </p>'.$name; echo '<form action="Top.php" method="post"> <button type="submit" name="add">トップページ</button> </form>'; echo '</center>'; } else { //アカウントがない時 if(file_exists($id) == false) { if ( mkdir($id) == false) { echo 'ディレクトリ作成失敗。'; } } $imagePath = $id.'/'.basename($_FILES['icon']['name']); list($width,$height) = getimagesize($_FILES['icon']['tmp_name']); $newWidth = 48; $newHeight = 48; $newImage = imagecreatetruecolor($newWidth,$newHeight); $image = imagecreatefromjpeg($_FILES['icon']['tmp_name']); imagecopyresampled($newImage,$image,0,0,0,0,$newWidth,$newHeight,$width,$height); imagejpeg($newImage,$imagePath); rename($imagePath,$id."/icon.".$imageExtension); $pdo = new PDO('mysql:host=localhost;dbname=Bulletin_Board;charset=utf8','root','〇〇◯'); $sql = $pdo->prepare('insert into Account values(?,?,null,?)'); if($sql->execute([$id,$password,$name]) == true) { echo '<center>'; echo "<h1> アカウント作成 </h1>"; echo '<p><img src="' , $id."/icon.".$imageExtension , '"></p>'; echo "</br>"; echo '<p> ID </p>'.$id; echo "</br>"; echo '<p> 名前 </p>'.$name; echo "</br>"; echo '<p> パスワード暗号化 </p>'.$password; echo '<form action="Top.php" method="post"> <button type="submit" name="add">トップページ</button> </form>'; echo '</center>'; } } } } } else { echo '<center>'; if(empty($_FILES['icon']['tmp_name']) == true) { echo '<p>アイコンがアップロードされていません。</p>'; } if(empty($password) == false) { echo '<p> パスワードが入力されていません。 </p>'; } if(empty($id) == false) { echo '<p> IDが入力されていません。 </p>'; } if(empty($name) == false) { echo '<p> 名前が入力されていません。 </p>'; } echo '<input type="button" onclick="history.back()" value="戻る" style="background-color:red; size:15;width:150px;height:30px">'; echo '</center>'; } ?> </body> </html>