Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
html de kullanınal özel karakterler
#1
Merhaba Arkadaşlar,

Delphi'de yazılımış web tabanlı bir program üzerinden windows file server klasör listesini alıyoruz. fakat klasörlerde kullanılan özel karekterleri okumada zorlanıyoruz.

?&=:

insert into file_type_shared_folders (server_id,parent_id,folder_name,full_path, parents_list) values("1", "1", "GGG_&&&& ^^&&&@@@@[)]4", "\\\\filesrver.HISAR.LOCAL\\FileShareEMin\\GGG_&&&& ^^&&&@@@@[)]4",".0..1.")

böyle bir insert var. normalde heidisql de yapsam GGG_&&&& ^^&&&@@@@[)]4    klasör bu şekilde ekleniyor

ama normal delphide Query ile eklendiğinde GGG_&&&& ^^&&@@@@[)]4 böyle ekleniyor


yani & in bir tanesi kayboluyor
Cevapla
#2
Web tabanlı içerik Delphi yakasında mı yoksa Web üzerinde PHP vb. bir yapıda mı kaydediliyor ?

Eğer PHP yakasında ise bu linki kontrol etmek isteyebilirsiniz. ( mysql_real_escape_string )

<?php
   include("connect.php");
   $bodyData = "Bolliger&Mabillard%is a rollercoaster manufacturer";
   $bodyData = mysql_real_escape_string($bodyData);
   $query="insert into news (title, body) values('About', '".$bodyData."')";
   $run = mysql_query($query) or die ($query);
   mysql_close();
?>
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#3
Hocam,

post edilen datalar vasıtası ile TFDQuery; ile kaydediliyor
Cevapla
#4
Bahsi geçen string path verisi Delphi yakasına POST edildiğini anlıyorum.
Meraktan soruyorum, Delphi yakasına gönderen ( path okuyan ) yapı nedir ? Orada örnek olarak 10 tane '&' karakteri yan yana POST edildiğinde Delphi yakası bunu alırken nasıl alıyor kontrol edebiliyor musunuz ?
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#5
Gönderirken base64 ile encode edip, alırken de base64 ile decode etseniz sorun olmaz gibi sanki...
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#6
(24-04-2021, Saat: 19:02)mrmarman Adlı Kullanıcıdan Alıntı: Bahsi geçen string path verisi Delphi yakasına POST edildiğini anlıyorum.
Meraktan soruyorum, Delphi yakasına gönderen ( path okuyan ) yapı nedir ? Orada örnek olarak 10 tane '&' karakteri yan yana POST edildiğinde Delphi yakası bunu alırken nasıl alıyor kontrol edebiliyor musunuz ?

