중복 된 사용자 이름을 확인하고 데이터베이스에 이미 존재하는지 확인해야합니다. 그럴 경우 오류 메시지가 표시됩니다.
나는 사용자 이름으로하고 있지만 전자 메일 주소로도해야합니다.
여기 내 코드는 지금까지의 :
if(isset($_POST['submit'])){
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$IP = $_SERVER['REMOTE_ADDR'];
$query = mysql_query("SELECT username FROM Users WHERE username='".$username."'");
...
else if (mysql_num_rows($query) != 0)
{
echo "<p><b><center> <font color=\"red\">Username already exists.<br> </b>If you already have an account, please<a href = '../user/login.php'> click here </a> to login.</font></center></p>";
}
내 질문은 내가 이메일을 동일한 작업을 수행 할 수있는 방법입니까? $query = mysql_query("SELECT email FROM Users WHERE email='".$email."'");
같은 이메일에 대한 다른 검색어가 필요하며 위 코드의 첫 번째 검색어 다음에 추가해야하나요?
나는 그것을 시도했다. 그러나 그것은 나에게 오류를 준다. 감사합니다. .
** 외부 변수를 사용하여 SQL 문을 작성하면 코드가 SQL 삽입 공격에 취약 해집니다. ** 또한 "O'Malley"와 같이 작은 따옴표가있는 입력 데이터는 쿼리를 폭파시킵니다. 웹 응용 프로그램을 보호하기 위해 PDO 모듈을 사용하여 매개 변수가있는 쿼리에 대해 알아보십시오. [이 질문] (http://stackoverflow.com/questions/60174)에는 많은 상세한 예제가 있습니다. 위험의 대안 및 설명은 http://bobby-tables.com/php를 참조하십시오. 외부 데이터로 작성된 SQL 문을 실행하는 것은 문앞에서 발견 된 재료로 만든 스프를 먹는 것과 같습니다. –
그냥 레코드를 삽입하지 않으시겠습니까? 아는 제약 조건으로 인해 실패하면 이미 그러한 레코드가 있습니다. 여기서는 고유 한 제약 조건이 이미 설정되어 있다고 가정합니다. –