>source

이 code를 사용자 이름 확인에 사용하면 localhost에서는 제대로 작동했지만 서버에서는 제대로 작동하지 않습니다. 유효성 검사가 정확하면 정상적으로 작동하고 모든 데이터를 데이터베이스에 추가하지만 사용자 이름 유효성 검사가 실패하면 여전히 모든 입력이 있는 데이터베이스에 행을 추가하고 오류를 던지지 않지만 사용자 이름을 추가하는 대신 사용자 이름 열에 내 데이터베이스 사용자 이름을 추가합니다 . 사용자 이름이 이미 존재한다는 오류가 표시되지만 정규식 유효성 검사 오류는 표시되지 않습니다. 여기 내 code가 있습니다.
가입.php

if (isset($_POST['username'])){
    $sql= "SELECT count(u_username) FROM usertable WHERE u_username= ?";
    $stmt= $conn->prepare($sql);
    $stmt->execute([$_POST['username']]);
    $existUser= $stmt->fetchColumn();
    if($existUser > 0){
        $Erroruser= "Username Already Exists";
    }
    else{
        if(preg_match('/^(?!\d+$)(?=.{6,25}$)[a-z0-9]+(?:[_-][a-z0-9]+)*$/',$_POST['username'])){
            $username=$_POST['username'];
        }
        else{
            $Erroruser= "Username should be minimum 6 characters, No spaces and special characters allowed in username except (-_)";
        }
    }

여러 번 테스트했고 이것이 내가 찾은 것입니다. 사용자가 잘못된 이메일이나 비밀번호를 입력하는 것과 같은 다른 오류가 있는 경우 사용자 이름 오류가 표시됩니다. 또한 열에 내 데이터베이스 사용자 이름이 있는 행이 이미 있는 경우 이 code는 제대로 작동하고 모든 유형의 오류를 표시합니다. 이 문제를 해결하는 방법은 무엇입니까?

확실히 말하기는 어렵지만 내 생각에 데이터베이스에 연결하는 전역 $username= "database_admin"을 이미 설정한 다음 삽입할 때마다 $username이 설정되어 있는지 확인하는 것입니다. 오류.

dave2021-10-07 19:15:52

테이블에 행을 삽입하는 나머지 code를 추가해야 그곳에서 조건을 볼 수 있습니다.

Barmar2021-10-07 19:16:06

@dave 네 맞습니다. 이제 제대로 작동하고 모든 오류가 표시됩니다. 매우 감사합니다. 짐작할 수 없었을 것입니다.

Tanuj18992021-10-07 19:28:26
  • 이전 Shopify 제품에 특정 태그가 있는 경우에만 일부 HTML 렌더링
  • 다음 oracle : 쉼표 또는 탭 또는 파이프로 구분/구분된 데이터를 읽기 위한 SQL 로더 제어 파일?