草庐IT

php - 由 Jquery (AJAX) 在服务器的 PHP 代码中发送的调试变量

coder 2024-04-12 原文

我在网络托管处有一个主机服务器,我的 PHP 文件位于服务器的一个文件夹中。从我的 HTML 表单中,我使用 Jquery AJAX 发送一些数据,我喜欢在服务器端的 PHP 代码中查看所有这些变量。 我的 Jquery AJAX 代码如下。

function sendtoServer() {

     $.ajax({
        url: "advertisementdatavalidationatserver.php",
        type: "POST",
        data: $("#landedForm").serialize(), 
        success:  function(ret){

});
}

我在服务器端的PHP代码是

<?php
$data = array();
$data['error'] = false;

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    if(!isset($_POST['purpose'])){ 
        $data['error'] = true;
        $data['message'][] = "Purposeerror";
    }

    if(!isset($_POST['type'])){ 
        $data['error'] = true;
        $data['message'][] = "Typeerror";
    }

    if ($_POST['type'] == "With_RC" || $_POST['type'] == "With_BrickNorcal") { 

        if ($_POST['stories'] == "Stories"){
            $data['error'] = true;
            $data['message'][] = "Storieserror";        
        }


        if ($_POST['bedrooms'] == "Bedrooms") {        
            $data['error'] = true;
            $data['message'][] = "Bedroomserror";        
        }

        if ($_POST['bathrooms'] == "Bathrooms") {        
            $data['error'] = true;
            $data['message'][] = "Bathroomserror";        
        }

    }

    if ($_POST['divs_states'] == "Division") {        
            $data['error'] = true;
            $data['message'][] = "Divisionerror";        
    }

    if ($_POST['township'] == "Township") {        
            $data['error'] = true;
            $data['message'][] = "Townshiperror";        
    }

    if ($_POST['price']=="") {        
            $data['error'] = true;
            $data['message'][] = "Priceerror";        
    }else if (!preg_match('/^\d+$/', $_POST['price']) ) {        
            $data['error'] = true;
            $data['message'][] = "Priceinvalid";        
    } 

    if ($_POST['length']=="") {        
            $data['error'] = true;
            $data['message'][] = "Lengtherror";        
    }else if (!preg_match('/^\d+$/', $_POST['length']) ) {        
            $data['error'] = true;
            $data['message'][] = "Lengthinvalid";        
    } 

    if ($_POST['width']=="") {        
            $data['error'] = true;
            $data['message'][] = "Widtherror";        
    }else if (!preg_match('/^\d+$/', $_POST['width']) ) {        
            $data['error'] = true;
            $data['message'][] = "Widthinvalid";        
    }    

    if(!isset($_POST['haveaircon'])){ 
        $data['error'] = true;
        $data['message'][] = "Airconerror";
    }

    if ($_POST['possession'] == "Possession") {        
            $data['error'] = true;
            $data['message'][] = "Possessionerror";        
    }

    if($_POST['date']==""){ 
        $data['error'] = true;
        $data['message'][] = "Dateerror";
    }

    if($_POST['textarea'] == "Please enter additional information here..." || $_POST['textarea'] ==""){ 
        $data['error'] = true;
        $data['message'][] = "Textareaerror";
    }

    if(!isset($_POST['agentowner'])){ 
        $data['error'] = true;
        $data['message'][] = "Agentownererror";
    }

    if($_POST['name'] == ""){ 
        $data['error'] = true;
        $data['message'][] = "Nameerror";
    }

    if($_POST['phone'] == ""){ 
        $data['error'] = true;
        $data['message'][] = "Phoneerror";
    }else if((strlen($_POST['phone']) < 6) || !preg_match('/^\d+$/', $_POST['phone'])){
        $data['error'] = true;
        $data['message'][] = "Phoneinvalid";
    }

    if(!isset($_POST['email']) || empty($_POST['email'])){ 
        $data['error'] = true;
        $data['message'][] = "Emailrequired";
    }else if(!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
        $data['error'] = true;
        $data['message'][] = "Emailinvalid";
    }

    if(!$data['error']){
        // No errors, save into database

        $con = mysql_connect("localhost","thitsun_admin","z4iufn8n##");

        if (!$con)
        {
           $data['error'] = true;
           $data['message'][] = "Connectionerror";
           die('Could not connect: ' . mysql_error());
        }else{

           mysql_select_db("thitsun_properties_database", $con);

           $purpose = mysql_real_escape_string($_POST['purpose']);           
           $type = mysql_real_escape_string($_POST['type']);
           $stories = NULL;
           $bedrooms = NULL;
           $bathrooms = NULL;
           if ($_POST['type'] == "With_RC" || $_POST['type'] == "With_BrickNorcal") { 
                $stories = intval($_POST['stories']);
                $bedrooms = intval($_POST['bedrooms']);
                $bathrooms = intval($_POST['bathrooms']);
           }
           $divs_states = mysql_real_escape_string($_POST['divs_states']);
           $township = mysql_real_escape_string($_POST['township']);
           $price = intval($_POST['price']);
           $length = intval($_POST['length']);
           $width = intval($_POST['width']);

           if($_POST['haveaircon'] == "yes")
               $haveaircon = "yes";
           else
               $haveaircon = "no";
           if($_POST['havetelephone'] == "yes")
               $havetelephone = "yes";
           else
               $havetelephone = "no";

           $possession = mysql_real_escape_string($_POST['possession']);
           $date = mysql_real_escape_string($_POST['date']);
           $textarea = null;
           if($_POST['textarea'] != "Please enter additional information here..." || $_POST['textarea'] != ""){ 
              $textarea = mysql_real_escape_string($_POST['textarea']);
           }

           $agentowner = mysql_real_escape_string($_POST['agentowner']);
           $name = mysql_real_escape_string($_POST['name']);
           $phone = mysql_real_escape_string($_POST['phone']);
           $email = mysql_real_escape_string($_POST['email']);

           $address = NULL;
           if($_POST['address'] != "Please key in full address if you are ok..." || $_POST['address'] != ""){ 
              $address = mysql_real_escape_string($_POST['address']);
           }          

           $query = "INSERT INTO `thitsun_properties_database`.`registered_properties`(`id`, `purpose`, `type`, `num_stories`, `bedrooms`, `bathrooms`, `div_state`, `township`, `price`, `length`, `width`, `have_phone`, `have_aircon`, `possession`, `available_date`, `description`, `agentowner`, `name`, `phone`, `email`, `address`, `submitteddate`) VALUES (NULL,'$purpose', '$type','$stories', '$bedrooms', '$bathrooms', '$divs_states', '$township', '$price', '$length', '$width', '$havetelephone', '$haveaircon', '$possession', '$date', '$textarea', '$agentowner', '$name', '$phone', '$email', '$address',CURRENT_TIMESTAMP);";
   // `id`, `purpose`, `type`, `num_stories`, `bedrooms`, `bathrooms`, `div_state`, `township`, `price`, `length`, `width`, `have_phone`, `have_aircon`, `possession`, `available_date`, `description`, `agentowner`, `name`, `phone`, `email`, `address`, //`submitteddate`


    //'$purpose', '$type','$stories', '$bedrooms', '$bathrooms', '$divs_states', '$township', '$price', '$length', '$width', '$havetelephone', '$haveaircon', '$possession', '$date', '$textarea', '$agentowner', '$name', '$phone', '$email', //'$address',CURRENT_TIMESTAMP
           if(mysql_query($query,$con) or die("Insertion Failed:".mysql_error()))
           {
              if(mysql_affected_rows($con)!=1){
                 $data['error'] = true;
                 $data['message'][] = "Connectionerror";
              }
           }

            mysql_close($con);
        }

    }
}

