Web üzerinden ve masaüstünde bir PHP uygulaması için tek giriş noktası

3 Cevap php

Ben bir giriş işlemi oluşturmak için çalışıyorum. Ama bir masaüstü uygulaması ve standart bir web sitesi ile çalışacak bir süreç oluşturmak için imkansız görünüyor.

Bunun yerine Usermanagement.php (bir sınıf, icyntk olan) ama daha sonra başka bir php dosyasında (api/login.php) Ben giriş işlevi vardır:

<?php
require_once '../usermanagement.php';
$m = new usermanage(); 
echo $m->login($_POST['username'], $_POST['password']);
?>

Ve sonra ben hala başka login.php sadece web sitesinde giriş formu ile kullanılmak üzere yapmak gerekir. Ben sonucu index.php dosyadan api/login.php script (eko) almak için yine de göremiyorum gibi (giriş şeklidir, sadece se HTML vardır).

Ben bu yüzden sadece bir login.php gerekir bu kolaylaştırabilirsiniz yine de var mı?

3 Cevap

Seni anlamak, ne istediğiniz:

  1. Bir web sitesi / webapp bir oturum sahip
  2. aynı giriş yöntemini kullanarak bir masaüstü uygulaması (değil PHP!) günlüğü

Bir şekilde web sitesi ve uzak uygulama hem de aynı API kullanarak oturum açma yöntemini ihracat, böylece oradan API (AJAX / json) erişmek için istemci tarafında JavaScript kullanarak olacaktır. Siz (diğer birçok kullanımları arasında) AJAX istemci tarafı basitleştirme ve PHP belki JSON modülüne (json_encode kullanmak için jQuery gibi bunun için bazı çerçeve kullanmak isteyeceksiniz; o yüzden eğer modül bazı webspaces mevcut olmayabilir sakının kontrol dışarı) kullanmayın. Tabii ki sizin API yanıtlarda XML veya JSON kullanmaya gerek yok ama elle arayüz sınıfları yanıtı işlemek işlevleri ayrıştırma bir çok uygulamaya gerek kalmadan, diğer (masaüstü dahil) uygulamalara API açmak kolay.

Eğer bu şekilde yaparsanız web / webapp JavaScript olmadan çalışmaz unutmayın! Bilinen bir kullanıcı grubu tarafından kullanılan bir webapp için, ancak bir web sitesinin kamu parçaları için istemci tarafı komut dosyası bağlı olmamalıdır gibi, tamam, bir web sitesinin halka açık olmayan parçalar.

Bu basitleştirmek için başka bir çözüm bir PHP çerçeve kullanarak, bu nedenle daha kolay sunucu tarafı frontend'i yazabilirsiniz. Bu temelde bir düğme sadece giriş yöntemini çağıran ve bir yönlendirme ayarı buna göre hareket veya giriş yaptıktan sonra devam etmek gibi bazı panelini ya da her neyse yerine bir serverside işlevi vermenizi sağlayacaktır.

Tabii ki tüm kendiniz yapabilirsiniz ama bu genellikle dağınık kodu bir sürü veya kendi çerçevesinin bir uygulama ya da neden olacaktır. Eğer kendi başınıza yapmak istiyorsanız, aynı PHP dosyası formu gönderme yerine fazladan bir login.php ile başlar ve gizli bir alan gibi ekleyin:

<input type="hidden" name="action" value="login"></input>

PHP, $_POST['action']=='login' kontrol ve giriş yöntemini çağırın.

Web sitenizin bir PHP oturumu veya bir çerez ile çalışacak olsa Edit:, bunu ardışık aramalar için kullanılabilir böylece masaüstü uygulaması geçirebilirsiniz bir kendi oturum belirteci ile giriş durumunu izlemek isteyebilirsiniz API, yani tanımlama bilgilerini işlemek gerekmez. Bu simgeler aynı zamanda IP ve müşteri belki diğer "bireysel" bilgilere bağlı olmalıdır; bu bilgi ideal belirteç veya (istemci tarafı sadece kimlik doğrulaması için geri, o "şifresini" zorunda kalmazsınız) şifreli belirteç içine sağlaması gerekmektedir. Jeton hareketsizlikten sonra zaman aşımına gerekir.

Ayrıca, eski soruyu okuduktan, ben ağ üzerinden bir karma gönderme gibi kötü bir şey yapmaya çalışıyor ve JS yan kodlama orada tartışıldı çünkü sadece kullanıcı tablosu ile that karma kontrol edilebilir korkuyorlar. Eğer istemci tarafında bazı şifreleme algoritması uygulamak, ya da emin bu kadar güvenli yapmak istiyorsanız (yapmak zor size kriptografi içine sürece) veya SSL başvurmaktadırlar.

Masaüstü App verileri $_POST dizisi aracılığıyla gönderilecek olası olduğu gibi, ben hayır derim. Web siteleri ve Masaüstü Apps uygulamaları iki tamamen farklı türleri vardır ve bu ikisi arasındaki ön-uç fazla kod paylaşmak düşünüyorum gerçekçi olacaktır.

Ben soyut, çekirdek sınıfları içine olabildiğince işlevsellik olarak çok çalışın ve daha sonra kendi yolunda çekirdeğini kullanan iki ayrı ön-uç uygulamaları, her yaratacak.

Gerçekten "limby" almak ve bir hilkat garibesi büyük uzuv çıkmak ve bu yapmak için çalışıyoruz ne olduğunu söylemek için gidiyorum:

<?php
if(isset($_POST['username'])) {
    require_once '../usermanagement.php';
    $m = new usermanage(); 
    echo $m->login($_POST['username'], $_POST['password']);
}else{
    ?>Put your login form HTML here<?php
}

Bu şekilde sadece bir login.php dosyası gerekir.