Bu bağlantı için ilk olarak oracle driver'ına sahip olmalısınız. Aşağıdaki kod ile hangi PDO driverlarına sahip olduğunuzu kontrol edebilirsiniz.
<?php
foreach(PDO::getAvailableDrivers() as $driver)
echo $driver, '\n';
?>
Bu bağlantı için ilk olarak oracle driver'ına sahip olmalısınız. Aşağıdaki kod ile hangi PDO driverlarına sahip olduğunuzu kontrol edebilirsiniz.
<?php
foreach(PDO::getAvailableDrivers() as $driver)
echo $driver, '\n';
?>
PHP kullanarak oracle database'e bağlanıp bir tabloyu çektikten sonra bu veriyi excel dosyasına yazdırmak istiyorsanız aşağıdaki kodu kullanabilirsiniz. Bu kod Türkçe karekter desteklemez, çıktınız Türkçe karekter içeriyorsa UTF-8 BOM satırını açmanız gerekir.
Switchler arasında bulunan bağlantıların hepsini aynı anda kullanabilmek için bu linkleri birleştirmek gerekir. Linkleri birleştirme işlemine her firma başka bir isim vermiştir ama temelde hepsi aynı işi yapar.
Nic Teaming - Microsoft
Bount - Linux
Ether Channel - Cisco
Port Channel
Eth Trunk - Huawei
Lag - Alcatel
MLT
Bundle - Cisco
Bu ifadelerin hepsi aynı yapıyı işaret eder, sadece protokoller farklı olabilir. Göründüğü gibi Huawei markası için bu teknolojinin adı Eth Trunk'dır. Farklı ekipmanların beraber kullanılabilmesi için IEEE standardı Link Aggregation Control Protocol (LACP) kullanılması önerilir. Şimdi Huawei Access PE ile CE cihazları arasında Ehh-Trunk işleminin nasıl yapıldığına bakalım, iki adet 10G bağlantıyı birleştirip 20G bir bağlantı elde edelim.
Yukarıdaki konfigürasyonda mode lacp komutu yazılmasada her iki cihazda Huawei olduğu için link çalışacaktır, fakat farklı marka ekipmanlar için konfigürasyon yapılacak ise her iki tarafta da LACP protokolü kullanılması önerilir. Bu bağlantıların birleştirilebilmesi için aradaki bağlantıların L1 olması gerektiği unutulmamalıdır (Kablo, Fiber, L1 RL devresi vb...)
Eht-Trunk interface'lere sub interfaceler eklenebilir, bu interfacelerin konfigürasyon anlamışda fiziksel interfacelerden bir farkı yoktur.
Eth-Trunk bağlantısı altında ikiden çok interface de kullanabilirsiniz. Fiziksel interface altına eth-trunk 10 yazdığınızda bu interface Eth-Trunk grubuna katılmış olur.
Alcatel / Nokia OLT cihazlarında problem tespiti ve çözümü için aşağıdaki sık tercih edilen komutlar kullanılır. Gpon bağlantılarda sorun giderme komutları;
Vlan 1002
Port 1/1/2/1/1/1/1
Örnek komutlar;
show service
service-using | match 1002 (Servis Durumu)
show vlan
current-15min-stats port 1/1/2/1/1/1/1 1002 detail (Veri alışverişini görmek
için kullanılır.)
show equipment ont
operational-data 1/1/2/1/1 (Operasyonel Durum)
show equipment ont
optics 1/1/2/1/1 (Optik sinyal seviyesi)
show equipment ont
interface 1/1/2/1/1 detail (Detaylı Interface Bilgisi)
show ethernet ont
operational-data 1/1/2/1/1/1/1 (Link durumu kontrolü)
show vlan
bridge-port-fdb 1/1/2/1/1/1/1 (Porttaki mac adres listesini görmek için)
info configure vlan id
3002 flat (Kullanılan QoS)
info configure qos
interface 1/1/2/1/1/1/1 (QoS Ayrıntılı konfigürasyon)
info configure bridge
port 1/1/2/1/1/1/1 flat (Port altında tanımlı Vlan'lar)
info configure
ethernet detail flat (Ethernet ayrıntılı konfig)
info configure service
flat (VPLS konfigürasyonları)
Python Oracle modulü ile aşağıdaki kodu kullanarak Oracle veri tabanına veri girişi yapabilirsiniz. Bu uygulamada bir fonksiyon gönderilen SQL sorgusunu çalıştırmaktadır. Bu fonksiyon ile farklı SQL sorguları da çalıştırabilirsiniz.
import cx_Oracle
Python ile Oracle veri tabanına bağlanmak için ilk olarak Pyhon oracle modülünü yüklemeniz gerekmektedir. Python Oracle kütüphanesinin adı cx_Oracle dır. Bu kütüphaneyi pip ile yükleyin.
pip install cx_Oracle
Modülü kurduktan sonra oracle sitesinden driverları indirip bilgisayarınıza kopyalayın.
64 bit
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
32 bit
https://www.oracle.com/database/technologies/instant-client/microsoft-windows-32-downloads.html
Yazdığınız koda Oracle modülünü import edin ve driver'ı bir defaya mahsus gösterin.
import cx_Oracle
cx_Oracle.init_oracle_client(lib_dir=r"C:\oracle\instantclient_19_11")
Şimdi connect() fonksiyonunu kullanarak Python programı ile Oracle veritabanı arasında bir bağlantı kurun.
con = cx_Oracle.connect('username/password@localhost')
Bir SQL sorgusu yürütmek ve sonuç sağlamak için, cursor() nesnesi gerekir.
cursor = conn.cursor()
Daha sonra komutları işleteceğiniz bölümü oluşturun.
cursor.execute(sqlquery) – – – -> tek bir sorgu yürütmek için.
cursor.executemany(sqlqueries) – – – -> birden çok bağlama değişkeni/yer tutucu ile tek bir sorgu yürütmek için.
Tüm işlemler tamamlandıktan sonra tüm işlemlerin kapatılması zorunludur.
cursor.close()
con.close()
Örnek Kod
Karekter kırpma:
select substr('Kolon_ismini_bu_alana_yazabilirsiniz',1,20) from dual
Oracle'da karekter veya rakam yakalama
select regexp_replace('stack12345overflow569', '[^0-9]', '') as numbers,
regexp_replace('Stack12345OverFlow569', '[^a-z and ^A-Z]', '') as characters
from dual
Değerin içinde sayı arayıp integer haile çevirme;
to_number(regexp_substr('100 Mbps devre', '(\d+) Mbps', 1, 1, NULL, 1))
Oracle Database'de bir tabloyu kalıcı olarak silmek için;
SQL Tablo Silme:
DROP TABLE TABLO_İSMİ PURGE
COMMIT;
Sunucuya bağlanan cihazın IP adresini gösterme
SELECT sys_context ('USERENV', 'IP_ADDRESS') FROM DUAL
Tablo değişiklik zamanı: Tabloda en son değişikliğin hangi zamanda yapıldığını verir.
select max(ora_rowscn), scn_to_timestamp(max(ora_rowscn)) from Table_Name
XAMMP sunucusu içinde bulunan apache yazılımını upgrade etmek için ilk olarak apache yazılımının yeni sürmünü aşağıdaki adresten indirmelisiniz. Apache'nin birçok sürümü var Xammp sunucusu için en uygun sürüm bu linkte bulunan sürümdür.
https://www.apachelounge.com/download/
Sürümü indirdikten sonra apache servisini durdurun. Eski apache klasörünün adını değiştirin, sakın silmeyin. İndirdiğiniz apache klasörünü açın ve içindeki apache klasörünü çıkartıp eski klasör yerine aynı ad ile koyun.Klasör ismi/bin şeklinde olmalı. sonra config klasörü içindeki konfigürasyonu yeni klasöre geçirin. Son olarakta yüklediğiniz modüller varsa o modül dosyalarını yeni klasöre aktarın ve servisi başlatın.
DBeaver CE database bağlantı yazılımının çıktıları excell olarak kaydedebilmesi için extension aşağıdaki gibi yüklenir.
Yazılım Açılır
Help > install New Software seçeneği seçilir. Açılan ekrana aşağıdaki link kopyalanarak next butonuna tıklanır.
https://dbeaver.io/update/office/latest/
Yazılım seçilerek next butonuta tıklanarak eklenti kurulur. Yazılım kapatılıp açılarak eklenti kullanılmaya başlanır.
PHP için Microsoft SQL Driver yüklemek için ilk olarak uygun driver microsoft sitesinden indirilir. Driver indirmek için aşağıdaki linki kullanabilirsiniz.
https://go.microsoft.com/fwlink/?linkid=2152937
İndirdiğiniz bu dosyayı bir dizine açın. içinde bulunan .dll dosyalarını PHP/ext klasörüne kopyalayın. Bilgisayarınıza kurulu bulunan PHP sürümüne uygun .dll dosyasını bulun. Bulduğunuz uygun dosyayı php.ini dosyasına aşağıdaki gibi ekleyin
extension=php_sqlsrv_74_ts_x64.dll
Burada 74 değeri kulandığınız php versiyonu ile aynı olmalıdır. x64 işlemci mimarinize uygun bir versiyon olmalıdır. Daha sonra web sunucunuzu yeniden başlatın. Sunucunuz IIS ve ya Apache olabilir. Daha sonra aşağıda linki bulunan ODBC driverını bilgisayarınıza kurun.
Microsoft ODBC Driver;
https://go.microsoft.com/fwlink/?linkid=2156851
Kurulumun gerçekleşip gerçekleşmediğini info.php sayfasından kontrol edebilirsiniz. Kurulum tamamlandığında bu sayfada "sqlsrv" isimli bir tablo oluşacaktır.
Not: info.php dosya içeriği <?php phpinfo(); ?> şeklinde olmalıdır.
Apache web sunucusu ile Active Directory hesaplarından NTLM Kimlik Doğrulamasının nasıl yapılacağını inceleyeceğiz. Domainde bir Apache sunucunuz varsa domain kullanıcılarının kendi şifreleri ile local intranet sayfanıza erişmelerini istiyorsanız aşağıdaki gibi kurulumu yapabilirsiniz.
İlk olarak mod_authn_ntlm.so modülünü internetten indirin fakat dikkat edilmesi gereken bir durum var. Apache sunucunuz 32bit veya 64bit olabilir, bunu kontrol edip uygun versiyonu indirmelisiniz. Daha sonra indirdiğiniz dosyayı Apache/modules klasörüne kopyalayın.
Httpd.conf dosyasının içersine aşağıdaki satırı ekleyin.
LoadModule auth_ntlm_module modules/mod_authn_ntlm.so
Aşağıdaki iki modülün aktif olduğundan emin olun. (Satır önünde # olmamalı)
LoadModule ldap_module modules/mod_ldap.so
LoadModule rewrite_module modules/mod_rewrite.so
Aşağıdaki satırları da ekleyin. Web root'da /authenticate isimli bir klasör yoksa oluşturun. Bu klasör için şifreleme yapılacaktır.
Apache sunucusunu yeniden başlatın. Aşağıdaki kodu şifrelediğiniz klasörde bir php dosyasına yazın ve browser üzerinden sayfaya gidin.
<?php echo $_SERVER['REMOTE_USER']; ?>
Apache veya IIS üzerinde çalışan PHP için aşağıdaki özellikleri değiştirerek server performansını artırabilirsiniz.
memory_limit : Default "128M" Bu, bir komut dosyasının ayırmasına izin verilen maksimum bellek miktarını bayt cinsinden ayarlar. Bu, bir sunucudaki tüm kullanılabilir belleği tüketmek için kötü yazılmış komut dosyalarının önlenmesine yardımcı olur. Bellek sınırı olmaması için bu yönergeyi -1'e ayarlayın. Bir int kullanıldığında, değer bayt cinsinden ölçülür.
realpath_cache_size : Default "4M" PHP tarafından kullanılacak gerçek önbelleğinin boyutunu belirler. PHP'nin birçok dosya açtığı sistemlerde, gerçekleştirilen dosya işlemlerinin miktarını yansıtmak için bu değer artırılmalıdır.
Boyut, depolanan yol dizelerindeki toplam bayt miktarını artı önbellek girişiyle ilişkili verilerin boyutunu temsil eder. Bu, önbellekte daha uzun yollar depolamak için önbellek boyutunun daha büyük olması gerektiği anlamına gelir. Bu değer, önbelleğe alınabilen farklı yolların sayısını doğrudan kontrol etmez. Önbellek girişi verileri için gereken boyut sisteme bağlıdır.
realpath_cache_ttl : Default "120" Belirli bir dosya veya dizin için gerçek yol bilgilerinin önbelleğe alınacağı süre (saniye cinsinden). Nadiren değişen dosyalara sahip sistemler için değeri artırmayı düşünün.
https://www.php.net/manual/en/ini.core.php#ini.variables-order
PHP dosyaları içerisine kesinlikle password(şifre) yazmayın, passwordleri bilgisayarda başka bir yere konumlandırıp PHP dosyası içerisine bu şifreleri getirebilirsiniz. Ör sifreler.txt isimli bir dosya oluşturun ve şifreyi içine yazın. Sonra bu dosyadaki şifreyi bir değişkene atayın.
$myfile = fopen("E:\sifreler.txt", "r") or die("Unable to open file!");
$plogin=fgets($myfile);
fclose($myfile);
Yukarıdaki kod ile PHP dostanızda $plogin bilgisini şifre olarak kullanabilirsiniz. Bilgisayarı başkaları da kullanıyorsa bu işlem veri güvenliği için yeterli değildir. Bilgiyi aşağıdaki gibi şifreleyerek kullanabilirsiniz. Password bilgisini gizlemek için şifreleyin. Bu kod password bilginizi şifreler. Çıktıyı aldıktan sonra dosyayı silin fakat key bilgisini kaydetmeyi unutmayın.
<?php
$data = 'şifreyi_buraya_yazın';
$cipher = 'AES-128-ECB';
//key bilgisini istediğiniz gibi değiştirebilirsiniz.
$key = 'jfgksjdfgaksgf32423423bbfabsdjeyrwerwer898er2312423543656';
$encoded = openssl_encrypt($data, $cipher, $key);
echo $encoded;
?>
Password bilgisini şifreledikten sonra E:\sifreler.txt dosyasına bu bilgiyi yazın. Sonra aşağıdaki kodu php dosyanıza ekleyin.
<?php
$myfile = fopen("E:\sifreler.txt", "r") or die("Unable to open file!");
$plogin=fgets($myfile);
fclose($myfile);
$cipher = 'AES-128-ECB';
$key = 'jfgksjdfgaksgf32423423bbfabsdjeyrwerwer898er2312423543656';
$decoded = openssl_decrypt($plogin, $cipher, $key); // çıktı: prototurk.com
echo $decoded;
?>
Python ile bir excel dosyasını e-mail olarak göndermek istiyorsanız aşağıdaki kodu kullanabilirsiniz.
End of Life Olan Flash playerı bilgisayarınızda kullanmaya devam edebilirsiniz fakat bu kullanımın bazı güvenlik açıklarına sebep olacağını unutmayız. Sadece acil girilmesi gereken sistemler için kullanmanızı, kullanım sonrası ayarları iptal etmenizi öneririm. Flash player'de artık yeni geliştirmeler yapılmadığını ve güvenlik açıklarının artık kapatılmadığını unutmayın. Chrone üzerinden flash player olan bir siteye girebilmek için Chrome Versiyon 87 veya daha önceki bir sürüm kullanmalısınız, sonraki sürümler Flash yazılımını içermez.
1- Bilgisayarınızda aşağıdaki dizine “mms.cfg” isimli bir dosya oluşturun.
C:\Users\Username\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\System
3- Chrome üzerinden sayfaya girin, adres barının yanındaki alana tıklatın ve “Site settings” alanına ulaşın. Flash karşınıdaki seçenekten izin verin.
4- Siteyi browser'dan tekrar çağırın. Karşınıza çıkan Update seçeneğini “Run this time” seçerek devam edin.
Siteye ulaşabileceksiniz.
Adobe Flash, Chrome, End of Life, Enable Flash Player
Bilgisayarınızda bulunan csv dosyalarını MySql'e yüklerken Türkçe karekter sorunu ile karşılaşabilirsiniz. Bu sorun ile karşılaşmamak için ilk olarak bilgisayarınızda bulunan CSV dosyasını UTF8 encoding formatına dönüştürmelisiniz. Bunun için Notepad++ kullanabilirisiniz.
Dosyanızı bu program ile açın, encoding menusunden UTF8 seçin. Karekterler bozulur ise içeriği silip orijinal dosyadan tekrar kopyalayın ve dosyanızı farklı kaydedin. Dosyanızı tekrar açarak encoding kısmında UTF8 seçili olduğundan emin olun.
UTF8 formatına dönüştürdüğünüz dosyayı UTF8 encoding ile MySql'e import edin, dosyadaki Türkçe karekter sorununun UTF8 formatında çözüldüğünü göreceksiniz.
Python kullanarak openweathermap.org sitesinin API arayüzünü kullanarak hava durumu bilgisi alabilirsiniz. İlk olarak siteye üye olup bir API key oluşturmanız gerekiyor. Daha sonra aşağıda bulunan Python scripti kullanarak istediğiniz yerin hava durumu bilgisini alabilirsiniz.
Python Kod;
PHP kod içerisinde bir değişkenin değerine göre bazı alanları gösterip bazı alanları göstermeyebilirsiniz. Bu işlemler içinde geçerlidir. PHP ile aşağıdaki gibi bir değişkenin değerine bağlı olarak istediğiniz işlemler arasında tercih yapabilirsiniz.
<?php
if ((empty($_GET['degisken']))){
<Değişkene bir değer atanmadıysa işlenecek alan>
echo "Değişkene atanan bir değer yok";
} else {
?>
<Değişkenin bir değeri varsa işlenecek alan>
echo "Değişkene atanan bir değer var";
<?php }} ?>
PHP üzerinden Oracle veri tabanına nasıl bağlanılacağına değineceğiz. XAMPP sunucusu üzerinde bulunan Apache serverdan faydalanarak Oracle database'e nasıl erişebiliriz?
İlk olarak PHP info sayfasına bakalım.
http://localhost/dashboard/phpinfo.php
Bu sayfada bulunan iki değerin karşılığının ne olduğuna bakmalıyız
Architecture x86 veya x64 olacaktır.
Thread Safety enabled
Architecture değeri bendeki gibi x86 görünüyorsa 32bit bir PHP sürümüne sahipsiniz demektir. Thread Safety değeri mutlaka enable olmalıdır.
İlk olarak PHP.ini dosyası içinde aşağıdaki kaydın olup olmadığını kontrol edin açık değilse açın.
PHP 7.2den eski sürümler için
extension=oci8_12c
PHP 7.2'den sonraki sürümler için
extension=oci8_12c.dll
Ayrıca dosyaların bulunduğu dizinin php.ini dosyası içinde açık olduğundan emin olun.
extension_dir="D:\xampp\php\ext"
Oracle Instant Client Basic paketini internetten indirin.
http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html
Windows x86 için 32bit, x64 için 64bit sayfasındaki "instantclient-basic-nt-12.2.0.1.0.zip" dosyasını indirmelisiniz. İndirdiğiniz dosyayı diskinizde bir klasör oluşturarak içine kopyalayın
D:\Oracle\instantclient_12_2
Bu klasörü sistem path bölümüne ekleyin
Control Panel -> System -> Advanced System Settings -> Advanced -> Environment Variables -> System Variables -> PATH.
Name : Oracle Değer: D:\Oracle\instantclient_12_2
İnternetten indirdiğiniz instantclient_12_2 klasörünün içindeki *.dll dosyalarını D:\xampp\php ve D:\xampp\apache/bin klasörlerine kopyalayın.
Apache servisini restart ettiğinizde phpinfo dosyasına tekrar bakın. Burada OCI8 extension bölümünün açıldığını göreceksiniz. Bundan sonra test etmeniz yeterli. Aşağıdaki kod ile test edebilirsiniz.
Kaynak : https://blogs.oracle.com/opal/installing-xampp-for-php-and-oracle-database
Python ile herhangi bir web sayfasını açıp, sayfaya login olup, istediğiniz sayfaya gidip, formu doldurup gönderebilirsiniz. Bunu sağlayabilen selenium kütüphanesi için Google'ı açıp istediğiniz bir kelimeyi arama yapabilen bir örnek kod paylaşıyorum. Bot yapmak için çok esnek olan bu modülü kullanmanızı tavsiye ederim.
Modülü kullanabilmek için Firefox veya Chrome driver'ını bilgisayarınıza indirip aşağıdaki gibi yerini göstermeniz gerekiyor, kurulum gerektiren bir dosya değil. Aşağıdaki örnek Chrome driver ile yapılmıştır.
-------------------
import time
from selenium import webdriver
driver = webdriver.Chrome('c:\directory\chromedriver.exe')
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()
-------------------
Tüm driver dosyaları için;
PHP dosya içerisine herhangi bir PHP veya HTML dosya import edilirken hata alınıyorsa PHP.ini dosyası içinde işletim sistemine göre aşağıdaki konfigürasyonun yapılması gerekir.
Burada sadece bir işletim sistemi seçilmelidir. Kullandığınız işletim sisteminin altındaki kodun başındaki ; işaretini kaldırmalısınız. Aşağıdaki konfigürasyon windows içindir.
include_path bölümüne yazacağınız dizin IIS veya Apache'nin PHP çalıştıracağınız www dizini olmalı.
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
;include_path=C:\XAMPP\php\PEAR
; Windows: "\path1;\path2"
include_path = ".;C:\XAMPP\htdocs"
PHP.ini dosyalarındaki tüm parametreler için;
https://www.php.net/manual/tr/ini.core.php#ini.include-path