2011-11-22 50 views
7

Symfony çerçeveyle tasarlanmış yerel bir web sitesine erişmeye çalışıyorum. Web tarayıcısı ve CURL ile mükemmel bir şekilde çalışır, ancak Mekanizmayı kullandığımda her zaman sunucu için 401 yetkisiz cevabı aldım.Symfony ve mekanikleştirme

import mechanize 


# Browser 
br = mechanize.Browser() 
br.set_debug_http(True) 
br.set_debug_redirects(True) 
br.set_debug_responses(True) 

# Does not change anything even if we change thos 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

# Here is my website 
r = br.open('http://localhost:8080/frontend_dev.php/home') 
html = r.read() 

# Show the html source 
print html 

Neden böyle davrandığı hakkında bir fikrin var mı?

Teşekkür

+0

Symfony vuruldu mu değil mi? Ne olursa olsun sen ölürsün ("vur"); frontend_dev.php dosyasının tepesinde? – greg0ire

+0

Ölürsem ("vur"); Ben isabet ve 401 hatası görüyorum. – lc2817

cevap

6

Sonunda cevabı kendim buldum. SfDoctrineGuardPlugin (ve sfGuardPlugin) dosyasında, bu davranışı belirtilen here olarak belirten bir hata var. Düzeltmeyi uyguladı ve sorun çözüldü.

+0

Eski bir hata, eklentinin eski bir sürümünün olması gerektiğini düşünüyorum. Güncellemeyi düşünün. – greg0ire

+0

Hata, bu yıl ağustos ayında düzeltildi. Ve sfDoctrineGuard'ın son sürümü 2010'da yapıldı. Doğru olduğunu düşünmüyorum. Ne önerirsiniz: http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin – lc2817

+0

Symfony2'yi kullanmanızı öneririm Cidden, son sürümün neden bu kadar eski olduğunu bilmiyorum ... belki de jwage çok meşgul doctrine2/sf2 ile ... – greg0ire

1

symfony içinde geliştirme ortamı kimlerin erişebileceğini sıkı kontroller vardır. Ana URL'yi kullanmayı deneyin (muhtemelen http://localhost:8080/index.php/home)

+0

Bu sorunu çözmedi. Sadece denedim ve aynı hatayı aldım – lc2817

+0

Üzgünüz. Önbelleğini temizlediğini mi sanıyorum? Herhangi bir referansın veya herhangi bir şeyin var mı? – MrGlass

+0

Önbellek için: evet. Ana sayfa için gerekli herhangi bir kimlik bilgisi yok, daha sonra bazı sayfalar için evet. Ve kıvrımla mükemmel çalışır, neden bilmiyorum ... – lc2817

1

Kodunuzu denemek için geçerli bir adrese başvurabilir misiniz? Bazı ayarları kaçırdığınızı düşünerek I sanırım robotları devre dışı bırakmayı deneyin.

br.set_handle_robots(False) 
+0

Bunu denedim ve hiçbir şey değiştirmedi. Hayır Doğru kodumu denemek için geçerli bir adres sağlayamıyorum (özür dilerim belki sonra). – lc2817

1

Ben Symfony'nin çerçevesi hakkında bir şey bilmiyorum, ama sen 'Error : 401 ' alıyorsanız olarak. Bu satırları eklemek işe yarayabilir.

br.add_password('http://localhost:8080/frontend_dev.php/home', 'username', 'password') 
br.open('http://localhost:8080/frontend_dev.php/home') 
+0

Bunu denedim ve hala aynı hatayı aldım – lc2817