2013-05-09 6 views
0

등록 양식을위한 PHP 코드가 있는데, 테이블 (temp_members_db)에 세부 정보를 저장 한 다음 입력 된 전자 메일에 확인 코드를 보냅니다. 코드를 클릭하면 temp_members_db의 세부 정보가 registered_members라는 새 테이블로 이동되고 사용자가 로그인하면 로그인 세부 정보가 확인됩니다.중복 된 항목 피하기

문제는 가입 코드와 관련이 있으며 전자 메일의 중복을 방지하려면 어떻게해야합니까? 및 사용자 이름? 내 코드는 다음과 같습니다

<?php 

include('config.php'); 

$tbl_name=temp_members_db; 

$confirm_code=md5(uniqid(rand())); 

$name=$_POST['name']; 
$email=$_POST['email']; 
$password=$_POST['password']; 
$password_confirm=$_POST['password_confirm']; 

$sql="INSERT INTO $tbl_name(confirm_code, name, email, password)VALUES('$confirm_code', '$name', '$email', '$password')"; 
$result=mysql_query($sql); 

if 
($password != $password_confirm) 
{ 
echo "Password do not match"; 
} 
else if 
($result) 
{ 

$to=$email; 

$subject="Your confirmation link here"; 

$header="from: Name <[email protected]>"; 

$message="Your Comfirmation link \r\n"; 
$message.="Click on this link to activate your account \r\n"; 
$message.="http://[email protected]/confirmation.php?passkey=$confirm_code"; 

$sentmail = mail($to,$subject,$message,$header); 

} 

else { 
echo "Email not found"; 
} 

if($sentmail){ 
echo "Your Confirmation link Has Been Sent To Your Email Address."; 
} 
else { 
echo "<BR/>Cannot send Confirmation link to your e-mail address"; 
} 

?> 

감사합니다 : D

답변

0

이름 또는 이메일이 이미 데이터베이스에 INSERT 전에 테이블에 존재하는지 확인하기 위해 SQL을 실행합니다. 쿼리가 >0을 반환하면 오류 메시지를 표시 할 수 있습니다. 예를 들어

SELECT COUNT(*) FROM temp_members_db, registered_members WHERE email = $email OR name = $name;

+0

감사합니다, 그것은 : – Zalo

+0

당신은 환영합니다했다. 투표를하고 승인 된 대답으로 표시하십시오. :) –