Swift ve Mysql Kullanarak Kullanıcı Giriş ve Kayıt İşlemleri

Swift ve Mysql Kullanarak Kullanıcı Giriş ve Kayıt İşlemleri

Herkese merhabalar,

Bu yazımızda Mysql kullanarak Swift’te kullanıcı girişi ve kayıt işlemlerine bakacağız.

Kullanacaklarımız

giris.php ve kayit.php olmak üzere 2 adet php dosyası.

Alamofire ve SwiftyJSON kütüphaneleri

 

İlk olarak veritabanı oluşturacağız.

Görsellerle hızlıca anlatımını gerçekleştirdim.
"

 

 

 

 

 

 

Şimdi giris.php ve kayit.php dosyalarımızı oluşturalım.

Giriş


<?php 
$con = mysqli_connect("localhost","veritabanı_kullanıcısı","veritabanı_şifresi","veritabanı_adı");

$json = file_get_contents('php://input');
 
$obj = json_decode($json,true);


$email = $obj['eposta'];

$password = $obj['sifre'];

$sql = "SELECT * FROM kullanicilar WHERE eposta='$email' AND sifre='$password'";

$result = $con->query($sql);
if ($result->num_rows >0) {
 
 
 while($row[] = $result->fetch_assoc()) {
 
 $tem = $row;
 
 $json = json_encode($tem);
 }
 
} else {
    $json = "Hata böyle bir kullanıcı bulunamadı";
}
 echo $json;
$con->close(); ?>

Kayıt

<?php 
header('Content-type: text/html; charset=utf-8');
$con = mysqli_connect("localhost","veritabanı_kullanıcısı","veritabanı_şifresi","veritabanı_adı");


$json = file_get_contents('php://input');
 mysqli_set_charset($con,"utf8");
$obj = json_decode($json,true);

$isimsoyisim = $obj['isimsoyisim'];

$eposta = $obj['eposta'];

$sifre = $obj['sifre'];

	$Sql_Query = "INSERT INTO `kullanicilar` (`isimsoyisim`, `eposta`, `sifre`) values ('$isimsoyisim', '$eposta', '$sifre')";

$result = mysqli_query($con,"SELECT * FROM kullanicilar WHERE eposta='$eposta'");
$num_rows = mysqli_num_rows($result);

 if($num_rows>0){

$MSG = 'Bu üye zaten mevcut.';

$json = json_encode($MSG);

 echo $json ;
 
 }
 else{

    if (mysqli_query($con,$Sql_Query)) {
        $MSG = 'Üyeliğiniz başarıyla oluşturulmuştur.' ;

        $json = json_encode($MSG);

        echo $json ;
    }
    else {
        $MSG = 'Bir hata oluştu tekrar deneyiniz' ;

        $json = json_encode($MSG);

        echo $json;
    }
 }
 mysqli_close($con); ?>

Bunları kaydettikten sonra Swift bölümüne geçebiliriz.

Eğer Mac bilgisayarınızda CocoaPods kurulu değilse terminale sudo gem install cocoapods komutunu yazarak kurabilirsiniz.

CocoaPods kurulu ise terminalden projenizin olduğu dosyaya gidin. Bunun için cd komutunu kullanabilirsiniz. Kısayol olarak terminale cd yazdıktan sonra proje klasörünüzü terminale sürükleyip bırakabilirsiniz.

Ardından pod init komutunu çalıştırın.

Pod Init

Bir kaç saniye sonra proje dosyanızın içerisinde Podfile dosyası oluşacaktır. Tekrar terminale open Podfile yazarak pod dosyanızı açın.

Açılan Podfile dosyasında use_frameworks! kısmını bulun ve hemen altına aşağıdaki komutları yazın ve kaydedin.

pod ‘Alamofire’
pod ‘SwiftyJSON’

Son olarak tekrar terminali kullanarak eklediğimiz kütüphaneleri install edeceğiz. Bunun için pod install komutunu kullanın.

Artık terminalde bir işimiz kalmadı. Şimdi proje dosyanızda PROJENIZIN_ISMI.xcworkspace dosyası oluştu bunu açın. CocoaPods kullanımında bu dosya üzerinden çalışmalarınızı yapmanız gerekiyor.

 

Projemizi açıktan sonra ilk olarak tasarımımızı hazırlıyoruz ve objelerimizi view controllerımıza tanımlıyoruz. Ben tek view controller üzerinden ilerleyeceğim siz dilerseniz 2 ayrı view controller hazırlayabilirsiniz.

Projemize eklediğimiz kütüphanelerimizi import ediyoruz. Kodlarımızın en üstünde bulunan import UIKit satırının hemen altına aşağıdaki kodu ekleyelim

import Alamofire
import SwiftyJSON

Ardından giriş butonumuza aşağıdaki kodları ekleyelim.

 //İstek göndereceğimiz url
        let url = "http://kodblogu.net/swift/giris.php"
        //URL'e göndereceğimiz parametreler.
        let params = [
            "eposta": girisEposta.text!,
            "sifre": girisSifre.text!,
        ]
        Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: [:]).responseJSON { girisResponse in
            //İstekten dönen kodu öğreniyoruz
            let status = girisResponse.response?.statusCode
            
            //Eğer kod 200 ise başarılı bir şekilde veritabanımızdan response dönmüştür.
            if status == 200 {
                switch girisResponse.result {
                case let .success(value):
                    let girisJSON = JSON(value)
                    for giris in girisJSON.array! {
                        let eposta = giris["eposta"].stringValue
                        let isim = giris["isim"].stringValue
                        self.epostaLabel.text = eposta
                        self.isimSoyisimLabel.text = isim
                    }
                case let .failure(e):
                    print(e)
                }
            }
        }

Kayıt butonumuza aşağıdaki kodları ekleyelim.

 //İstek göndereceğimiz url
        //İstek göndereceğimiz url
        let url = "http://kodblogu.net/swift/kayit.php"
        //URL'e göndereceğimiz parametreler.
        let params = [
            "eposta": kayitEposta.text!,
            "sifre": kayitSifre.text!,
            "isimsoyisim": KayitIsım.text!,
        ]
        Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: [:]).responseJSON { kayitResponse in
            //İstekten dönen kodu öğreniyoruz
            let status = kayitResponse.response?.statusCode
            
            //Eğer kod 200 ise başarılı bir şekilde veritabanımızdan response dönmüştür.
            if status == 200 {
                print(kayitResponse.result.value as? String ?? "")
            }
        }

Son olarak Info.plist dosyamıza aşağıdaki satırları ekleyelim ve uygulamamızı başlatalım.

Başarılı kayıt ekranı. Print bölümünde Üyeliğiniz başarıyla oluşmuştur yazısı geldi. Aynı zamanda veritabanımıza da yazdı.

 

 

Başarılı giriş ekranı. Üstteki 2 label’a isim soyisim ve e-posta adresimizi yazdırdı.

 

Okuduğunuz için teşekkürler. Diğer Swift yazılarımız

Paylaş:

Yorum yapın