我已经设置了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以调试外部代码?我在配置中遗漏了什么吗?
感谢。
答案 0 :(得分:0)
我还没有尝试过您的方案,但我怀疑问题是Form没有传输调试器触发器参数。将以下隐藏字段添加到表单中,并查看它是否在提交时触发调试器:
<input type="hidden" name="XDEBUG_SESSION_START" value="netbeans-xdebug" />
有了这个,HTML页面就不需要扩展名为.php了。