-4

私はphpでのオブジェクト指向プログラミングから始めます。

ロギングを実行したい-ajaxとjqueryを使用します。

編集: jquery AJAXを使用してファイルjquery.phpから関数ajaxを呼び出すことはできますか?

//FILE jquery.php

class jquery {

    public function ajax() {

    echo "result";      

    }
}
4

3 に答える 3

1

クラスを直接呼び出すことはできませんが、実行の結果をフェッチすることはできます。

これは、ほぼ直接と呼ぶ方法の例ですが、重要なログインコードには使用しないでください。

<?php
$ftcn = $_GET['getname'];
$bc = new ReallyBadCode();
$bc->$ftcn();

class ReallyBadCode{
    function test(){
    }

    function __call($name, $args){
       $this->$name($args);
    }

}
于 2012-04-15T11:23:11.660 に答える
1

これに似たajax呼び出しを行う場合:

http://example.com/ajax.php?firstParam=1

あなたのファイル内であなたajax.phpはこのようなことをすることができます:

switch($_GET['firstParam']){
 case "1":
  callYourFunction();
 break;
 case "2":
  someOtherFunction();
 break;
}

これは非常に簡略化された例です...実際のケースでは、セキュリティを考慮に入れて、サーバーの外部(つまりユーザー)から取得する情報をサニタイズする必要があります。

私が付けた名前はプレースホルダーのみです。関数/変数の名前は、好きな名前に変更できます。

これがあなたの難問に光を当てることを願っています。

于 2012-04-15T11:39:23.303 に答える
1

AJAXが何であるかを完全に理解しているかどうかはわかりませんが、これはAsynchronous JavaScriptandXMLの頭字語です。Ajaxを使用すると、Webアプリケーションは、既存のページの表示や動作に干渉することなく、サーバーとの間で非同期に(バックグラウンドで)データを送信したり、サーバーからデータを取得したりできます。それでおしまい。

これはあなたが探しているものだと私は信じています(それはOOPではありませんが、あなたの質問に答えるためにOOPログイン全体を書いているわけではありません)

ファイル:login.php

<?php
  $db = new PDO("mysql:host=localhost;dbname=database", SQL_USER, SQL_PASS );

  $stmt = $db->prepare('SELECT user_id, user_activated FROM users WHERE ( username = AND user_password = ? LIMIT 1');
  $stmt->execute( array( $_POST['u'], $_POST['p'] ) );

  if( $stmt->rowCount() == 1 )
  {
     // Authentication session storage stuff here
     echo 'Logged in';
  }
  else
  {
     echo 'bad login';
  }
?>

したがって、次のようなHTMLページを作成できます。

<div id="results"></div>

<input type="text" id="txtUsername" /> <br />
<input type="password" id="txtPassword" /><br />
<button id="cmdLogin">Login</button>

<script>
  $(document).ready(function(){
     $("#cmdLogin").click(function(){
        $u = $("#txtUsername").val();
        $p = $("#txtPassword").val();

        $.ajax({
              type: "POST",
              url: "http://yoursite.com/login.php",
              data: "u="+u+"&p="+p
            }).done(function(results) { 
                  $("#results").html(results).hide().fadeIn();
            });
     });
  });
</script>

また、このコードはテストされておらず、これに応答するものとして記述されていることに注意してください。したがって、これを必要なものの解決策としてではなく、自分が何であるかを実装するのに役立つリソースとして扱ってください。を求めて。

于 2012-04-15T11:41:07.537 に答える