调试外部php

时间:2013-02-24 16:12:35

标签: php netbeans

我已经设置了Xdebug。它有效。我可以调试代码。但是我有一个问题来调试外部PHP代码,它确实达到了我设置的断点。

这里有更多细节。

从表单的操作中调用外部代码。

<form name="htmlform" method="post" action="contact_form_send.php">

我在contact_form_send.php中有一些代码,如下面的

 <?php

if(isset($_POST['email'])) { $email_to = "xxx@xxx.com"; $email_subject = "test";

我在第一行设置了断点。它永远不会打它。但是,如果我将代码嵌入到与表单相同的文件中。我可以设置断点,逐步执行代码。我知道xdebug正在工作,因为我看到状态栏说明了它

我是netbeans和php的新手。我该如何调试外部php代码?

感谢您的帮助。

这是我的Xdebug配置。

[XDebug的]

zend_extension =“C:\ xampp \ php \ ext \ php_xdebug.dll”

xdebug.profiler_append = 0

xdebug.profiler_enable = 1

xdebug.profiler_enable_trigger = 0

xdebug.profiler_output_dir =“C:\ xampp \ tmp”

xdebug.profiler_output_name =“cachegrind.out。%t-%s”

xdebug.remote_enable = 1

xdebug.remote_handler =“dbgp”

xdebug.remote_host =“127.0.0.1”

xdebug.trace_output_dir =“C:\ xampp \ tmp”

xdebug.remote_port = 9080

更新 只是让它工作。我调试的索引文件是一个htm文件而不是php。它在动作中调用外部php文件。因此,XDebug无法连接到服务器,卡在“等待连接”。我将索引文件的扩展名更改为php。现在一切正常。但是我不知道这是否有意义。 php代码确实从htm文件调用,然后运行。为什么我必须将索引文件的扩展名更改为php以调试外部代码?我在配置中遗漏了什么吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我还没有尝试过您的方案,但我怀疑问题是Form没有传输调试器触发器参数。将以下隐藏字段添加到表单中,并查看它是否在提交时触发调试器:

<input type="hidden" name="XDEBUG_SESSION_START" value="netbeans-xdebug" />

有了这个,HTML页面就不需要扩展名为.php了。