girişleri mysql ve php yinelenen

2 Cevap php

Benim veritabanı alanları "username" ve Unquie için "e-posta", bu sadece işleri aşağıdaki kodu kullanarak "username" zaten varsa, bir hata sonra yankılandı belirledik. Onlar e-posta yukarıdaki gibi aynı hata gösterilmesi gereken zaman kullanıcı, bir mysql yinelenen hata alır varsa.

<?php

require_once ( 'connection.php' );

$username=$_POST['username']; 
$password=md5($_POST['password']);
$email=($_POST['email']);
$ip=$_SERVER['REMOTE_ADDR'];
session_start();

$query = "INSERT INTO users (username, password, email, rank, ip, active) VALUES     ('$username','$password', '$email', '1', '$ip', '0')";

$sql = "SELECT username AND email FROM users WHERE username = '$username' AND  email     = '$email'" ;
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$row = mysql_fetch_array($result);

if ( $count== 0 )
{
if (!mysql_query($query))
{
 die('Error: ' . mysql_error());
}
  echo "You are signed up, please follow the link on your email to active your        account.";
}
else
 {
  echo "Username or Email already exists"."<br><a href=\"sign_up.php\">Try    Again</a></br>";
 }  
?

Teşekkürler

2 Cevap

Geçmeyi deneyin

WHERE username = '$username' AND  email     = '$email'"

karşı

WHERE username = '$username' OR email     = '$email'"

Edit: I'm trying karşı guess what you're trying karşı do here. From your description, it seems you want either the username or the email karşı be unique and you have two separate unique indexes on those columns. Your code checks for the combination of username and email karşı be unique.

Edit 2: Also, I think you might want karşı look inkarşı the concepts of SQL Injection and Concurrency.

Lütfen NEREDE deyimi yerine bir OR maddeye geçin VE.

Ayrıca, güvenli olduğundan emin yapmadan $ _POST verilen değerleri (ya da bu konuda $ _GET ve $ _REQUEST) kullanın ETMEYİN. Ben de SQL ile bir kullanıcı adı gönderdi ne olur?

','','','','',''); DELETE FROM users;

Eğer veritabanına göndermeden önce verileri temizlemek için add_slashes () veya benzer bir işlem kullanarak emin olun.