我使用 Ajax 進行的 PHP 用戶名驗證在 html div(這是為了顯示 ajax 錯誤)元素中復制了我的 html 頁面。我嘗試了一些解決方案并用谷歌搜索,但找不到其他解決方案。也許問題出在 $_POST 但我也在 php 中將它們分開(所有輸入驗證)。這是PHP代碼<?php if(isset($_POST['username'])){ //username validation $username = $_POST['username']; if (! $user->isValidUsername($username)){ $infoun[] = 'Your username has at least 6 alphanumeric characters'; } else { $stmt = $db->prepare('SELECT username FROM members WHERE username = :username'); $stmt->execute(array(':username' => $username)); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (! empty($row['username'])){ $errorun[] = 'This username is already in use'; } }}if(isset($_POST['fullname'])){ //fullname validation $fullname = $_POST['fullname']; if (! $user->isValidFullname($fullname)){ $infofn[] = 'Your name must be alphabetical characters'; } }if(isset($_POST['password'])){ if (strlen($_POST['password']) < 6){ $warningpw[] = 'Your password must be at least 6 characters long'; } }if(isset($_POST['email'])){ //email validation $email = htmlspecialchars_decode($_POST['email'], ENT_QUOTES); if (! filter_var($email, FILTER_VALIDATE_EMAIL)){ $warningm[] = 'Please enter a valid email address'; } else { $stmt = $db->prepare('SELECT email FROM members WHERE email = :email'); $stmt->execute(array(':email' => $email)); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (! empty($row['email'])){ $errorm[] = 'This email is already in use'; } }}?>這是屏幕截圖:
Ajax 驗證在 html 元素內重復 html 頁面
喵喵時光機
2022-10-13 16:41:07