delphi den php dostaya post sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
delphi den php dostaya post sorunu
arkadaşlar bi sürü araştırma yaptım bi sürü kod denedim ama olmuyor olmuyor hiç bir şekilde post edilen veriyi göstermiyo bununda anlamı demekki delphi post işlemini yapmıyo bi kontrolederseniz sevinirim
procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
var
Data: TStringList;
resp:tstringstream;
begin
if (Trans_Type = cmdUpload) then
begin
Data:= TStringList.Create;
Resp:= TStringStream.Create('');
IdHTTP1.Disconnect;
try
Data.Add('founder='+inttostr(userid));
Data.Add('catid='+inttostr(catid));
Data.Add('header='+edit4.Text);
Data.Add('title='+edit3.Text);
Data.Add('video='+edit5.Text);
IdHTTP1.Post(/clupload.php',data,resp);
memo1.Lines.Text:=resp.DataString;
except
on e: exception do begin
memo1.text:='';
end;
end;
Data.Free;
end;
sleep(2000);
Case Trans_Type of
cmdUpload: StatusBar1.SimpleText := 'Yükleme işlemi tamamlandı';
end;
end;
bu procedure den de görüleceği gibi nmftp ile bir dosyayı yolluyorum bitince idhttp ile clupload dosyasına post göndermeye uğraştığım veriler var clupload php dosyasında ise
<?
$form_bilgisi = ( isset($HTTP_POST_VARS ) )
? $HTTP_POST_VARS : $HTTP_GET_VARS;
foreach ($form_bilgisi as $anahtar=>$deger ) {
if ( gettype ($deger ) == "array" ) {
print ("$anahtar == <br>\n");
foreach ( $deger as $yeni_degerler )
print (".. $yeni_degerler<br>");
}
else {
print ("<b>$anahtar = $deger <br>\n");
}
}
?>
diye post edilen veriyi ekrana atan bir komut dizisi var ama boş çıkıyor ne yaptıysam ne ettiysem olmuyo yardım lütfen teşekkürler
procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
var
Data: TStringList;
resp:tstringstream;
begin
if (Trans_Type = cmdUpload) then
begin
Data:= TStringList.Create;
Resp:= TStringStream.Create('');
IdHTTP1.Disconnect;
try
Data.Add('founder='+inttostr(userid));
Data.Add('catid='+inttostr(catid));
Data.Add('header='+edit4.Text);
Data.Add('title='+edit3.Text);
Data.Add('video='+edit5.Text);
IdHTTP1.Post(/clupload.php',data,resp);
memo1.Lines.Text:=resp.DataString;
except
on e: exception do begin
memo1.text:='';
end;
end;
Data.Free;
end;
sleep(2000);
Case Trans_Type of
cmdUpload: StatusBar1.SimpleText := 'Yükleme işlemi tamamlandı';
end;
end;
bu procedure den de görüleceği gibi nmftp ile bir dosyayı yolluyorum bitince idhttp ile clupload dosyasına post göndermeye uğraştığım veriler var clupload php dosyasında ise
<?
$form_bilgisi = ( isset($HTTP_POST_VARS ) )
? $HTTP_POST_VARS : $HTTP_GET_VARS;
foreach ($form_bilgisi as $anahtar=>$deger ) {
if ( gettype ($deger ) == "array" ) {
print ("$anahtar == <br>\n");
foreach ( $deger as $yeni_degerler )
print (".. $yeni_degerler<br>");
}
else {
print ("<b>$anahtar = $deger <br>\n");
}
}
?>
diye post edilen veriyi ekrana atan bir komut dizisi var ama boş çıkıyor ne yaptıysam ne ettiysem olmuyo yardım lütfen teşekkürler
Bilgini saklamaki daha fazla öğrenebilesin...
Aşağıdaki
kodunda tam adresi yazıp dener misiniz ? Şahsen bir hata göremiyorum...
Yani
Kod: Tümünü seç
IdHTTP1.Post(/clupload.php',data,resp);
Yani
Kod: Tümünü seç
IdHTTP1.Post('http://www.benimsitem.com/clupload.php',data,resp);
Şimdi kodu uyguladım. Bir sorun yok... Sen de aşağıdaki kodu dener misin ? php dosya şu an kendi hostumda mevcut.
Hatta önce sadece adresi şöyle değiştir.
öyle dene...
- Olursa, kendi php dosyanda bulunan farklı fonksiyonlardan birisi sorunlu olduğundan kod hataya düşüyor olabilir. Ondan sonuçları alıyor ancak döndürmüyordur..
Olmadı sonra aşağıdaki kurguyu hazırla...
POST.PHP
Hatta önce sadece adresi şöyle değiştir.
Kod: Tümünü seç
'http://www.armantr.com/test/post.php'
- Olursa, kendi php dosyanda bulunan farklı fonksiyonlardan birisi sorunlu olduğundan kod hataya düşüyor olabilir. Ondan sonuçları alıyor ancak döndürmüyordur..
Olmadı sonra aşağıdaki kurguyu hazırla...
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
Var
Data : TStringList;
Resp : TStringStream;
begin
Data:= TStringList.Create;
Resp:= TStringStream.Create('');
IdHTTP1.Disconnect;
try
Data.Add('aParam='+Edit1.Text);
Data.Add('bParam='+Edit2.Text);
Data.Add('cParam='+Edit3.Text);
Data.Add('dParam='+Edit4.Text);
Data.Add('eParam='+Edit5.Text);
IdHTTP1.Post('http://www.armantr.com/test/post.php', data, resp);
Memo1.Lines.Text := Resp.DataString;
except
on e: exception do memo1.text:='';
end;
Resp.Free;
Data.Free;
end;
Kod: Tümünü seç
<?
$form_bilgisi = ( isset($HTTP_POST_VARS ) ) ? $HTTP_POST_VARS : $HTTP_GET_VARS;
foreach ($form_bilgisi as $anahtar=>$deger ) {
if ( gettype ($deger ) == "array" ) {
print ("$anahtar == <br>\n");
foreach ( $deger as $yeni_degerler )
print (".. $yeni_degerler<br>");
}
else { print ("<b>$anahtar = $deger <br>\n"); }
}
?>
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
Kod: Tümünü seç
procedure TForm2.Button1Click(Sender: TObject);
var
str:tstringlist;
response:tstringstream;
begin
str := TStringList.Create;
Response:= TStringStream.Create('');
try
str.Clear;
IdHTTP1.Disconnect;
str.Add('kullanici=' + Edit2.Text); // Edit2'de post edeceğin kullanıcı adı
str.Add('sifre=' + Edit1.Text); //Edit1'de post edeceğin sifre
IdHTTP1.Post('http://sgsg.com/ds.php',str,Response);
memo1.text := Response.DataString;
except
on e: exception do begin
Memo1.text:= '';
end;
end;
str.Free;
Response.Free;
if Memo1.Text = 'Hatali Giris!' then
ShowMessage('Hatalı Giriş!')
else
begin
ShowMessage('Giriş Yapıldı!');
Form2.Hide;
Form1.Show;
end;
end;
@Trial_Cooder
- Doğru başlığa cevap yazdığına emin misin ? Açıklama yazmayı ihmal etmişsin. Ne için yazdığın anlaşılmamış. Değerlendirmem odur ki, bir başka başlıkta isim şifre girişi hakkında bir soru vardır ona yazacağına buraya yazmışsın sanki !?
- Bu kanıya nasıl vardığımı soracak olursan, 'Hatali Giris!' vb. ifadesi geri döndüren php kodu ortada yok...
- Doğru başlığa cevap yazdığına emin misin ? Açıklama yazmayı ihmal etmişsin. Ne için yazdığın anlaşılmamış. Değerlendirmem odur ki, bir başka başlıkta isim şifre girişi hakkında bir soru vardır ona yazacağına buraya yazmışsın sanki !?
- Bu kanıya nasıl vardığımı soracak olursan, 'Hatali Giris!' vb. ifadesi geri döndüren php kodu ortada yok...
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
hayır doğru başlık, delphi'den php'ye post yapmayı sormuş. yani php kodu var anlamına gelir. o yüzden php kodlarını vermedim. ama anlaşılamadıysam veriyim.
php kodu
delphide kodu
php kodu
Kod: Tümünü seç
<?php
echo $delphi; //$delphi post ettiğin değer
?>
Kod: Tümünü seç
procedure TForm2.Button1Click(Sender: TObject);
var
str:tstringlist;
response:tstringstream;
begin
str := TStringList.Create;
Response:= TStringStream.Create('');
try
str.Clear;
IdHTTP1.Disconnect;
str.Add('delphi=postettigindeger');
IdHTTP1.Post('http://sgsg.com/ds.php',str,Response);
Memo1.text := Response.DataString;
except
on e: exception do begin
Memo1.text:= '';
end;
end;
str.Free;
Response.Free;
if Memo1.Text = 'postettigindeger!' then
ShowMessage('Kod Calisiyor!')
else
ShowMessage('Kod Calismiyor!');
end;
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
gördüm ama arkadaş zaten post'u kendi ayarladığı değerlerle yapıyo, yani bu demek oluyoki, post ettiği değeri görmeden ve bilmeden post ediyor.
Kod: Tümünü seç
Memo1.Lines.Add(inttostr(userid);
Memo1.Lines.Add(inttostr(catid);
Memo1.Lines.Add(edit4.Text);
Memo1.Lines.Add(edit3.Text);
Memo1.Lines.Add(edit5.Text);
- Kendi gönderdiği parametre içeriğinin boş ya da dolu olması önemli değil, post başarılı ise VE php kodu doğru oluşturulmuş bir kod ise en azından paramtre başlığı MEMO'da görüntülenir.
- Belki de sorun daha da basit idi... Şöyle ki NMFTP1Success eventine belki de hiç düşmediğinden ve/veya Trans_Type = cmdUpload olamadığından post işlemi bile yapılmıyor olabilir...
- Neyse uzatmayım, mesajında sadece kod yazmayıp altına gerekli açıklamayı düşmen için sana bir hatırlatma idi.
- Belki de sorun daha da basit idi... Şöyle ki NMFTP1Success eventine belki de hiç düşmediğinden ve/veya Trans_Type = cmdUpload olamadığından post işlemi bile yapılmıyor olabilir...
- Neyse uzatmayım, mesajında sadece kod yazmayıp altına gerekli açıklamayı düşmen için sana bir hatırlatma idi.