PHP 5.3页面在加载时冻结

PHP 5.3页面在加载时冻结,php,buffer,printing,Php,Buffer,Printing,我的一个网页出现了一个非常奇怪的问题。它是用PHP编写的,今天突然,在没有对站点进行任何更改的情况下,它开始冻结,而只加载某个页面和此页面。 冻结意味着加载了一半的页面,然后页面停止,看起来浏览器正在等待来自服务器的更多信息,这在所有流行的浏览器中都是一样的 该页面有两种类型的用户,它可以很好地为管理员,但冻结为用户。唯一的区别是用户在特定状态下没有表行的单选按钮。 现在,当我试图解决这个问题时,我开始处理代码,希望能找到导致问题的部分,但事实证明,我可以删除页面的任何部分,问题就会消失。我也可

我的一个网页出现了一个非常奇怪的问题。它是用PHP编写的,今天突然,在没有对站点进行任何更改的情况下,它开始冻结,而只加载某个页面和此页面。 冻结意味着加载了一半的页面,然后页面停止,看起来浏览器正在等待来自服务器的更多信息,这在所有流行的浏览器中都是一样的

该页面有两种类型的用户,它可以很好地为管理员,但冻结为用户。唯一的区别是用户在特定状态下没有表行的单选按钮。 现在,当我试图解决这个问题时,我开始处理代码,希望能找到导致问题的部分,但事实证明,我可以删除页面的任何部分,问题就会消失。我也可以添加一两行,问题就消失了。更具体一点:并非每次都有效。我又添加了一行,在表单中添加了一个隐藏字段,但问题仍然存在,但我添加了另一行,名称不同,现在可以使用了

我使用PHP打印函数将每行代码输出到浏览器

什么会导致这个问题?太奇怪了,我只想知道!:

我做了一些额外的测试。 现在它只需添加一行即可工作。这条线是:

print "<input type=\"hidden\" name=\"a\" value=\"123456789012345678901234567890\">";
如果我从12345678901213456789012345678901234567890中删除一个数字,它将再次开始冻结!如果我添加更多的数字,它仍然可以正常工作

页面加载后,没有javascript代码扫描任何内容

这是该页面的全部代码。它嵌入到index.php中 最大的问题是:为什么它适用于“admin”而不适用于“user”这些是数据库中的字段

<?
//$gdzie = "noworodki";
$userx = $_SESSION['userx'];
$result2=mysql_query("SELECT * FROM porody_ludzie WHERE login = '$userx'");
$row5=mysql_fetch_array($result2);

$dzisiaj = getdate(); 
$rok     = $dzisiaj['year']; 

$ilosc_rekordow = 15;
$ktora_tabela = "porody_karta";
if(($filter=="Filtruj")||($filter=="filtrowane")){
  if($filter=="Filtruj"){
    $strona=0;
  }
  if($numer_karty!=""){
    $query = mysql_query("SELECT COUNT(*) FROM $ktora_tabela WHERE numer = '$numer_karty'");
  }else{
    if($rodzaj_porodu!="-----"){
      $query = mysql_query("SELECT COUNT(*) FROM $ktora_tabela WHERE rodzaj_p LIKE '$rodzaj_porodu'");
    }else{
      if($status!="-----"){
        $query = mysql_query("SELECT COUNT(*) FROM $ktora_tabela WHERE status = '$status'");
      }else{
        //po nazwisku matki
        if($nazwisko_matki!=""){
          $query = mysql_query("SELECT COUNT(*) FROM $ktora_tabela WHERE nazwisko LIKE '$nazwisko_matki'");
        }else{          
          //print "po all<br>";
          $query = mysql_query("SELECT COUNT(*) FROM $ktora_tabela");
        }
      }
    }
  }
}else{
  $query = mysql_query("SELECT COUNT(*) FROM $ktora_tabela");
}
$ilosc_rekordow_w_tabeli = mysql_result($query, 0, 0); 
$max = ceil($ilosc_rekordow_w_tabeli/$ilosc_rekordow);
if($next=="następna"){
  $strona++;
}elseif($next=="poprzednia"){
  $strona--;
}elseif($next=="pierwsza"){
  $strona=0;
}elseif($next=="ostatnia"){
  if($max>1){
    $strona=$max-1;
  }
}
$offset = $strona*$ilosc_rekordow;
print '<table border=0 width="100%">
      <tr>
        <td width="30%">&#160;</td>
        <td width="10%">';
  print "<form method=\"post\" action=\"index.php\">";
  print "<input type=\"hidden\" name=\"action\" value=\"0\">";
  print "<input type=\"hidden\" name=\"strona\" value=\"$strona\">";    
  print "<input type=\"hidden\" name=\"gdzie\" value=\"$gdzie\">";  
  if($filter!=""){  
    print "<input type=\"hidden\" name=\"filter\" value=\"filtrowane\">";
  }
  print "<input type=\"hidden\" name=\"rodzaj_porodu\" value=\"$rodzaj_porodu\">";
  print "<input type=\"hidden\" name=\"nazwisko_matki\" value=\"$nazwisko_matki\">";
  print "<input type=\"hidden\" name=\"status\" value=\"$status\">";
  print "<input type=\"hidden\" name=\"numer_karty\" value=\"$numer_karty\">";
  print "<center><input type=\"submit\" name=\"next\" value=\"pierwsza\"></form></td>";                     
  print '<td width="10%">';
