Php ile Rest Api Hazırlama Ders-2

Merhaba arkadaşlar mobilhanem.com üzerinden hazırladığımız rest api eğitimlerinde bir önceki dersimizde rest api hakkında bilgiler vermiştik. Bu dersimizde artık rest apimizin temellerini atacağız. Öncelikle yazacağımız rest apiyi kullanacak insanların gönderdikleri sorgulardan aldıkları cevap türlerini header içerisinde için HTTP mesajları eklememiz gerekmektedir. HTTP mesajlarının listesine buradan bakabilirsiniz.

Rest apinin temel mantığı tek bir base url kullanarak çoklu işlev gerçekleştirmektir. Biraz daha detaylı anlatacak olursam; örneğin bizim base urlimiz /users/  olsun bu linke:

  • POST methodu ile sorgu istek atarsak üye ekleme,
  • PUT methodu ile sorgu atarsak güncelleme,
  • GET methodu ile sorgu atarsak listeleme,
  • DELETE methodu ile istek atarsak silme işlemi gerçekleştirsin.

Rest apiyi hazırlarken örnek alacağımız proje basit bir üyelik uygulaması olacak. Apiyi tamamladığımızda yazdığımız aşağıdaki işlemleri gerçekleştirebiliyor olacak.

  • Üye Kayıt
  • Üye Giriş
  • Üye Bilgileri Güncelleme
  • Üye Bilgileri Çekme
  • Üyelik Silme

Apiyi hazırladıktan sonra android tarafında da bir uygulama hazırlayıp yazdığımız rest apiyi test edeceğiz.

Sitemizde henüz OOP dersleri yayınlamadığımız için yazacağımız rest apiyi salt php kodları ile hazırlayacağız. İstek olması durumunda OOP yani nesne yönelimli olarakta apimizi yazabiliriz.

Öncelikle veri tabanımızı hazırlayalım.

--
-- Veritabanı: `restapi`
--

-- --------------------------------------------------------

--
-- Tablo için tablo yapısı `uyeler`
--

CREATE TABLE IF NOT EXISTS `uyeler` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `kullaniciAdi` varchar(25) NOT NULL,
 `adSoyad` varchar(100) NOT NULL,
 `sifre` varchar(255) NOT NULL,
 `posta` varchar(20) NOT NULL,
 `telefon` varchar(20) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Apiye üye kayıt ekranından başlayarak yapmaya başlayalım.

Öncelikle apimize ait bir klasör oluşturup (örneğin mobilhanem/uyelik) temel ayarlarımızı yapalım.

1- Veri Tabanı Bağlantısı

db.php adında bir dosya oluşturup veri tabanı bağlantımızı yapalım. Rest apimiz boyunca ben veri tabanı işlemleri için PDO kütüphanesini kullanacağım.

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "restapi";

try {
	$db = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
        $db->query("SET CHARACTER SET utf8");
}catch(PDOException $e) {
	die( $e->getMessage());
}

?>

Veri tabanı bağlantımızda hata olup olmadığını anlamak için tarayıcı üzerinden localhost/mobilhanem/db.php çalıştıralım. Boş bir sayfa çıkarsa bağlantımız sağlanmış demektir.

2- Kullanacağımız Fonksiyonlar

<?php
// HTTP durum kodlarını getiren fonksiyonumuz. 
function HttpStatus($code) {
	$status = array(
        100 => 'Continue',  
        101 => 'Switching Protocols',  
        200 => 'OK',
        201 => 'Created',  
        202 => 'Accepted',  
        203 => 'Non-Authoritative Information',  
        204 => 'No Content',  
        205 => 'Reset Content',  
        206 => 'Partial Content',  
        300 => 'Multiple Choices',  
        301 => 'Moved Permanently',  
        302 => 'Found',  
        303 => 'See Other',  
        304 => 'Not Modified',  
        305 => 'Use Proxy',  
        306 => '(Unused)',  
        307 => 'Temporary Redirect',  
        400 => 'Bad Request',  
        401 => 'Unauthorized',  
        402 => 'Payment Required',  
        403 => 'Forbidden',  
        404 => 'Not Found',  
        405 => 'Method Not Allowed',  
        406 => 'Not Acceptable',  
        407 => 'Proxy Authentication Required',  
        408 => 'Request Timeout',  
        409 => 'Conflict',  
        410 => 'Gone',  
        411 => 'Length Required',  
        412 => 'Precondition Failed',  
        413 => 'Request Entity Too Large',  
        414 => 'Request-URI Too Long',  
        415 => 'Unsupported Media Type',  
        416 => 'Requested Range Not Satisfiable',  
        417 => 'Expectation Failed',  
        500 => 'Internal Server Error',  
        501 => 'Not Implemented',  
        502 => 'Bad Gateway',  
        503 => 'Service Unavailable',  
        504 => 'Gateway Timeout',  
        505 => 'HTTP Version Not Supported');
    
    // gönderilen kod listede yok ise 500 durum kodu gönderilsin. 
    return $status[$code] ? $status[$code] : $status[500];
}

