Yardım Aynı Veri Girişini Engelleme

Bu konuyu okuyanlar

disastergod

Öğrenci
Katılım
7 Temmuz 2021
Mesajlar
1
Reaksiyon puanı
0
Puanları
1
Yaş
23
Merhaba, arkadaşlar böyle bir kayıt olma ve giriş yapmak için kodum var fakat aynı mail ve kullanıcı adı ile kayıt yapılmasını engellemek istiyorum bir kaç saattir araştırıyor ve uğraşıyorum fakat bulamadım yardımcı olursanız çok memnun olurum.

<?php
require 'config.php';

if (isset($_POST['kayit_ol']))
{
$ad_soyad = $_POST['adi_soyadi'];
$kullanıcı_adı = $_POST['kullanıcı_adı'];
$email = $_POST['email'];
$sifre = $_POST['sifre'];

$id = DB::insert("INSERT INTO uyeler(adi_soyadi,kullanici_adi ,e_mail ,sifre) VALUES(?,?,?,?)",array(
$ad_soyad,
$kullanıcı_adı,
$email,
$sifre,
));

header("Location:?success=1");
}

if(isset($_POST['giris_yap'])){
$kullanıcı_adı = $_POST['kullanıcı_adı'];
$sifre = $_POST['sifre'];
$kontrol = DB::getRow ("SELECT * FROM uyeler WHERE kullanici_adi=? AND sifre=?", array(
$kullanıcı_adı,
$sifre
));
if ($kontrol) {
$_SESSION['login'] = $kontrol ->id;
header ("Location:index.php");
die();
}
else {
header("Location:?error=1");
die();
}
}

?>
 

lamer

Asistan
Katılım
3 Nisan 2021
Mesajlar
228
Reaksiyon puanı
150
Puanları
43
PHP:
$result = mysql_query("SELECT 1 FROM `uyeler` WHERE
    `kullanici_adi` LIKE '%" . $kullanıcı_adı. "%'
    OR `e_mail` LIKE '%" . $email. "%'");
$count= mysql_num_rows($result);
if ($count=== 0) {
// kayıt yok, üye olunabilir. Insert işlemlerini yap.
}
else{
// kullanıcı adı veya maili tekrar iste
}

Syntax olarak hatalar olabilir (php'ye çok hakim değilim), temel mantık bu yapman gereken o yüzden bu mantıkla düzenleyip yapabilirsin.. Girilen kullanıcı adı ve mail ile database de bir select sorgusu yapacaksın. Sorgu eğer en az bir satır döndürürse girilen bilgileri içeren bir kayıt vardır. Yeni mail ve kullanıcı adı istersin. Eğer satır sayısı 0 ise böyle bir kayıt yok, yani kayıt olabilir.
 
Üst