if($strona>0){
  print "<form method=\"post\" action=\"index.php\">";
  print "<input type=\"hidden\" name=\"action\" value=\"0\">";
  print "<input type=\"hidden\" name=\"strona\" value=\"$strona\">";    
  print "<input type=\"hidden\" name=\"gdzie\" value=\"$gdzie\">";
  if($filter!=""){  
    print "<input type=\"hidden\" name=\"filter\" value=\"filtrowane\">";
  }
  print "<input type=\"hidden\" name=\"rodzaj_porodu\" value=\"$rodzaj_porodu\">";
  print "<input type=\"hidden\" name=\"nazwisko_matki\" value=\"$nazwisko_matki\">";
  print "<input type=\"hidden\" name=\"status\" value=\"$status\">";
  print "<input type=\"hidden\" name=\"numer_karty\" value=\"$numer_karty\">";      
  print "<center><input type=\"submit\" name=\"next\" value=\"poprzednia\"></form>";    
}else{
  print '&#160;';
}
print '</td><td width="10%">';
if($strona<$max-1){
  print "<form method=\"post\" action=\"index.php\">";
  print "<input type=\"hidden\" name=\"action\" value=\"0\">";
  print "<input type=\"hidden\" name=\"strona\" value=\"$strona\">";    
  print "<input type=\"hidden\" name=\"gdzie\" value=\"$gdzie\">";  
  if($filter!=""){  
    print "<input type=\"hidden\" name=\"filter\" value=\"filtrowane\">";
  }
  print "<input type=\"hidden\" name=\"rodzaj_porodu\" value=\"$rodzaj_porodu\">";
  print "<input type=\"hidden\" name=\"nazwisko_matki\" value=\"$nazwisko_matki\">";
  print "<input type=\"hidden\" name=\"status\" value=\"$status\">";
  print "<input type=\"hidden\" name=\"numer_karty\" value=\"$numer_karty\">";          
  print "<center><input type=\"submit\" name=\"next\" value=\"następna\"></form>";  
}else{
  print '&#160;';
}
print '</td><td width="10%">';
print "<form method=\"post\" action=\"index.php\">";
print "<input type=\"hidden\" name=\"action\" value=\"0\">";
print "<input type=\"hidden\" name=\"strona\" value=\"$strona\">";  
print "<input type=\"hidden\" name=\"gdzie\" value=\"$gdzie\">";    
if($filter!=""){    
    print "<input type=\"hidden\" name=\"filter\" value=\"filtrowane\">";
}
print "<input type=\"hidden\" name=\"rodzaj_porodu\" value=\"$rodzaj_porodu\">";
print "<input type=\"hidden\" name=\"nazwisko_matki\" value=\"$nazwisko_matki\">";
print "<input type=\"hidden\" name=\"status\" value=\"$status\">";
print "<input type=\"hidden\" name=\"numer_karty\" value=\"$numer_karty\">";    
print "<center><input type=\"submit\" name=\"next\" value=\"ostatnia\"></form></td>";                       
print '<td width="30%">&#160;</td></tr></table>';