hocam yapı şöyle,
TDirectory.GetDirectories(path) ile dizinleri alıyoruz. dizin adlarında html de kullanılan özel karakterler olunca ve buradan gelen path ajax ile post verisi olduğundan delphi tarafına gidince (delphi tarafındaki bir http server) bu karakterlerden dolayı parçalanıyor. özel karakter ile replace ettik mesela & işareti için %26 gibi karakterlerle replace ettiğimizde veri gidiyor ama bukezde sql i aşağıdaki gibi bir insert işlemi yaptığımda ^^&&& olan kısım ne hikmetse ^^&& şeklinde ekleniyor dolayısıyla doğru kayıt girilmiyor. aynı insert heidisql ile query penceresinden çalıştırıca normal bir şekilde kaydediyor. base64 ile kodlasam bile sonuçta delphi ayağına gelince orjinalini almam lazım ki o da aşağıdaki gibi bir data oluyor yani \\\\filesrver.HISAR.LOCAL\\FileShareEMin\\GGG_&&&& ^^&&&@@@@[)]4 bir path gireceğim ama db ye insert edilen \\\\filesrver.HISAR.LOCAL\\FileShareEMin\\GGG_&&&& ^^&&@@@@[)]4 bu şekilde oluyor. ilginç olan burası. bunu TFDQuery nesnesi mi yapiyor onuda tam olarak bilmiyorum.
PHP Kod: (Select All)
insert into file_type_shared_folders (server_id,parent_id,folder_name,full_pathparents_listvalues("1""1""GGG_&&&& ^^&&&@@@@[)]4""\\\\filesrver.HISAR.LOCAL\\FileShareEMin\\GGG_&&&& ^^&&&@@@@[)]4",".0..1."
Cevapla
#7
Sorun karakter unicode vb. kodlaması sorunu desem sadece tek karakter eksiltmesi olmazdı. Çünkü bütüne etkisi olurdu.

FDQuery'ye parametre ile bunu girmek ama girerken AsString değilde AsWideString olarak denemek isteyebilirsiniz.

 FDQuery1.SQL.Text:= 'insert into file_type_shared_folders (server_id,parent_id,folder_name,full_path, parents_list) values("1", "1", :param00, :param01,".0..1.") '
 FDQuery1.Params[0].AsWideString := 'GGG_&&&& ^^&&&@@@@[)]4';
 FDQuery1.Params[1].AsWideString := '\\\\filesrver.HISAR.LOCAL\\FileShareEMin\\GGG_&&&& ^^&&&@@@@[)]4';
 FDQuery1.ExecSQL;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#8
(24-04-2021, Saat: 23:46)mrmarman Adlı Kullanıcıdan Alıntı: Sorun karakter unicode vb. kodlaması sorunu desem sadece tek karakter eksiltmesi olmazdı. Çünkü bütüne etkisi olurdu.

FDQuery'ye parametre ile bunu girmek ama girerken AsString değilde AsWideString olarak denemek isteyebilirsiniz.

 FDQuery1.SQL.Text:= 'insert into file_type_shared_folders (server_id,parent_id,folder_name,full_path, parents_list) values("1", "1", :param00, :param01,".0..1.") '
 FDQuery1.Params[0].AsWideString := 'GGG_&&&& ^^&&&@@@@[)]4';
 FDQuery1.Params[1].AsWideString := '\\\\filesrver.HISAR.LOCAL\\FileShareEMin\\GGG_&&&& ^^&&&@@@@[)]4';
 FDQuery1.ExecSQL;

hocam param ile insert işlemi halloldu teşekkürler. şimdi de şöyle bir durum söz konusun
TDirectory.GetDirectories(path) ile dizinleri okurken türkçe karakterleri okumuyor karakterleri ingilizceye çeviriyor. meslea şğüıç şeklide bir dizini sguic şeklinde okuyor. TDirectory.GetDirectories nin encode özelliği yok sanırım. bunu nasıl çözebilirim. dizinlerin ismini türkçe karakter olarak okumak gereiyor. reelde bu dizin var aslında ama dizin ismi doğru gelmediğinden dizini sonraki işlemlerde bulamadığından işlem yapamıyoruz. bu konuda bir öneriniz var mıdır?
Cevapla
#9
Aşağıdaki şekilde denedim Türkçe klasör isimleri doğru geldi...

Uses System.IOUtils, System.Types;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  LDirs : TStringDynArray;
  i     : Integer;
begin
  LDirs := System.IOUtils.TDirectory.GetDirectories( 'c:\ARMAN.Study\Video(s)\' );
  for i := 0  to High(LDirs) do
    Memo1.Lines.Add(LDirs[i]);
end;


m2oyg4779qvoemo7gfxy.gif
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#10
Hocam,
Yapı aynı fakat bizimki web servis olduğundan respons tarafı utf8 set ettik TR karekter sorunu çözüldü. .
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  UniDBGrid HTML OnClick m_ekici 15 6.528 16-02-2024, Saat: 10:31
Son Yorum: m_ekici
  TMS Web Core - Kod tarafından HTML Etkileşimi Örneği rmzgenius 4 2.397 16-03-2022, Saat: 10:39
Son Yorum: rmzgenius
  html içinde php kodu kullanmak while,for döngüsü[php sorusu] 41linea41 3 5.474 12-07-2019, Saat: 21:46
Son Yorum: hi_selamlar
  Html den bilgi almak. zihnidede 5 5.218 09-07-2019, Saat: 15:37
Son Yorum: zihnidede



Konuyu Okuyanlar: 2 Ziyaretçi