// Header ayarlama fonksiyonu 
function SetHeader($code){
    header("HTTP/1.1 ".$code." ".HttpStatus($code));
    header("Content-Type: application/json; charset=utf-8");
}

// kullanıcı adının uyumluluğunu kontrol eden fonksiyonumuz.
function kullaniciAdi($s) {
    $tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç');
    $eng = array('s','s','i','i','g','g','u','u','o','o','c','c');
    $s = str_replace($tr,$eng,$s);
    $s = strtolower($s);
    $s = preg_replace('/&.+?;/', '', $s);
    $s = preg_replace('/[^%a-z0-9 _-]/', '', $s);
    $s = preg_replace('/\s+/', '-', $s);
    $s = preg_replace('|-+|', '-', $s);
    $s = trim($s, '-');
 
    return $s;
}

?>

Hangi fonksiyonu ne için kullandığımızı üzerine açıklama olarak yazdık.

3- .htaccess Dosyası İle Url Yapısı

Biz gelen bütün istekleri index.php de karşılayacağız. bu yüzden apiye hangi url girilirse girilsin bu urli index.php ye yönlendirip urlin sonundaki değerleri de get methodu ile index.php den alacağız.

Kodlarımızı eklemeden önce örnek verecek olursak:

Kullanıcının göreceği ve kullanacağı url:
=> localhost/mobilhanem/users/{5}

Arkaplanada çalışan kimsenin göremediği url:
=> index.php?islem=user_id=5

normal şartlarda 1. urlin çalışması için uyelik/5 yolunda klasör yapımız ve içinde 5 i alabileceğimiz bir yapı olması gerekiyordu.
ama biz url yapımızı editleyerek yukarıdaki gibi yapacağız.

Başlangıçtaki .htaccess kodlarımız:

#gelen tüm istekleri index.php den karşılayalım. 
RewriteEngine on
RewriteRule ^users/$ index.php [QSA,L]
RewriteRule ^users/([0-9+])/$ index.php?user_id=$1 [QSA,L]



index.php sayfamızda apinin methodları ile ilgili kısımları ekleyelim. Hangi linkte ne komutu işletileceği ile alakalı koşularımızı ekleyelim.

<?php
include "db.php";
include "function.php";
$islem = isset($_GET["islem"]) ? addslashes(trim($_GET["islem"])) : null;
$jsonArray = array(); // array değişkenimiz bunu en alta json objesine çevireceğiz. 
$jsonArray["hata"] = FALSE; // Başlangıçta hata yok olarak kabul edelim. 

$_code = 200; // HTTP Ok olarak durumu kabul edelim. 
$_method = $_SERVER["REQUEST_METHOD"]; // client tarafından bize gelen method
// aldığımız işlem değişkenine göre işlemler yapalım. 
if($_method  == "POST") {
    // üye ekleme kısmı burada olacak. CREATE İşlemi 
}else if($_method == "PUT") {
    // üye güncelle kısmı burada olacak. PUT işlemi  
}else if($_method == "DELETE") {
    // üye silme işlemi burada olacak. DELETE işlemi 
}else if($_method == "GET") {
    // üye bilgisi listeleme burada olacak. GET işlemi 
}else {
    // hatalı bir parametre girilmesi durumunda burası çalışacak. 
    $jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
    $jsonArray["hataMesaj"] = "Girilen İşlem Bulunmuyor."; // Hatanın neden kaynaklı olduğu belirtilsin. 
}

