我有一个计算biorythm的脚本,并显示带有结果的图表。 对于我不知道的原因,在服务器更新后,以下脚本似乎不起作用。
<?php
$now = gmdate('D, d M Y H:i:s') . ' GMT';
header('Expires: ' . $now);
header('Last-Modified: ' . $now);
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
error_reporting(0);
$copyright = "By www.magnaromagna.it";
$name = $_POST["name"];
$day = $_POST["day"];
$month = $_POST["month"];
$year = $_POST["year"];
$cycle = $_POST["cycle"];
$chartsize = $_POST["chartsize"];
$name = strip_tags($name);
if($chartsize == "small")
{
$chartwidth = 450;
$chartheight = 252;
$tablewidth = 500;
}
elseif($chartsize == "medium")
{
$chartwidth = 625;
$chartheight = 350;
$tablewidth = 655;
}
else
{
$chartwidth = 800;
$chartheight = 448;
$tablewidth = 820;
}
$date = date("m/d/y");
function drawRhythm($daysalive, $period, $color)
{
//$period = $period * 2;
global $cycle, $image, $chartwidth, $chartheight;
$centerday = $daysalive - ($cycle / 2);
$plotscale = ($chartheight - 25) / 2;
$plotcenter = ($chartheight - 25) / 2;
// draw the curve
for($count = 0; $count <= $cycle; $count++ )
{
echo $date ;
$phase = ((($centerday) + $count) % $period) / $period * 2 * pi();
$y = 1 - sin($phase) * (float)$plotscale + (float)$plotcenter;
if($count > 0)
{
imageLine($image, $oldx, $oldy, $count * $chartwidth / $cycle, $y, $color);
}
$oldx = $count * $chartwidth / $cycle;
$oldy = $y;
}
}
$pastdays = abs(gregorianToJD($month, $day, $year) - gregorianToJD(date( "m"), date( "d"), date( "Y")));
$image = imageCreate($chartwidth, $chartheight);
$colorbackground = imageColorAllocate($image, 0, 0, 0);
$colorforeground = imageColorAllocate($image, 255, 255, 255);
$colorgrid = imageColorAllocate($image, 255, 255, 255);
$colorborder = imageColorAllocate($image, 175, 175, 175);
$colorcross = imageColorAllocate($image, 255, 255, 255);
$colorphysical = imageColorAllocate($image, 0, 0, 255);
$coloremotional = imageColorAllocate($image, 255, 0, 0);
$colorintellectual = imageColorAllocate($image, 0, 255, 0);
$colorintuitive = imageColorAllocate($image, 255, 0, 255);
$colorawareness = imageColorAllocate($image, 255, 125, 0);
$colorspiritual = imageColorAllocate($image, 0, 255, 255);
$coloraesthetic = imageColorAllocate($image, 255, 255, 0);
imageFilledRectangle($image, 0, 0, $width - 1, $height - 1, $colorbackground);
$nrsecondsperday = 60 * 60 * 24;
// add a + before $nrsecondsperday; //
$diagramdate = time() - ($cycle / 2 + $nrsecondsperday) * $nrsecondsperday;
$flagcount = 1;
for ($index = 1; $index < $cycle; $index )
{
$thisdate = getDate($diagramdate);
$countCoord = ($chartwidth / $cycle) * $index;
imageLine($image, $countCoord, $chartheight - 25, $countCoord, $chartheight - 20, $colorgrid);
$flag = $flagcount%2;
if($cycle == 60 && $flag == 0)
{
imageString($image, 3, $countCoord - 2, $chartheight - 16, $thisdate[ "mday"], $colorgrid);
}
elseif($cycle != 60)
{
imageString($image, 3, $countCoord - 5, $chartheight - 16, $thisdate[ "mday"], $colorgrid);
}
$flagcount ;
$diagramdate = $nrsecondsperday;
}
imageRectangle($image, 0, 0, $chartwidth - 1, $chartheight - 20, $colorborder);
imageLine($image, 0, ($chartheight - 20) / 2, $chartwidth, ($chartheight - 20) / 2, $colorcross);
imageLine($image, $chartwidth / 2, 0, $chartwidth / 2, $chartheight - 20, $colorcross);
drawRhythm($pastdays, 23, $colorphysical);
drawRhythm($pastdays, 28, $coloremotional);
drawRhythm($pastdays, 33, $colorintellectual);
drawRhythm($pastdays, 38, $colorintuitive);
drawRhythm($pastdays, 43, $coloraesthetic);
drawRhythm($pastdays, 48, $colorawareness);
drawRhythm($pastdays, 53, $colorspiritual);
$subnum = rand(0, 999999);
$subnum = "images/dummies/".$subnum.".gif";
imageGIF($image,$subnum);
imagedestroy($image);
?>
<html>
<head>
<title>Risultato Bioritmo</title>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<meta name="robots" content="index,follow" />
<link rel="stylesheet" type="text/css" href="biostyle.css">
</head>
<body>
<div align="center"><center>
<table border="0" cellpadding="3" cellspacing="0" width="90%">
<TR><TD align = "right"><a href="http://www.magnaromagna.it/bioritmo/" target="_blank" class="pagelinks">Calcola altro bioritmo</a>
</TD></TR></TABLE>
</div>
<div align="center"><center>
<table border="1" cellpadding="7" cellspacing="0" width="90%" class="outertable">
<tr>
<td align="center" class="genericstyle"><p class="bluesubheader">
<?php
if($name != "")
{
echo "Bioritmo per $name<br>";
}
else
{
echo "Mappa dei tuoi bioritmi<br>";
}
?>
<?php
echo "Nascita: $month/$day/$year<br>Data di oggi: $date";
?>
</p>
<p align="center"><img src="<?php echo "$subnum"; ?>">
Rosso: Ciclo Emozionale |
Blu: Ciclo Fisico |
Verde: Ciclo Intelligenza <br>
Viola: Intuito |
Acqua: Ciclo Spirituale |
Giallo: Ciclo Estetico |
Arancione:Ciclo Consapevolezza</p>
<p align="left"><span class="bluesubheader"><br>
Capire il tuo bioritmo</span></p>
</td>
</tr>
</table>
</center></div>
<div align="center"><center>
<table border="0" cellpadding="3" cellspacing="0" width="90%">
<TR><TD align = "right"><a href="http://www.magnaromagna.it/bioritmo/" class="pagelinks" target="_blank">Calcola altro bioritmo</a>
</TD></TR></TABLE>
</div>
<div align="center"><center>
<table border="0" cellpadding="7" cellspacing="0" width="300">
<tr>
<td align="center" class="copyright">Copyright Magnaromagna</td>
</tr>
</table>
</center></div>
</body>
</html>
<?php include("images/dummies/cleanup.php"); ?>
执行后,会发生以下情况:
网关没有收到来自上游服务器或应用程序的及时响应
它或者脚本导致空白页面。
我不认为服务器在执行此脚本时应该花费那么多时间,但是这可能只是我的编码错误。
超时的一个例子就是执行: http://tuttoblog.com/bioritmo/(只需插入随机名称和年份并执行)
空白页面的一个例子就是在这里执行: http://magnaromagna.it/bioritmo/(只需插入随机名称和年份然后执行)
由于我的时间很短,所以对此事的任何帮助都会非常感激。
我的phpinfo - &gt; magnaromagna.it/phpinfo.php
答案 0 :(得分:0)
尝试推杆:
set_time_limit(300);
在页面顶部,在其余PHP代码之前。看看你的脚本是否能正常执行 - 你应该尽可能减少脚本执行的时间,即使这确实解决了它。
编辑:我有一种感觉不行,因为它可能不是PHP有超时问题。如果这没有帮助,那么它可能与您的服务器设置方式有关,您需要解决这个问题,或者让其他人这样做。