January 29, 2013

[PHPINDONESIA.NET]

cURL dan Webservices(Studikasus:Login) Licensi Dokumen : Copyright © 2013 phpindonesia.net Seluruh dokumen di phpindonesia.net dapat digunakan dimodifikasi dan di sebarkan secara bebas untuk tujuan bukan komersial(non profit)dengan sarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak di perbolehkan melakukan penulisan ulang. Kecuali mendapatkan ijin terlebih dahulu dari phpindonesia.net.

Ter-inspirasi dari pertanyaan salah satu anggota di group FB PHP Indonesia, saya jadi kepikiran pengen Nulis tutorial ini. Walaupun sebener nya sudah banyak blog yang ngebahas tentang ini, disini saya cuman pengen menjelas kan dengan cara saya sendiri sekalian belajar menulis hehe.. Pertanyaan nya kira-kira begini: bisa gak sih login ke website kita menggunakan akun website lain. Saya tertarik dengan jawaban OM cahya nsn, maaf om saya sebut2 nama nya, soal nya saya nge-fan haha…, klo gak salah begini jawaban beliau : 1. jika sistem yang satu bisa ngakses database sistem yang satunya lagi.. tinggal di konekin ke database tersebut untuk validasi loginnya 2. Jika ingin menggunakan webservice, pastikan di sistem yang buat ngecek login-nya itu nyediain API-nya, kalo nggak ada ya.. gak bisa tho? pada tutorial kali ini saya akan membahas poin ke dua dari jawaban om cahya dsn. sedikit gambaran : disini ada dua system, system A dan system B, untuk login ke system A menggunakan Akun system B, pastinya system B harus menyediakan webservice(API). Yang nanti nya API tersebut akan di gunakan untuk mengecek validitas username dan password yang dikirim oleh system B melalui GET/POST request dengan parameter username dan password. Kemudian respon yang akan di kasih oleh API tersebut bisa berbentuk XML atau jSON, dalam hal ini saya kan menggunakan jSON. ok biar gak terkesan banyak basa basi mari kita langsung implementasi saja. buat table “user” , sebagai contoh: CREATE TABLE `user` ( `email` varchar(100) NOT NULL, `username` varchar(100), `password` varchar(200), PRIMARY KEY (`email`) )

January 29, 2013

[PHPINDONESIA.NET]

Contoh Data : 1. INSERT INTO user (email,username,password) VALUES ('[email protected]','faiz fadly', '21232f297a57a5a743894a0e4a801fc3'); 2. INSERT INTO user (email,username,password) VALUES ('[email protected]','Adly', ' fe01ce2a7fbac8fafaed7c982a04e229');

Ket password : 21232f297a57a5a743894a0e4a801fc3 = admin fe01ce2a7fbac8fafaed7c982a04e229 = demo

Selanjut buat Folder baru di htdoc anda dengan nama “system_B” kita asusmsi kan sebagai Sistem B kemudian buat file baru dengan nama “api.php” di dalam folder “system_B”. berikut script nya : 1.
= $_POST['email'];

8. $password = $_POST['password']; 9. 10. $Q = mysql_query("SELECT * FROM user WHERE email='$email' 11.

AND PASSWORD='$password'")or die(mysql_error());

12.

if($Q){

13.

$posts = array();

14.

if(mysql_num_rows($Q))

15.

{

16.

while($post = mysql_fetch_assoc($Q)){

17.

$posts[] = $post;

18.

}

19.

}

20.

echo json_encode(array('user'=>$posts));

21.

}

22. ?>

Respon yang akan di kemnalikan oleh skrip di atas berupa data jSON.

January 29, 2013

[PHPINDONESIA.NET]

selanjut nya kita bikin satu folder lagi dengan nama “System_A” kita asusmsikan ini sebagai Sistem A. buat file dengan nama “formlogin.php” : 1.

Skrip di bawah ini adalah fungsi Login Untuk Action Form di atas : 1.
$datauser = array(

5.

//'API_key' => $key,

6.

'email' => $email,

7.

'password' => $password,

8.

);

9. 10.

$postdatauser = "";

11.

foreach($datauser as $k => $v){

12. 13.

$postdatauser .=

$k . "=" . $v."&";

}

14. 15.

//$postData = http_build_query($user_data);

16.

$curlHandle = curl_init();

17.

curl_setopt($curlHandle, CURLOPT_URL, $url);

18.

curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $postdatauser); //

19.

curl_setopt($curlHandle, CURLOPT_HEADER, 0);

20.

curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);

21.

curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);

22.

curl_setopt($curlHandle, CURLOPT_POST, 1);

23.

$string

24.

curl_close($curlHandle);

25. 26. 27. }

return $string;

= curl_exec($curlHandle);

January 29, 2013

[PHPINDONESIA.NET]

Usesage dari fungsi di atas sebagai berikut : echo doLogin("http://localhost/sistem_A/api.php",$_POST[“email”], $_POST[“password”]);

skrip di atas akan menghasilkan output berupa jSON: 1. {"user":[ 2.

{

3.

"email":"[email protected]",

4.

"username":"faiz fadly",

5.

"password":"21232f297a57a5a743894a0e4a801fc3"

6.

}

7.

]

8. }

Selanjut nya kita akan meng-convert String jSON di atas menjadi Array dengan fungsi json_decode 1. $string

= doLogin("http://localhost/sistem_A/api.php",$username,$password);

2. $arr

= json_decode($string,true);

3. $email

= $arr['user'][0]['email'];

4. $password = $arr['user'][0]['password'];

Setelah itu kita akan melakukan pengecekan apakah user ada atau gak : 1. if($email !=''){ 2.

session_start();

3.

$_SESSION['email']

4.

$_SESSION['password']

5.

header("Location:targethalamansuksess.php");//arahkan ke target halaman suksess

6. 7.

= $email; = $password;

}else{ echo "Authentication Failed!";

8. }

Selesain. Semoga Bermanfaat  , tetap sehat tetap semangat biar bisa nulis trus .

January 29, 2013

[PHPINDONESIA.NET]

Biografi Penulis :

Faiz Fadly : anak kedua dari 3 bersaudara, lahir di madura, pernah jadi santri di pondok pesantren Ummul Quro Al-Islami, leuwiliang Bogor. Menyelesaikan S1 jurusan Sistem Informasi di Universitas Budi Luhur, Jakarta. saat ini bekerja di salah satu perusahan IT di Jakarta, sebagai IT Spesialis. Email : [email protected] facebook : https://www.facebook.com/sourcecodeonline

cURL-Webservice(kasuslogin)-PHP.pdf

... ada dua system, system A dan system B, untuk login ke system A. menggunakan Akun system B, pastinya system B harus menyediakan webservice(API).

90KB Sizes 3 Downloads 125 Views

Recommend Documents

No documents