SetHeader($_code);
$jsonArray[$_code] = HttpStatus($_code);
echo json_encode($jsonArray);
?>

Apimizin 1.adımı olan üye ekleme işlemini yaparsak, üye  ekleme bir CREATE işlemi olduğu için POST methodu kullanmalıyız.

4- Rest Api ile Http Post  Methodu Kullanımı

Get methodu nedir bilmeyenler get ve post methodunu anlattığımız dersimize  ve get ve post  methodu ile ilgili yaptığımız örneklere bakabilirler.  Rest apide de get ve post  methodunun kullanımında bir farklılık yoktur.

Şimdi üye eklemek için gerekli php kodumuzu yazalım ve geriye eklenme durumunu gösteren bir json çıktısı verelim.

if($_SERVER['REQUEST_METHOD'] == "POST") {
 	
 	// verilerimizi post yöntemi ile alalım. 
    $kullaniciAdi = addslashes($_POST["kullaniciAdi"]);
    $adSoyad = addslashes($_POST["adSoyad"]);
    $sifre = addslashes($_POST["sifre"]);
    $posta = addslashes($_POST["posta"]);
    $telefon = addslashes($_POST["telefon"]);
    
    // Kontrollerimizi yapalım.
    // gelen kullanıcı adı veya e-posta veri tabanında kayıtlı mı kontrol edelim. 
    $uyeler = $db->query("SELECT * from uyeler WHERE kullaniciAdi='$kullaniciAdi' OR posta='$posta'");
    
    if(empty($kullaniciAdi) || empty($adSoyad) || empty($sifre) || empty($posta) || empty($telefon)) {
    	$_code = 400; 
		$jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
        $jsonArray["hataMesaj"] = "Boş Alan Bırakmayınız."; // Hatanın neden kaynaklı olduğu belirtilsin.
	}
    else if(!filter_var($posta,FILTER_VALIDATE_EMAIL)) {
    	$_code = 400;
        $jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
        $jsonArray["hataMesaj"] = "Geçersiz E-Posta Adresi"; // Hatanın neden kaynaklı olduğu belirtilsin. 
    }else if($kullaniciAdi != kullaniciAdi($kullaniciAdi)){ // kullaniciAdi fonksiyonunu db.php dosyası içerisinden bakabilirsiniz.
        $_code = 400;
        $jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
        $jsonArray["hataMesaj"] = "Geçersiz Kullanıcı Adı"; // Hatanın neden kaynaklı olduğu belirtilsin.    
    }else if($uyeler->rowCount() !=0) {
    	$_code = 400;
        $jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
        $jsonArray["hataMesaj"] = "Kullanıcı Adı Veya E-Posta Alınmış."; 
    }else {
		$ex = $db->prepare("INSERT INTO uyeler set  
			kullaniciAdi= :kadi, 
			adSoyad= :ads, 
			sifre= :pass, 
			posta= :mail, 
			telefon= :tlf");
		$ekle = $ex->execute(array(
			"kadi" => $kullaniciAdi,
			"ads" => $adSoyad,
			"pass" => $sifre,
			"mail" => $posta,
			"tlf" => $telefon
			
		));
		if($ekle) {
			$_code = 201;
			$jsonArray["mesaj"] = "Ekleme Başarılı.";
		}else {
			$_code = 400;
			 $jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
       		 $jsonArray["hataMesaj"] = "Sistem Hatası.";
		}
	}
}

Şimdi Postman aracılığı ile test edelim.

 

 

1. Kullanacağımız method. (Üye ekleme için POST)

2. Api URL. (Çalıştığınız api url yazın)

3. Değişkenleri gönderme şekli. Biz form elemanı olarak gönderdiğimiz için 2. seçeneği seçiyoruz.

4. Apiye gönderilecek değişkenler.

5. Header status kodu.

6. Apiye bilgiler gönderildikten sonra apinin bize vermiş olduğu cevap, output.

 

5- Rest Api ile Http PUT Methodu Kullanımı

Http put methodu get ve post methoduna göre biraz farklı çalışır. normalde istemci tarafından bize bir json veri gelir bizde bu json veriyi alıp diziye çevirmemiz gerekir. Json veriyi aşağıdaki şekilde alabiliriz.

<?php

echo file_get_contents("php://input");
?>

yukarıdaki kod ekrana json bir çıktı üretecektir. Şimdi aldığımız json veriyi json_decode fonksiyonu ile diziye çevirelim. json_decode fonksiyonu ile ister bir objeye istersekte arraye çevirebiliriz.

örneğin:

<?php
$json = '

{
	"ad_soyad": "vehbiakdgan",
	"site": "mobilhanem.com"
}


';

var_dump(json_decode($json)); // obje olarak çevirir
var_dump(json_decode($json,true)); // dizi olarak çevirir

?>

istediğiniz yöntemi kullanabilirsiniz. Ben dersi analtırken object üzerinden anlatacağım.

Put methodu kullanırken nasıl veri alabileceğimizi ve nasıl çevireceğimizi  öğrendiğimize göre artık üye bilgilerini güncelleme işlemi yapabiliriz.

else if($_SERVER['REQUEST_METHOD'] == "PUT") {
     $gelen_veri = json_decode(file_get_contents("php://input")); // veriyi alıp diziye atadık.
    	
    	// basitçe bi kontrol yaptık veriler varmı yokmu diye 
     if(	isset($gelen_veri->kullanici_adi) && 
     		isset($gelen_veri->ad_soyad) && 
     		isset($gelen_veri->posta) && 
     		isset($gelen_veri->user_id) && 
     		isset($gelen_veri->telefon)
     	) {
     		
     		if($db->query("select * from uyeler where id='$gelen_veri->user_id'")->rowCount() == 0 ) {
				// Üye yok ise hata veriyoruz. 
			 		$_code = 400;
					$jsonArray["hata"] = TRUE;
		 			$jsonArray["hataMesaj"] = "Belirtilen id de üye bulunamadı.";
			}else if(!filter_var($gelen_veri->posta,FILTER_VALIDATE_EMAIL)) {
				// E-mail geçersiz ise hata veriyoruz.  
			 		$_code = 400;
					$jsonArray["hata"] = TRUE;
		 			$jsonArray["hataMesaj"] = "Geçersiz E-mail adresi.";
			}
			
			else {
				
			
     		// veriler var ise güncelleme yapıyoruz.
				$q = $db->prepare("UPDATE uyeler SET kullaniciAdi= :kadi, adSoyad= :ad_soyad, posta= :posta, telefon= :telefon WHERE id= :user_id ");
			 	$update = $q->execute(array(
			 			"kadi" => $gelen_veri->kullanici_adi,
			 			"ad_soyad" => $gelen_veri->ad_soyad,
			 			"posta" => $gelen_veri->posta,
			 			"telefon" => $gelen_veri->telefon,
			 			"user_id" => $gelen_veri->user_id	 	
			 	));
			 	// güncelleme başarılı ise bilgi veriyoruz. 
			 	if($update) {
			 		$_code = 200;
			 		$jsonArray["mesaj"] = "Güncelleme Başarılı";
			 	}
			 	else {
			 		// güncelleme başarısız ise bilgi veriyoruz. 
			 		$_code = 400;
					$jsonArray["hata"] = TRUE;
		 			$jsonArray["hataMesaj"] = "Sistemsel Bir Hata Oluştu";
				}
			}
		}else {
			// gerekli veriler eksik gelirse apiyi kulanacaklara hangi bilgileri istediğimizi bildirdik. 
			$_code = 400;
			$jsonArray["hata"] = TRUE;
	 		$jsonArray["hataMesaj"] = "kullanici_adi,ad_soyad,posta,telefon,user_id Verilerini json olarak göndermediniz.";
		}
}

üye güncelleme işlemini de bitirdik arkadaşlar. Postman aracılığı ile test edecek olursak:

Öncelikle postmandaki raw kısmından raw data olarak json göndereceğiz. Sizde aşağıdaki görseldeki şekilde veri gönderirseniz çalışacaktır.

6- Rest Api İle Http Delete Methodu

Şimdi silme işlemi yapacağımız için httpy ait  delete methodunu kullanacağız. Sileceğimiz üyeye ait user_id değerini alıyoruz ve veritabanımızda o id ye ait bir üye varsa siliyoruz.

else if($_SERVER['REQUEST_METHOD'] == "DELETE") {

    // üye silme işlemi burada olacak. DELETE işlemi 
    if(isset($_GET["user_id"]) && !empty(trim($_GET["user_id"]))) {
		$user_id = intval($_GET["user_id"]);
		$userVarMi = $db->query("select * from uyeler where id='$user_id'")->rowCount();
		if($userVarMi) {
			
			$sil = $db->query("delete from uyeler where id='$user_id'");
			if( $sil ) {
				$_code = 200;
				$jsonArray["mesaj"] = "Üyelik Silindi.";
			}else {
				// silme başarısız ise bilgi veriyoruz. 
				$_code = 400;
				$jsonArray["hata"] = TRUE;
	 			$jsonArray["hataMesaj"] = "Sistemsel Bir Hata Oluştu";
			}
		}else {
			$_code = 400; 
			$jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
    		$jsonArray["hataMesaj"] = "Geçersiz id"; // Hatanın neden kaynaklı olduğu belirtilsin.
		}
	}else {
		$_code = 400;
		$jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
    	$jsonArray["hataMesaj"] = "Lütfen user_id değişkeni gönderin"; // Hatanın neden kaynaklı olduğu belirtilsin.
	}
}

Delete işleminde de get kulanabiliriz. örneğin: http://localhost/mobilhanem/users/5 şeklinde link girdiğimizde postmana 5 numaralı id ye sahip üye silinecektir.

Şimdi son olarak üye bilgilerini listeleyip rest apimizi tamamlayalım.

7- Rest Api İle Http Get Methodu

Üye sil işlemindeki gibi bir user_id değeri gönderip geriye cevap olarak  üyeye ait bilgileri listeleyelim.

else if($_SERVER['REQUEST_METHOD'] == "GET") {


    // üye bilgisi listeleme burada olacak. GET işlemi 
    if(isset($_GET["user_id"]) && !empty(trim($_GET["user_id"]))) {
		$user_id = intval($_GET["user_id"]);
		$userVarMi = $db->query("select * from uyeler where id='$user_id'")->rowCount();
		if($userVarMi) {
			
			$bilgiler = $db->query("select * from  uyeler where id='$user_id'")->fetch(PDO::FETCH_ASSOC);
			$jsonArray["uye-bilgileri"] = $bilgiler;
			$_code = 200;
			
		}else {
			$_code = 400;
			$jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
    		$jsonArray["hataMesaj"] = "Üye bulunamadı"; // Hatanın neden kaynaklı olduğu belirtilsin.
		}
	}else {
		$_code = 400;
		$jsonArray["hata"] = TRUE; // bir hata olduğu bildirilsin.
    	$jsonArray["hataMesaj"] = "Lütfen user_id değişkeni gönderin"; // Hatanın neden kaynaklı olduğu belirtilsin.
	}
}

Ve böylelikle başlangıç seviyesinde rest apiyi  bitirmiş olduk.  Rest api kodlarının tamamına aşağıdaki linkten ulaşabilirsiniz.

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

 

 

422

Vehbi Akdoğan

Erzurum Atatürk Üniversitesi Bilgisayar Mühendisliği Mezunu
Web & Android Developer
#erzurumspor

26 Yorum

  • Merhabalar yazı için teşekkürler,şu noktayı tam olarak anlamadım. Postman kullanarak post,put ve ya delete olarak işlemimizi gönderebiliyoruz fakat bunu kod kısmında nasıl yapacağız. Request method olarak bunu nasıl ayarlayacağız. http://localhost/mobilhanem/users/5 çalıştırdığımızı düşünelim : ben bu url i yazdığımda 5 numaralı user silinecek mi yoksa 5 numaralı id ye sahip üyenin bilgilerimi gelecek nereden bileceğim. Get mi yoksa delete istek yaptığını nasıl anlayacağım ?

      • Merhaba Vehbi Bey.
        Ben Postman ile işlem yapmanın ne işe yaradığını anlayamadım. Yani web sitesi yaptığımız müşteri üye ekleme ve üye silme işlemlerini bu programlamı yapacak. Eğer öyleyse bu saçma değilmi. Değilse bu postman kullanmanın anlamı nedir. Müşteri bununla uğraşmaz zaten. Bu programcı işi. Ama neye yaradığını anlayamadım. Beni aydınlatırsanız sevinirim.

        • Bunun programcı işi olduğunu anladıysanız, kendi testlerinizde postman kullanmanız gerektiğini anlamış olmalısınız. Bakın yazıda bunu postman aracılığı ile test edelim yazıyor. Postman kendi işlerinizi test ederken kullanabilirsiniz.

  • ben url yi yazıyorum normal php de değerleri parametrik olarak gönderemiyorum htaccess de yanlış birşeymi yaptım acaba?

    • htaccess kodunu bu şekilde değiştirebilirsiniz :

      RewriteEngine on
      RewriteRule ^users/?$ index.php [NC, L]
      RewriteRule ^users/([0-9]+)/?$ index.php?user_id=$1 [NC, L]
  • merhaba, PHP konusunda yeniyim. elektronik modüller ile kendi sitemden bilgi alabilmek ve oraya bilgi yazabilmek istiyorum. sonrasında ise web sitemde bu dataları gösterebilmek istiyorum.
    bunu php dosyasıyla hazırladığım saat tarih bilgilerini almak için kullanmaya çalıştım olmadı. timezonedb gibi yerlerden api ile alabiliyorum diye api haline getirebilirmiyim dedim. verdiğiniz dosyaları indirdim postman ile de verdiğiniz resim gibi yapmaya çalıştım. zaten db.php dede aunı tip hata veriyor.
    kullandığım db.php aşağıdadır. ve dosyaları kendi websiteme yolladım restapi dizininde api dizini içerisinde duruyor. xp kullandığımdan localhost yapamıyorum.
    db.php:
    getMessage();
    }

    ?>
    internet sayfasından baksamda postman ile bilgi göndersemde aynı tip hata veriyor. BAzı sitelerkullanıcıya apikey veriyor ve girişini sağlıyor. biz kendimiz buradan bakacağız desek de başkalarının bu apiye kontrollü olarak yada sadece bilgi almak için bağlanması da gerekebilecektir.
    Bu hatayı nasıl düzeltebilirim ve client olarak get sorgulamasını nasıl yapabilirim.
    web üzerinden direkt erişebildiğim php dosyam örnektir.
    çeşitli zaman sistemleri mevcut sadece örnek olarak sayfaya web üzerinden bağlandığımda sorun olmuyor tüm işlevler geliyor. fakat get ile modül üzerinden timezondb api si gibi çağırmak istiyorum.
    <?php
    echo '
    Request has been sent. Please wait for my reply!
    ‘;
    echo ‘
    hello php color
    ‘. “” ;
    echo date(“Y/m/d”) . “”;
    echo date(“Y.m.d”) . “”;
    echo date(“Y-m-d”) . “”;
    echo “gun adi : ” .date(“l”) . “”;
    echo date(“h:i:sa”) . “”;
    $d1=strtotime(“July 04”);
    $d2=ceil(($d1-time())/60/60/24) ;// 4 temmuza ne kadar var hesap yapar değer – ise geçmiştir
    echo “There are ” . $d2 .” days until 4th of July.” . “”; // burada yazdırılır. if cümlesiyle gelecek yada geçmiş denir.
    date_default_timezone_set(“Turkey/Ankara”) . “”; // timezone işaretlenir.
    echo “12 saatlik am pm zaman: ” . date(“h:i:sa”) . “”; // 12 saat üzerinden am pm olarak yazar.
    echo “24 saatlik saat :” . date(“H”) . “”; // 24 saat üzerinden saat olarak yazar.
    echo ” dakika : ” . date(“i”) . “”; // 12 saat üzerinden am pm olarak yazar.
    echo “saniye: ” . date(“s”) . “”; // 12 saat üzerinden am pm olarak yazar.
    echo “24 saatlik saat ve dakika ” .date(“G:i”). “”; // 24 saatlik saat ve dakika
    echo “GMT saat farki : ” .date(“P”). “”; // GMT farkı

    ?>
    sizlerde bu sayfaya web üzerinden erişebilirsiniz şifre sormuyor.
    http://www.mikrobotik.com/php_date.php
    umarım ne istediğimi anlatabilmişimdir.

  • Merhabalar benim aklıma şu takıldı açıkçası her işlem için farklı kanalardan veri aldık ya (POST, GET, PUT gibi) Bunun yerine hepsini post ile alıp meselea get hali islem=üye-sil&üye-id=1 veya islem=üye-guncelle&uye-id=1&uye-ad=deneme gibi yapmamamızın sebebi nedir yani Herşeyi Post olarak alıp ana bir değişken ile işlemi takip edip diğer değişkenlerlede parametreleri almak gibi.

  • iyi günler hocam ben bir rest api yazmaya çalışıyorum, veri çekerken tablonun sadece 1 satırını çekebiliyorum. bütün tabloyu nasıl çekebilirim

    • sql sorgunuzda tüm dataları alıp json olarak tamponlayabilirsiniz.

      Örneğin:
      select * from uyeler where id=1; // bu sorgu tek bir satır getirir.

      select * from uyeler; // bu sorgu tüm üyeleri getirir. bunu kullanarak mysql_fetch_array() yada pdo kullanıyosanız fetchAll() methodu ile tüm datayı alabilirsiniz.

  • Merhaba,
    Bir kitap sitesi yapıyorum ve Veritabanı bağlantısını rest apiyle yapmadım ama asp.net ile mobil cihazların kullanacağı REST API yazmak istiyorum nasıl yapabilirim yardımcı olur musunuz

  • Dostum developer.dhl den api ile izleme numarasını sitemiz üzerinden aratmak istiyorum.PHP de yeniyim.Yardımcı olabilir misin?

  • Eğer deneyip çalıştıramayan olursa htaccess içini şu kodla değiştirin çalışıyor;

    RewriteEngine on
    RewriteRule ^users/$ index.php [QSA,L]
    RewriteRule ^users/([0-9]+) index.php?user_id=$1 [QSA,L]

  • Merhaba üye oluşturmaya çalışırken,üye databaseye kayıt olmasına rağmen 400 Bad request hatası alıyordum.Bunun nedeni konudaki ve kaynak koddaki değişikliktir.Direkt olarak kaynak kodu indirip çalıştıranlar bu hatayı alıyor.Bunun çözümü şu şekilde.

    index.php içerisindeki post metodunda “if(!$ekle) ” içerisindeki “!” işaretini kaldırırsanız sorun çözülecektir.Yani konu içerisinde paylaşılan kod doğrudur.Kaynak koddaki yanlış.

  • Merhaba,
    bir sorum olucak, bir api hazirliyorum ve takildigim bir nokta varm,elimizde 2 veritabani var ve bu veri tabanlarinin api baglantilarinda (username ve Api key ile baglanti kuruluyor)sorum : bir database baglanip sorguya cevap gelmesse diger database baglansin bunun icin (url+username+Apikey )kullanilicakm buradaki codlamayi nasil yaparim?

    Saygilar
    Abdullah Calik

  • Hocam merhaba. Verdiğiniz kodda post veya get ile ahmet adındaki tüm kayıtları (örnek 10 kayıt var ise ) almak istersek nasıl yapmalıyız

    • merhaba, bulabildiniz mi hocam? “select * from tabloadi where status=’1′ ” şeklinde status u 1 olanları çekmek istiyorum. ancak sadece 1 kayıt veriyor bana

  • merhabalar, öncelikle emeğiniz için teşekkür ederim, ben listeleme dışında ekleme düzenleme yapamıyorum url örneği paylaşabilirmisiniz ???

  • Bu güzel anlatım için çok teşekkür ederim. Kaynak kodun içerisinde bulunan if(!$ekle) satirinda ünlemi kaldırırsanız doğru çalışacaktır. Herkese kolay gelsin

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?