php ile drupal veri tabanına veri girme

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
dirka's picture

drupal botla ilgili bir kaç kez konu açtım , php ile localhost da veri çekip veritabanına kaydettim tabloları drupal veritabanına göre uyarladım fakat drupal sitede çalışmıyor .. localde çalışıyor nerede yanlış yapıyorum acaba ?

Comments

drupal de php kullanma izni vermelisin

vsc's picture

kodlarını içerik ile beraber veya arasında kullanacaksan PHP kullanma izni vermelisin

seninsiten.com/#overlay=admin/people/permissions

linki ile izinleri açık FILTRE altında PHP code metin biçimini kullan seçeneği ile kullanıcıya izin vermelisin.

başarılı olan kodları bizimle de paylaşırsan memnun oluruz, belki başka birisinin de ihtiyacı olabilir. kolay gelsin

php code seçeneği yok

dirka's picture

Metin biçimleri ve filtrelerini yönet

Filtered HTML metin biçimini kullan

Full HTML metin biçimini kullan

filter altında üç seçenek var php ile ilgili bir seçenek yok,

çok ilginç drupalden bağımsız bir php sayfasına nasıl müdahale edip kısıtlıyorlar şimdi drupali daha çok sevmeye başladım.

localde tıkır tıkır çalışan kodlar aşağıda

<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" /><?php

function siteConnect($site){
global $field_address_val,$field_website_val,$field_phone_val,$title_val;
$ch = curl_init();
$hc = "YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; Yahoo! Search - Web Search)";
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_URL, $site);
curl_setopt($ch, CURLOPT_USERAGENT, $hc);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$site = curl_exec($ch);
curl_close($ch);

// Veriyi parçalama işlemi
preg_match_all('@<h1 property="v:itemreviewed" style="float: left">(.?)</h1>@si',$site,$title);
preg_match_all('@<h3>(.
?)</h3>@si',$site,$veri_derece2);
preg_match_all('@</span><span ID="lblPlaceAddress" class="place-address" >(.?)</span>@si',$site,$field_address_value);
preg_match_all('@</span><span ID="lblPlacePhone" class="place-phone">(.
?)</span>@si',$site,$field_phone_value);
preg_match_all('@<span class="pi-title"></span>(.?)</a></span>@si',$site,$field_website_value);
preg_match_all('@<div id="liYatsi">(.
?)</div>@si',$site,$veri_derece6);

$title_val = strip_tags($title[0][0]);
$field_address_val = strip_tags($field_address_value[0][0]);
$field_website_val = strip_tags($field_website_value[0][0]);
$field_phone_val = strip_tags($field_phone_value[0][0]);

//VERİLER
$isim="business";
$language="tr";
$uid="1";

echo $title[0][0];
echo $field_address_value[0][0];
echo $veri_derece3[0][0];
echo $field_phone_value[0][0];
echo $field_website_value[0][0];
echo $veri_derece6[0][0];
}


siteConnect('http://www.mekanist.net/mekan/177001');


$kullaniciadi="adi";
$sifre= "şifre";
$host="localhost";
$veritabani="tabani";

//VERİTABANI SEÇME
$baglan=mysql_connect($host,$kullaniciadi,$sifre);
mysql_select_db($veritabani,$baglan);


//YENİ KAYIT GİRME ADRES
$sql="insert into field_data_field_address (field_address_value, typ) values ('$field_address_val', '$isim')";
mysql_query($sql);

//YENİ KAYIT GİRME WEBSİTE
$sql="insert into field_data_field_website (field_website_value, typ) values ('$field_website_val', '$isim')";
mysql_query($sql);



//YENİ KAYIT GİRME TELEFON
$sql="insert into field_data_field_phone (field_phone_value, typ) values ('$field_phone_val', '$isim')";
mysql_query($sql);




//YENİ KAYIT GİRME BAŞLIK
$sql="insert into node(title, typ, language, uid) values ('$title_val', '$isim', '$language', '$uid')";
mysql_query($sql);
//BAĞLANTIYI KESME
mysql_close($baglan);

sanırım bir editör kurmadın

vsc's picture

CK editörü kurabilirsin, linki;

https://www.drupal.org/project/ckeditor

sonra izinleri kontrol et, PHP code için izin ver (sadece kendine izin vermeni öneririm) kolay gelsin

cke

dirka's picture

