PDO Aynı Kayıt Engelleme
Aynı kullanıcı adıyla kayıt yapmayı engellemek istiyorum. Kodlarım aşağıda nasıl bir yol izlemem gerekiyor. Teşekkür ederim şimdiden.
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<?php
if ($_POST) {
$ad = $_POST['ad'];
$whatsapp = $_POST['whatsapp'];
$uzmanlik = $_POST['uzmanlik'];
$ozgecmis = $_POST['ozgecmis'];
$hata = "";
if (isset($_FILES['foto'])) {
if ($_FILES['foto']['error'] != 0) {
$hata .= 'Dosya yüklenirken hata gerçekleşti lütfen daha sonra tekrar deneyiniz.';
} else {
$dosya_adi = strtolower($_FILES['foto']['name']);
if (file_exists('images/' . $dosya_adi)) {
$hata .= " $dosya_adi diye bir dosya var";
} else {
$boyut = $_FILES['foto']['size'];
if ($boyut > (1000 * 1000 * 5)) {
$hata .= ' Dosya boyutu 2MB den büyük olamaz.';
} else {
$dosya_tipi = $_FILES['foto']['type'];
$dosya_uzanti = explode('.', $dosya_adi);
$dosya_uzanti = $dosya_uzanti[count($dosya_uzanti) - 1];
if (!in_array($dosya_tipi, ['image/png', 'image/jpeg', 'image/gif']) || !in_array($dosya_uzanti, ['png', 'jpg', 'gif'])) {
//if (($dosya_tipi != 'image/png' || $dosya_uzanti != 'png' )&&( $dosya_tipi != 'image/jpeg' || $dosya_uzanti != 'jpg')) {
$hata .= ' Hata, dosya türü JPEG veya PNG olmalı.';
} else {
$foto = $_FILES['foto']['tmp_name'];
copy($foto, 'uyeler/' . $dosya_adi);
//Eklencek veriler diziye ekleniyor
$satir = [
'foto' => $dosya_adi,
'ad' => $ad,
'whatsapp' => $whatsapp,
'uzmanlik' => $uzmanlik,
'ozgecmis' => $ozgecmis,
];
// Veri ekleme sorgumuzu yazıyoruz.
$sql = "INSERT INTO uyeler SET foto=:foto, ad=:ad,whatsapp=:whatsapp,uzmanlik=:uzmanlik,ozgecmis=:ozgecmis";
$durumx = $baglanti->prepare($sql)->execute($satir);
if ($durumx) {
echo '<script>Swal.fire("Başarılı","Kayıt Başarılı","success").then((value)=>{ window.location.href = "index.php"});
</script>';
}
}
}
}
}
}
if($hata!=""){
echo '<script>Swal.fire("Hata","'.$hata.'","error");</script>';
}
}
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
if ($_POST) {
$_POST = array_map('trim', $_POST);
extract($_POST);
$hata = "";
if (isset($_FILES['foto'])) {
if ($_FILES['foto']['error'] != 0) {
$hata .= 'Dosya yüklenirken hata gerçekleşti lütfen daha sonra tekrar deneyiniz.';
} else {
$dosya_adi = strtolower($_FILES['foto']['name']);
if (file_exists('images/' . $dosya_adi)) {
$hata .= " $dosya_adi diye bir dosya var";
} else {
$boyut = $_FILES['foto']['size'];
if ($boyut > (1000 * 1000 * 5)) {
$hata .= ' Dosya boyutu 2MB den büyük olamaz.';
} else {
$dosya_tipi = $_FILES['foto']['type'];
$dosya_uzanti = explode('.', $dosya_adi);
$dosya_uzanti = $dosya_uzanti[count($dosya_uzanti) - 1];
if (!in_array($dosya_tipi, ['image/png', 'image/jpeg', 'image/gif']) || !in_array($dosya_uzanti, ['png', 'jpg', 'gif'])) {
//if (($dosya_tipi != 'image/png' || $dosya_uzanti != 'png' )&&( $dosya_tipi != 'image/jpeg' || $dosya_uzanti != 'jpg')) {
$hata .= ' Hata, dosya türü JPEG veya PNG olmalı.';
} else {
$check = $baglanti->prepare("SELECT ad FROM uyeler WHERE ad = ?");
$check->execute([$ad]);
if ($check->rowCount()) {
$hata = 'Bu ad kullanılıyor!';
}
else {
$foto = $_FILES['foto']['tmp_name'];
copy($foto, 'uyeler/' . $dosya_adi);
//Eklencek veriler diziye ekleniyor
$satir = [
'foto' => $dosya_adi,
'ad' => $ad,
'whatsapp' => $whatsapp,
'uzmanlik' => $uzmanlik,
'ozgecmis' => $ozgecmis,
];
// Veri ekleme sorgumuzu yazıyoruz.
$durumx = $baglanti->prepare("INSERT INTO uyeler SET foto=:foto, ad=:ad,whatsapp=:whatsapp,uzmanlik=:uzmanlik,ozgecmis=:ozgecmis")->execute($satir);
if ($durumx)
echo '<script>Swal.fire("Başarılı","Kayıt Başarılı","success").then((value)=>{ window.location.href = "index.php"});</script>';
}
}
}
}
}
}
if($hata!=""){
echo '<script>Swal.fire("Hata","'.$hata.'","error");</script>';
}
}
Bende şöyle çözdüm hocam teşekkür ederim
$kontrol = $baglanti->query("SELECT * FROM uyeler WHERE ad='{$_POST['ad']}'");
if($kontrol->rowCount() != "0"){
$hatax = "Kullanıcı adı sisteme kayıtlı!";
echo '<script>Swal.fire("Hata","'.$hatax.'","error").then((value)=>{ window.location.href = "index.php"});</script>';
exit();
die();
}