2014-03-25 2 views
-4

사용자 이름을 입력하라는 등록 양식이 있습니다.내 데이터베이스에 이미 존재하는 사용자 이름 확인 (MySQL)

내가 입력 한 사용자 이름이 이미 내 데이터베이스에 존재하는지 확인해야합니다. 그러나 다음 코드는 작동하지 않습니다.

<ul class="user"> 
<li class="label">User name </li> 
<li class="field"> 
<input type="text" id="username" name="username" class="required error"/> 
<?php 
    // $username = $_POST['username'];  
    $dbhost = 'localhost:3306'; 
    $dbuser = 'root'; 
    $dbpass = ''; 
    $dbname = 'cast'; 

    $conn = mysql_connect($dbhost, $dbuser, $dbpass, $dbname); 
    if(! $conn) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 
    else 
    { 
     echo "Connect"; 
    } 

    mysql_select_db('cast'); 
    $query = mysql_query("SELECT username FROM usertable WHERE username='$username'"); 

    if (mysql_num_rows($query) != 0) 
    { 
     echo "Username already exists"; 
    } 
?> 
</li> 
</ul> 
+7

글쎄, 언뜻 보면, 아마도'$의 username' 값을 주석 양식 태그입니다 것을 –

+0

도움이되지 않는 이유는 무엇입니까? – Sanoob

+0

어디 ur 형식이며 어떻게 PHP는 사용자 이름 입력을 받고있다 –

답변

0
<?php 

    if (isset($_POST['username'])) // Its a submission 
    { 
     $dbhost = 'localhost:3306'; 
     $dbuser = 'root'; 
     $dbpass = ''; 
     $dbname = 'cast'; 

     $conn = mysql_connect($dbhost, $dbuser, $dbpass, $dbname); 
     if(!$conn) 
     { 
      die('Could not connect: ' . mysql_error()); 
     } 

      $username = mysql_escape_string(trim($_POST['username'])); // Sanitize 
      if(empty($username)) { 
       echo "Please enter an username"; 
      } else { 
       mysql_select_db($dbname); 
       $query = mysql_query("SELECT * FROM usertable WHERE name='$username' LIMIT 1"); 

       while ($row = mysql_fetch_array($query)) { 
        if($row){ 
         echo('Username exists'); 
        } else { 
         // do further registration 
        } 
       } 
      } 
    } 

?> 
<form id="usertype" action="<?= htmlentities($_SERVER['PHP_SELF']); ?>" method="post" > 
    <center> 
     <h1> User Registration Page </h1> 
     <div id="content"> 
      <input type="textbox" id="username" name="username" value="" /> 
      <input type="submit" name="submit" value="Submit"/> 
     </div> 
    </center> 
</form> 
+0

0 투표 수락 -이 메시지는 텍스트 상자 근처에 표시됩니다. 같은 문제가 있습니다. – user3454387

+0

게시하기 전에 확인해주십시오. 문제 없습니다. – effone

+0

예 .. 오류가 사라졌습니다. 코드가 작동하지 않습니다. 사용자 이름이 이미 존재합니다. – user3454387

0

난 당신이 MySQLi를 사용하고이 목적을 위해 는 isset을 사용하는 조언하고있다. 다음과 같은 코드를 시도 할 수 있습니다 :

<html> 
<body> 

<?php 

/* START OF CONNECTION */ 
$conn = mysqli_connect("localhost","root","","cast"); 
if(mysqli_connect_errno()){ 
echo "Error".mysqli_connect_error(); 
} 

if(isset($_POST['submit'])){ /* IF SUBMIT IS CLICKED */ 

$username=mysqli_real_escape_string($conn,$_POST['username']); /* TO PREVENT SOME OF SQL INJECTION */ 
$query = mysqli_query($conn,"SELECT username FROM usertable WHERE username='$username'"); 

if(mysqli_num_rows($query)==0){ /* IF NO ACCOUNT IS FOUND */ 
header("LOCATION:proceed.php"); /* IT WILL PROCEED TO A NEW PAGE */ 
} 

else { /* ELSE IF THERE'S A USERNAME FOUND */ 
echo "Username is already taken. Please try again."; /* IT WILL STAY ON THE SAME PAGE */ 
} 

} /* END OF ISSET SUBMIT */ 

?> 

<form action="" method="POST"> 
<ul class="user"> 
<li class="label">User name </li> 
<li class="field"> 
<input type="text" id="username" name="username" class="required error"/></li> 
<li><input type="submit" value="Validate" name="submit"></li> 
</ul> 
</form> 

</body> 
</html> 
+0

그것은 작동하지 않습니다. 양식 작업에서 나는 database.that 페이지에 세부 정보를 입력하고 결과를 "데이터 입력 됨"으로 표시하고 사용자 이름 유무를 확인하지 않고 다른 양식으로 리디렉션했습니다 – user3454387

+0

사용자 이름을 입력하는 동안 사용자 이름 유무를 확인하는 방법이 있습니까? – user3454387

+0

위의 코드는 작동하고 있습니다. 시도해 보셨나요? 다른 메모장이나 다른 것으로 옮기고 PHP 파일로 저장 한 다음 귀하의 브라우저에서 사용해보십시오. –

관련 문제