2015-09-20 28 views
1

我使用$ _SERVER ['PHP_SELF']來運行函數,因爲它包含的方式在我的插件頁面中調用,我無法直接調用functions.php文件,所以我現在想做的事情是在註冊腳本上工作,問題是我的回報不能按我想要的方式使用。例如。使用PHP_SELF返回單個響應

public function CheckUserName() { 
      $query = <<<SQL 
      SELECT id 
      FROM {$this->tprefix}accounts 
      WHERE username = :posteduser 
SQL; 
      $resource = $this->db->db->prepare($query); 
      $resource->execute(array (
      ':posteduser' => $_POST['username'], 
      )); 
      if($resource->rowCount() == 0) { 
       //Self Continue to run checks 
       } 
       else { 
       echo "1"; 
       } 
     } 

是我的檢查,以確保用戶名是不是已被使用,而兩人將電子郵件是否已在使用我的回答迴盪。我的Ajax是

$(function() { 
    $("#register_").submit(function(event) { 
     event.preventDefault(); 
    var username = $("#username").val(); 
    if(username == "") { $("#unameerror").html("Username is Required"); } 
    $.ajax({ 
     type: "POST", 
     url: $("#register_").attr("action"), 
     data: $("#register_").serialize(), 
     success: function(data) { 
     if(data==1) { alert("Username is taken. Please choose another!" }; 
     if(data==2) { alert("Email already registered. Please select lost password 
     if you have forgotten your password" }; 
     if(data==0) { alert("Account Created!") }; //0 is returned after all checks passed and scripts executed 
     }, 
     error: function() { 
     alert("Something isn't right"); 
     } 


    }); 
    }); 
}); 

我的問題是,因爲它是從PHP_SELF運行它撲滅的所有信息(IE <html><title>reg script</title><body><form id = "reg"></form></body><html> 我能想到把我這是怎麼可以分析我的所有數據恢復到簡單地返回腳本的最佳方式代碼?

+0

這個解決方案如何:在ajax數據中發送一個額外的字段,如'action:xx'。然後使用'$ _POST ['action'] =='xx''來檢查此頁面是由ajax還是由Internet Explorer調用。 – Turtle

+0

我不確定你的意思。 = /我會修補它,但現在我用流程告訴它要發送什麼樣的表單;我猜我有些事我不知道我可以做只返回一些東西。 –

回答

0

這個工作對我的框架。既然一切都納入index.php文件,然後就通過變量作爲拉動包括它總是index.php文件 這是目前

error_reporting(E_ALL); 
ini_set('display_errors', 1); 
require_once(dirname(__file__).'/config.php'); 
require_once(dirname(__file__).'/directives.php'); 
LoadClasses(); 
$Theme->Load(ACTIVETHEME); 

我只是改變底部到

if(isset($_POST['process'])) { 
} 
else { 
$Theme->Load(ACTIVETHEME); 
} 

現在它已經沒有問題加載我的網頁,但是當我執行的形式與過程輸入(IE <input type="hidden" name="process" id="process" value="register">) 現在如果沒有執行形式加載頁面,但因爲我希望所有的插件都能通過ajax運行,所以如果發佈了一個進程,那麼它就可以很好地工作,那麼它只會返回php腳本數據。