Nasıl geçerli kullanıcı bir apache alemine oturum almak mı?

1 Cevap php

Subversion basit bir in-house önyüz yazıyorum. Biz SVN kadar hizmet veren bir Apache kurulum WebDAV sayesinde depoları var. Ayrıca, kimlik doğrulama, bir Apache alemine ve Open Directory aracılığıyla yapılır. Bu değer ne için, bu temelde bir çok vanilya Mac OS X Server 10.6 kurulum.

Şimdi, bizim ön uç görevlerin bazıları eylem çağıran kullanıcı adını bilmek gerek tekmeleme sorumludur. Biz aslında onu yaratan kim doğru günlükleri olsun, böylece, örneğin, bir depo oluşturarak ihtiyacı. Ben bu bilgileri temin etmezseniz, SVN sadece bizim durumda kullanıcı çalışan httpd hangi oluşturulduğu işlemi kullanır.

Ben php yapıyorum, ama ben mutlaka bu kullanarak php uygulamak gerekmez. Ben bir kabuk içinde bilgi alabilirsiniz eğer bu çok iyi. Önemli Bir şekilde bilgi almak olduğunu. Doğru benim kullanıcı adı bildirdi beri ben çalıştım varsayılır ilk geliştirilen çözüm, basit çağırıyor:

get_current_user();

Ancak, bu bazı diğer kullanıcı alemine oturum açmış olurken eylemi başlıyor olsa bile, always Benim kullanıcı adını döndürmek için görünüyor. Doğru kullanıcı almak için bir yolu var mı?


EDIT: Burada silah atlamak için biraz hızlı olabilir. Eski değişken belli bir süre sonra set almaz sanki görünüyor. Giriş yapmak için hiçbir istek yok gibi, ancak kullanıcı hala kaydedilir. Böylece, aşağıda önerilen çözüm gerçekten uygulanabilir değildir.


Şimdi bir idjit gibi hissediyorum. (Bulmak zor olsa da) Bu basit pasajı çalıştı:

$username = $_SERVER["PHP_AUTH_USER"];

Ancak, bu yaptım:

$username = apache_getenv("REMOTE_USER");

Herkes ikinci neden çalışmıyor gibi bir fikir var mı? Ben bulabildiğim tek dokümanlar Apache 2 üzerinde bu sadece çalışır. Ancak, ben o olamazdı Apache 2 çalıştıran aslında duyuyorum öneririz.

1 Cevap

Yani, kullanıcı adı almak için yöntem hemen hemen her geçen PHP sürümü ile değişmiş olduğunu fark ettik Uzunca bir googled sonra. Biri olarak görünüyor geçerli çözüm aşağıdaki değişkenin verileri almak için:

$_SERVER['REMOTE_USER'];

Bununla birlikte, bu değişken ya da ayarlanabilir ya da olmayabilir. Muhtemelen bilgileri görmek niçin nedeni doğru ben alemidir dedi alemine kaydedilir ve daha sonra dışarıda oldu PHP komut dosyası ziyaret ettiğinde bilgi başlıklarını gönderilmiş olmasıydı. Bilgiler geldi mi, ama güvenilir değildi.

Apache docs aslında bir "MEZUNLARI Oh"-moda size şunu söyleyeyim. Ben kimlik aynı host üzerinde çoklu alemlere genelinde üzerinden yapılır emin değilim, ama her durumda, bu sorun çözüldü.