$strona++;

  print "<form name=\"ludzie\" method=\"post\" action=\"index.php\">";
  print "<table border=0 width=\"100%\">
      <tr>
        <td width=\"15%\">
          <font size=\"-1\">Numer strony: $strona</font><br>";
  $strona--;
  print "       </td>
        <td width=\"25%\">
          <font size=\"-1\">Status: <br>
          <select id=\"status\" name=\"status\">";  

    print "<option>-----</option>";
    print "<option>otwarty</option>";
    print "<option>zamknięty</option>";

    print "</select>
        </td>
        <td width=\"20%\">
          <font size=\"-1\">Numer karty: <br><input name=\"numer_karty\">
        </td>
        <td width=\"20%\">
          <font size=\"-1\">Rodzaj porodu: <br>";
        print "<select name=\"rodzaj_porodu\" id=\"rodzaj_porodu\">";
        print "<option>-----</option>";
        $rodzajPoroduResult=mysql_query("SELECT * FROM porody_rodzaje_porodow");
        while($rodzajPoroduRow=mysql_fetch_array($rodzajPoroduResult)){
          print "<option value=\"$rodzajPoroduRow[id]\">$rodzajPoroduRow[nazwa]</option>";
        }
        print "</select>";
        print "</td>
        <td width=\"20%\">
          <font size=\"-1\">Nazwisko matki: <br><input name=\"nazwisko_matki\" id=\"nazwisko_matki\">
        </td>
        <td width=\"5%\">";
          print "<input type=\"hidden\" name=\"action\" value=\"0\">";              
          print "<input type=\"hidden\" name=\"gdzie\" value=\"$gdzie\">";
          print "<input type=\"hidden\" name=\"strona\" value=\"$strona\">
          <input type=\"submit\" name=\"filter\" value=\"Filtruj\"></form>
        </td>
    </table>";


print "<form method=\"post\" action=\"index.php\">
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" valign=\"top\">";

$result2 = "";

if(($filter=="Filtruj")||($filter=="filtrowane")){
  if($numer_karty!=""){
    $result2=mysql_query("SELECT * FROM $ktora_tabela WHERE numer = '$numer_karty' ORDER BY numer DESC LIMIT $offset,$ilosc_rekordow");
  }else{
    if($rodzaj_porodu!="-----"){
      $result2=mysql_query("SELECT * FROM $ktora_tabela WHERE rodzaj_p LIKE '$rodzaj_porodu' ORDER BY numer DESC LIMIT $offset,$ilosc_rekordow");
    }else{

      if($status!="-----"){
        $result2 = mysql_query("SELECT * FROM $ktora_tabela WHERE status = '$status' ORDER BY numer DESC LIMIT $offset,$ilosc_rekordow");
      }else{
        if($nazwisko_matki!=""){
          $result2=mysql_query("SELECT * FROM $ktora_tabela WHERE nazwisko LIKE '$nazwisko_matki' ORDER BY numer DESC LIMIT $offset,$ilosc_rekordow");
        }else{
          //print "po all<br>";
          $result2 = mysql_query("SELECT * FROM $ktora_tabela ORDER BY numer DESC LIMIT $offset,$ilosc_rekordow");
        }
      }
    }
  }
}else{
  $result2=mysql_query("SELECT * FROM $ktora_tabela ORDER BY rok DESC, numer DESC LIMIT $offset,$ilosc_rekordow");
}



print "<tr><td border=\"0\" valign=\"top\" width=\"2%\"><center>#</center></td>";
print "<td border=\"0\" valign=\"top\" width=\"20%\"><b><center>Numer</center></b></td>";
print "<td border=\"0\" valign=\"top\" width=\"15%\"><b><center>Data porodu</center></b></td>";     
print "<td border=\"0\" valign=\"top\" width=\"23%\"><b><center>Imię i nazwisko pacjentki</center></b></td>";   
print "<td border=\"0\" valign=\"top\" width=\"30%\"><b><center>Rodzaj porodu</center></b></td>";       
print "<td border=\"0\" valign=\"top\" width=\"20%\"><b><center>Status</center></b></td></tr>";     

$user=0;
if($_SESSION['userx']!=""){
  $login = $_SESSION['userx'];
  $result4=mysql_query("SELECT * FROM porody_ludzie WHERE login = '$login'");
  $row4=mysql_fetch_array($result4);
  if($row4['status']=="user"){
    $user=1;
  }
}

