Flash program tarafından çağrıldığında bir dosyayı bulmak mümkün PHP komut dosyası

1 Cevap php

I / var / www / vhosts / şirket / httpdocs bulunan komut mail.php 'yi çağıran şu anda bir program üzerinde çalışıyorum. mail.php 'yi require_once dirname(__FILE__).'/../pear/Mail.php' bir smtp gönderme yapmak için yürütmeye çalışıyor ve require_once başarısız oluyor. Benim ARMUT dizinin / var / www / vhosts / şirket / armut yer. Sonra include_path / var / www / vhosts / şirket / armut eklemek için çalıştı ama require_once hala başarısız oluyor.

Ben bir adım geri almak ve yok file_exists(dirname(__FILE__).'/../pear/Mail.php') ve bir logfile sonucu yazdıran basit bir script olarak mail.php 'yi değiştirmeye karar verdi. Ben bağımsız komut dosyasını çalıştırdığınızda, iyi çalışıyor ve 1 döndürür. Flaş programı onu çalıştığında, hiçbir şey dönüyor. Flash dosyasını çalıştırır eğer bağımsız komut dosyasını çalıştırın veya eğer yazdırma dirname(__FILE__).'/../pear/Mail.php' bakılmaksızın aynı döndürür. Ben de mail.php 'yi PEAR dosya için chmod 777 denedim ama hiçbir şey yapmadı.

Oluyor ne herhangi bir fikir?

1 Cevap

Ben iki şey ile ilgisi var her şeyi bahse girerim:

1) Flaş / Actionscript normalde yerel dosya yollarını erişmez.

Diğer bir deyişle, bu da muhtemelen bir dosya yürütme değildir.

Derlenmiş bir istemci tarafı modül olarak gerçek bir web erişilebilir URL gerekiyor. Burada sorunun bir parçası tasarımı kendisidir. Actionscript dahilinde bir HTTP isteği ile deneyin ve daha iyi sonuçlar olacaktır. Eğer flaş dosyası var .. iyi zor fasulye erişiminiz yoksa.

Şimdi actionscript ile bir posta rutin çalıştırıyorsanız? Ben bir güvenlik riski olduğunu söyleyebilirim. Sen actionscript oturum kimlik bilgilerini denetler ve then posta gönderen bir AJAX alıcı rutin rutin geçmek olması iyidir.

2) sunucuda CWDUP kısıtlamalar.

Bazı sunucu yapılandırmaları bağlı olarak, excecutables normalde kendi kök dışında filepaths erişiminiz yok. Bazı sunucular bu sağlayacak (yani bir executible. Diğer dosya \ \ .... başka bir dizin çağrı yapamazsınız), ancak birçok alışkanlık.

Size ARMUT dizini php.ini yol değişkeni olduğundan emin olmak isteyebilirsiniz. Bu şekilde tüm dizin adına CWDUPs kullanmanız gerekmez, bu dizin içerir içinde bulabilirsiniz. (Ki armut modüllerin nasıl çalıştığını normalde.)

Yani daha çok bir buncha nokta-nokta kullanarak daha .. yukarıdan aşağıya çalışmayı deneyin.

$mailpath=$_SERVER['DOCUMENT_ROOT'].'\include\mail.php';

Son çare olarak, aynı dizine mail.php 'yi rutin kopyalamayı deneyin işe yarayıp yaramadığını görebilirsiniz. Hala başarısız olursa, o zaman onun sizin PEAR yolunu içerir. (Mail.php 'yi muhtemelen ARMUT fonksiyonlarını çağırıyor.)