// then echo the $data array you have built as JSON to use in jquery. 
//This will be what is returned in your AJAX request
header('Content-Type: application/json; charset=UTF-8');
echo json_encode($data);
?>

我喜欢在将它们放入数据库之前调试所有这些变量,例如 $name、$email、$phone。当然,我可以在它们成功保存到数据库后进行检查。但在某些情况下,如果它们无法保存到数据库中,我需要检查这些变量中的值是什么。

所有讨论都说要使用 print、print_r 或 echo。我使用了它们,但我没有看到任何输出,或者坦率地说不知道在哪里可以看到这些输出。我检查了控制台 (F12),但那里什么也没有。

我的查询是我在位于主机服务器的 .php 文件中有 PHP 代码。如何在 PHP 代码中查看通过 AJAX 发送的变量?

谢谢

最佳答案

我这样做的方法是将 print_r($_POST) 的输出写入服务器上的文件,因为正如您所说,没有可以看到数据的控制台或窗口进入为您的 AJAX 调用提供服务的服务器脚本

<?php
$data = array();
$data['error'] = false;

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    file_put_contents('somefilename.txt', print_r($_POST,true), FILE_APPEND);

    // your other code

使用 FILE_APPEND 选项会将每次调用添加到文件末尾,这样您就可以在每次更改时检查 javascript(AJAX) 代码中所做的更改

关于php - 由 Jquery (AJAX) 在服务器的 PHP 代码中发送的调试变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657280/

有关php - 由 Jquery (AJAX) 在服务器的 PHP 代码中发送的调试变量的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  4. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  5. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  6. ruby - 通过 ruby​​ 进程共享变量 - 2

    我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是

  7. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  8. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  9. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  10. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

随机推荐