while($row3=mysql_fetch_array($result2))
{
  $dzisiaj = getdate(); 
  $rok     = $dzisiaj['year']; 
  print "<tr><td align=\"center\">";
  if(($row3['status']!="otwarty")&&($user==1)){
    print '&nbsp;';
  }else{
    print "<INPUT TYPE=\"radio\" NAME=\"ludzie\" VALUE=\"$row3[id]\">";         
  }
  print "</td>";
  print "<td><center><font size=\"-1\"><a href=\"szczegoly.php?gdzie=$gdzie&&rekord=$row3[id]\" target=\"_blank\"><font color=\"black\">
  $row3[numer]/$row3[rok] BI</font></a></font></center></td>";                      
  print "<td><center><font size=\"-1\">$row3[data_por]</font></center></td>";
  print "<td><center><font size=\"-1\">$row3[imie] $row3[nazwisko]</font></center></td>";
  $rodzajPoroduResult=mysql_query("SELECT * FROM porody_rodzaje_porodow WHERE id = '$row3[rodzaj_p]'");
  $rodzajPoroduRow=mysql_fetch_array($rodzajPoroduResult);
  if($rodzajPoroduRow[nazwa]==""){
    $rodzajPoroduRow[nazwa] = "---";
  }
  print "<td><center><font size=\"-1\">$rodzajPoroduRow[nazwa]</font></center></td>";       
  print "<td";
  if($row3[status]=="otwarty"){
    print ' bgcolor="yellow"';
  }elseif($row3[status]=="zamknięty"){
    print ' bgcolor="green"';       
  }
  print "><center><font size=\"-1\">$row3[status]</font></center></td>";        
  print "</tr>";
}
print "</table><br>";
print "<input type=\"hidden\" name=\"action\" value=\"61\">";
print "<input type=\"hidden\" name=\"gdzie\" value=\"$gdzie\">";
print "<input type=\"hidden\" name=\"strona\" value=\"$strona\">";          
print "<center><input type=\"submit\" name=\"ok\" value=\"Edytuj\">";   
print "<input type=\"submit\" name=\"ok\" value=\"Kasuj\">";        
print "<input type=\"submit\" name=\"ok\" value=\"Dodaj\">";        
print "<center><input type=\"submit\" name=\"ok\" value=\"Zmień status\"></center>";                
print "<input type=\"hidden\" name=\"a\" value=\"1234567890123456789012345678901234567890\">";

print "</form>";        

?>

考虑到您尚未发布所有代码,不确定您发布的内容是否会导致问题,其他如缺少分号或引号可能会导致问题,此外,我们不知道您是否关闭了输入字段

试试这个:

echo "<input type='hidden' name='a' value='123456789012345678901234567890'>";

我更改了转义引号,因为转义可能会导致问题,这取决于您测试代码的位置,即如果您使用网站测试短代码,它们会双重转义反斜杠。还将print更改为echo,因为echo的速度稍快,如果您习惯使用print并使用它来实际打印到打印机,则会感到困惑。

您是否有jquery或某种javascript在加载页面后扫描页面。我已经看到,如果某个地方有bug,javascript函数可能会锁定浏览器

输出缓冲是原因。为了解决这个问题,我在开发服务器上重新安装了IIS和php,输出缓冲设置为4096。我在php.ini文件中将其改为On,效果很好。在每个表或分区块之后,最好使用ob_flush;和冲洗;这样,用户将看到页面加载。如果在某些浏览器中没有此功能,它会将所有代码输出到浏览器的一个块中,因此在用户看到任何内容之前,一个大页面将需要花费大量时间

定义冻结?打印半页然后停止?打印半页,下载时浏览器永远旋转?你检查过错误日志了吗?你看过网页的来源了吗?我的猜测是:PHP做得很好,但输出转义不正确,再加上有人进入冻结状态,这意味着页面在加载一半后停止,然后在下载时旋转,但不是永远旋转,而是在2-3分钟之后,它才正确加载。我从未使用过任何错误日志。你能说出一个我可以检查的工具吗?该死的输入不起作用:P我会寻找一些额外的<但是因为在页面崩溃之前我没有更改任何内容。。。这很奇怪…打开可能会有所不同?有关打开它的信息,请参见。