ckeditör zaten kurulu sorunu hala çözemedim uzun yola girmek istemiyorum yoksa localde veritabanına çektiğim veriyi xml kaydedip yada rss ile yine çekebilirim sanırım ama kısa yolu varken bunu çözebilirsem iyi olur..

kodlamada herhangi bir sıkıntı yok localde çalışıyor siteye atınca veriyi veritabanına hiç yazdırmıyor izin sorunu olduğunu sanmıyorum çünkü php dosyası drupalden bağımsız.

php dosyası drupal den bağımsız mı

vsc's picture

o zaman drupal de php iznine gerek yok... server da iilgili dosya veya klasör izinlerini kontrol etmelisin... localhost ile server izinleri farklı olabilir.

CKeditör önerim için özür dilerim... çok soru sordun benim de kafam karıştı :) Drupal de PHP code kullanmak için Drupal core içindeki PHP filter eklentisini kurman gerekiyor, sonra da izinlerden kendine PHP code kullanma izni vermen gerekiyor.

kolay gelsin

sayfa bulunamadı

dirka's picture

haklısın biraz fazla soruyorum drupal e yeni başlayınca türkçe kaynakta yok doğru düzgün..

dosyaya normal izin verdiğimde ekrana çektiği veriler basılıyor ama veritabanına yazmıyor.

fazladan izin verdiğimde drupal sitesi açılıyor sayfa bulunamadı çıkıyor

tam olarak izinleri nasıl verdin

vsc's picture

kodların bulunduğu dosyana sadece okuma izni verdiğinde okumuş ve monitöre yazmıştır, monitöre yazmada ekstra izine gerek yok ve sorun da yok,

senin dosyan ana dizinde ise bulması gerekir, bir alt dizinde ise bir yol (path) tarifi yapman gerekir.

database ulaşması yeterli değil burada bir tablo ve yazma alanları(fields) oluşturulmuş olması veya kayıttan hemen önce yazdığın kodlar ile önce bunları oluşturman gerekir,
sonra da bu tabloya ve içindeki alanlara veri yazdırman gerekir.

drupal girilen içerikleri node isimli tabloya yazıyor, sana kestirme bir yol; çektiğin dataları bir CSV dosyaya kaydet, FEEDS modülünü kur ve CSV dosyandaki bilgileri 1 saniyede node olarak database e kaydet. çok kolay bu kadar uğreşmana gerek yok

fazladan izin nedir, tam olarak ne yaptığın zaman drupal i çağır ve sayfa bulunamadı mesajı geliyor anlamadım.

Kolay gelsin

chmod izini verdim

dirka's picture

chmod izini verdim bu dosyayı csv olarak aldığımda alt field lere mesela adres telefon internetsitesi gibi filed lere veri girebilirmiyim

başlık
adres
telefon
internetsitesi
açıklama

ben bu fieldlere veri girişi yapıcam csv yapısını nasıl ayarlamam lazım - şimdi denedim ne başlık nede diğer fieldler çıkıyor.

csv dosyasını phpmyadminden dışa aktardım

evet csv dosyana veri girebilirsin

vsc's picture

csv dosyanı ms excel veya benzer bir program ile açabilirsin, LIBRE OFFICE ( libreoffice.org ) tavsiye ederim, csv dosyanı açtığında excel gibi bir tablo göreceksin ve excel de tabloya veri yazar gibi yazıp kaydedeceksin.

phpmyadmin den dışarı csv doyası alırken (almadan önce) bir tablo seçmelisin, sonra csv olarak dışarı aktar demelisin, istersen başlıkları da aktarmasını seçebilirsin. NODE tablosunu csv olarak dışarı almanı öneririm, çünkü FEEDS modülü NODE içeri eklemek için hazır oldupğunu göreceksin.

Kendin özün bir tablo ve içinde field oluşturmak ve bunu dışarı csv olarak almak ve dışarıda data girip FEEDS ile ekleyebilirsin, arkasından sanıl bir problem çıkar bilemiyorum, bu tablodan drupal ile sürekli data çekmek istersen yine uğraşman gerekecek... benim anlatabileceklerim bunlar, diğer arkadaşlar da bakarlarsa sana yardımcı olabilirler, ben onlar kadar usta değilim. kolay gelsin

teşekkür..

dirka's picture

teşekkür ederim hocam her konuda çok iyi bilgiler verdin inşallah üstesinden gelirim.. diğer arkadaşlarında önerisi olursa daha kısa yolla halledebilirsem daha iyi olur iyi çalışamlar ;)