当前位置:  开发笔记 > 编程语言 > 正文

php给出一个空白页面,没有错误

如何解决《php给出一个空白页面,没有错误》经验,为你挑选了2个好方法。

我有一个AJAX应用程序的以下部分,它没有错误,但屏幕上也没有显示任何内容,所以我不确定问题所在.直接从具有?cmd&id = 1的浏览器调用此页面应该返回,或者甚至在没有?cmd的情况下调用它应该返回cmd错误消息.

编辑:添加测试用例:我确实得到了cmd错误消息,但是当我传递&id = 1(1是一个有效的id)时,没有返回任何html,查看源是完全空白的.我是否错误地使用了回声或类似的东西?

edit2:将echo添加为第一行:无法看到第一个echo

edit3:在回到旧版本并再次进行所有更改之后,我现在在使用有效的cmd和id参数调用时获得测试字符集输出.我使用的代码与下面粘贴的代码相同.

代码:

query("SET NAMES 'utf8'"); 
$con->set_charset("utf8"));
echo "test charset";

if($cmd=="GetSALEData")
{
  echo "test cmdifloop";

  if ($getRecords = $con->prepare("SELECT * FROM SALES WHERE PRODUCT_NO = ?"))
  {
    echo "test recordifloop";

    $getHtml = $con->prepare("SELECT PRODUCT_DESC FROM SALES WHERE PRODUCT_NO = ?");
    $getHtml->bind_param("s", $id);
    $getHtml->execute();
    $getHtml->bind_result($PRODUCT_DESC);

    $getRecords->bind_param("s", $id);
    $getRecords->execute(); 
    $getRecords->bind_result($PRODUCT_NO, $PRODUCT_NAME, $SUBTITLE, $CURRENT_PRICE, $START_PRICE,
                             $PRICE_COUNT, $QUANT_TOTAL, $QUANT_SOLD, $ACCESSSTARTS, $ACCESSENDS,
                             $ACCESSORIGIN_END, $USERNAME, $BEST_PRICEDER_ID, $FINISHED, $WATCH,
                             $BUYITNOW_PRICE, $PIC_URL, $PRIVATE_SALE, $SALE_TYPE, $ACCESSINSERT_DATE,
                             $ACCESSUPDATE_DATE, $CAT_DESC, $CAT_PATH, $COUNTRYCODE, $LOCATION,
                             $CONDITIONS, $REVISED, $PAYPAL_ACCEPT, $PRE_TERMINATED, $SHIPPING_TO,
                             $FEE_INSERTION, $FEE_FINAL, $FEE_LISTING, $PIC_XXL, $PIC_DIASHOW,
                             $PIC_COUNT, $ITEM_SITE_ID
                            ); 
    while ($getRecords->fetch()) 
    {
      $ccodes = array(  "1" => "USA",
                       "77" => "Germany",
                       "16" => "Austria",
                      "122" => "Luxemburg",
                      "193" => "Switzerland",
                     );

      $conditions = array( "0" => "USA",
                          "77" => "Germany",
                          "16" => "Austria",
                         );

      $country = $ccodes[$COUNTRYCODE];
      if ( $country == "" ) $country = "Not applicable";

      $columns = array('FINISHED', 'WATCH', 'PRIVATE_SALE', 'REVISED', 'PAYPAL_ACCEPT', 'PRE_TERMINATED', 'PIC_XXL', 'PIC_DIASHOW');

      foreach($columns as $column) {
        $$column = $row[$column] ? 'YES' : 'NO';
      }

      imageResize($PIC_URL, 250, 300);
      file_put_contents($id, file_get_contents($PIC_URL));

      $html = htmlentities(json_encode($PRODUCT_DESC));
      $shortDate = strftime("%d %m %Y", strtotime($ACCESSSTARTS));

      echo "

".$PRODUCT_NAME."

Username: ".$USERNAME."

PRODUCT Number: ".$PRODUCT_NO."

Subtitle: ".$SUBTITLE."

SALE Start: ".$ACCESSSTARTS."

SALE End: ".$ACCESSENDS."

SALE Type: ".$SALE_TYPE."

Category: ".$CAT_DESC."

Condition: ".$CURRENT_PRICE."

Total Items: ".$QUANT_TOTAL."

Total Sales: ".$QUANT_SOLD."

Start Price: € ".$START_PRICE."

Buyitnow Price: € ".$BUYITNOW_PRICE."

PRICEs: ".$PRICE_COUNT."

Revised: ".$REVISED."

Private: ".$PRIVATE_SALE."

Finished: ".$FINISHED."

Cancelled: ".$PRE_TERMINATED."

Paypal: ".$PAYPAL_ACCEPT."

Country: ". $country ."

Location: ".$LOCATION."

Shipping to: ". $country ."

"; } } function imageResize($imageURL, $maxWidth, $maxHeight) { $imageSize["width"] = 0; $imageSize["height"] = 0; $size = getimagesize($imageURL); if ($size) { $imageWidth = $size[0]; $imageHeight = $size[1]; $wRatio = $imageWidth / $maxWidth; $hRatio = $imageHeight / $maxHeight; $maxRatio = max($wRatio, $hRatio); if ($maxRatio > 1) { $imageSize["width"] = $imageWidth / $maxRatio; $imageSize["height"] = $imageHeight / $maxRatio; return $imageSize; } else { $imageSize["width"] = $imageWidth; $imageSize["height"] = $imageHeight; return $imageSize; } } else { die(print_r(error_get_last())); } } }

我为间距道歉,但是当我按下代码按钮时会自动发生.



1> Filip Ekberg..:

这有助于您查看错误:

ini_set('display_errors', '1');


仍然没有显示错误.我不认为这是一个PHP错误问题,只是一个逻辑问题等.
要显示解析错误,必须在配置文件中启用display_errors,而不是在运行时启用

2> Alan Storm..:

第22行你有一个额外的括号

这个

$con->set_charset("utf8"));

需要这样

$con->set_charset("utf8");

两个未来的调试技巧.首先,您需要对Web主机进行shell访问,或者您需要在开发计算机上本地安装PHP.如果您正在运行Unix,那么您可能已经拥有它.打开终端并输入

php -v

如果你有,你可以通过做检查PHP文件的语法

//on *nix
php yourfile.php

//or on windows
c:\path\to\php.exe yourfile.php

这将保留严重的语法错误.此外,谷歌/搜索此网站的"安装PHP本地教程"或类似的东西,以了解如何获得在您自己的机器上运行的Web服务器,MySQL数据库和PHP的完整副本.

第二个建议,如果您安装本地副本将更容易,是检查您的错误日志.即使PHP没有显示错误消息,错误仍会记录到某个地方的文件中.在您的情况下,您已经在日志文件中看到过类似的内容

PHP Parse error:  syntax error, unexpected ')' in foo.php on line 22

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有