HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Kartaca'nın eğlenceli iş başvurusu

Takip ettiğim firmalardan biri olan Kartaca "yeni mezun yazılım uzmanı" aradığını duyurmuş. Başvuru süreci ise oldukça eğlenceli ve seçici olmuş, hazırlayanların eline sağlık.

kartaca-is-basvuru

Başvuru sayfasına ulaşınca karşımıza bu HEX çıkıyor. Decode edince ise Base64 hakkında bir wiki bağlantısından ibaret olduğunu anlıyoruz.

Sayfanın kaynak kodlarına baktığımda ise kabak gibi Base64 hashi karşımıza çıkıyor. Esasen ben önce Base64'ü decode etmiş sonra HEX'i ASCII'ya çevirmiştim. Yani HEX pek bi işime yaramamıştı :)

kartaca-basvuru-base64

HEX'i decode ettiğimde karşıma başvuruyu nasıl yapabileceğime dair bi yol haritası çıktı:

Aşağıdaki dokümantasyonu kullanarak REST ile başvurunuzu yapabilirsiniz.
*****************************************************************************
*   Adres                   *   /basvuru.php                                *
*---------------------------*-----------------------------------------------*
*   Metod                   *   POST                                        *
*---------------------------*-----------------------------------------------*
*   Encoding                *   UTF-8                                       *
*****************************************************************************

*****************************************************************************
*       İSTEK PARAMETRELERİ                                                 *
*****************************************************************************
*   İsim        *   Zorunlu *   Açıklama                                    *
*****************************************************************************
*   fname       *   Evet    *   Ad                                          *
*---------------*-----------*-----------------------------------------------*
*   lname       *   Evet    *   Soyad                                       *
*---------------*-----------*-----------------------------------------------*
*   email       *   Evet    *   E-posta                                     *
*---------------*-----------*-----------------------------------------------*
*   phone       *   Evet    *   Telefon numarası                            *
*---------------*-----------*-----------------------------------------------*
*   cv          *   Evet    *   Binary olarak PDF formatında CV             *
*****************************************************************************

*****************************************************************************
*       YANIT ALANLARI                                                      *
*****************************************************************************
*   İsim        *   Açıklama                                                *
*****************************************************************************
*               *   Başarılı sorgularda onay mesajı içerir.                 *
*   result      *   Örnek yanıt:                                            *
*               *       { result : 'Başvurunuz alınmıştır.' }               *
*---------------*-----------------------------------------------------------*
*               *   Başarısız sorgularda hata mesajı içerir.                *
*   error       *   Örnek yanıt:                                            *
*               *       { error : 'fname, lname alanları boş olamaz.' }     *
*****************************************************************************

En eğlenceli kısım bundan sonra başlıyor. Açıkcası REST mevzuuna pek aşina değildim ama stackoverflow'a üç beş dakika göz atarak olayı hallettim.

urllib2, httplib, httplib2, pycurl, requests gibi zilyon tane kütüphanesi sebebiyle elim direk sadık dost Python'a gitsede, başvuruda PHP'nin adı geçtiği için PHP ile yapayım dedim. Açıkcası PHP'den çok anladığım söylenemez (Python'a nazaran) yine de şöyle bir betik yazdım:

<?php

$selam = array('Content-Type: multipart/form-data');
$basvur = 'http://www.kartaca.com/basvur/is_basvuru.php';
$gonder = array(
    'fname' => 'Mustafa Serhat',
    'lname' => 'Dundar',
    'email' => 'msdundars@gmail.com',
    'phone' => '555-55-55',
    'cv'=>'@cv.pdf;type=application/pdf'
);

$msd = curl_init();
curl_setopt($msd, CURLOPT_HTTPHEADER, $selam);
curl_setopt($msd, CURLOPT_URL,$basvur);
curl_setopt($msd, CURLOPT_POST,1);
curl_setopt($msd, CURLOPT_POSTFIELDS, $gonder);

$sonuc = curl_exec ($msd);
curl_close ($msd);
echo $sonuc;

?>

Sıra geldi betiği çağırmaya ve sonuçları gözlemeye. Terminal'den:

$ curl -v http://localhost/www/code/kartaca.php

çağırdığınızda şu sonuçlar dönüyor:

* About to connect() to localhost port 80 (#0)
*   Trying 127.0.0.1... connected
> GET /www/code/kartaca.php HTTP/1.1
> User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: localhost
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sun, 14 Jul 2013 01:39:10 GMT
< Server: Apache/2.2.22 (Ubuntu)
< X-Powered-By: PHP/5.3.10-1ubuntu3.6
< Vary: Accept-Encoding
< Content-Length: 61
< Content-Type: text/html
<
* Connection #0 to host localhost left intact
* Closing connection #0
{"result": "Basvurunuz alinmistir."}

ve hepsi bu kadar.

Hep böyle güzel iş ilanları görmek dileğiyle.

Date:
Categories: tech, other, php

Share this post!


Blog Comments powered by Disqus.