使用两次后,返回服务器错误的相同PHP代码

时间:2014-02-26 08:57:30

标签: php html internal-server-error mobile-browser

以下代码段会检查用户是否使用移动浏览器。如果是,则使用tr标记以新行显示图标。

function isMobile() {
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

问题:

它只适用于前两次。实际上,正如您所看到的,该函数在最后2次被注释掉,因为它没有得到服务器错误(500)。

我还尝试将echo部分放在大括号中,但是当下面的所有4个php函数都被取消注释时,仍会返回服务器错误。

<table align="center" frame='box'>
<tr>
<td align="center" colspan="20">
<a href="assignlocktouser.php"><figure><img src="Images/basicunlock.png" alt="Assign Lock to Basic User" height="64" width="64"/>
<imgcaption></p>Assign Lock to Basic User</imgcaption><figure></a>
<?php if (isMobile()) echo "</tr><tr>"; ?>
<td align="center" colspan="20">
<a href="addDevice.php"><figure><img src="Images/addDevice.png" alt="Add Device" height="64" width="64"/>
<imgcaption></p>Add Device</imgcaption><figure></a>
<?php if (isMobile()) echo "</tr><tr>"; ?>
<td align="center" colspan="20">
<a href="editSequence.php"><figure><img src="Images/editsequence.png" alt="Edit Sequence" height="64" width="64"/>
<imgcaption></p>Edit Sequence</imgcaption><figure></a>
<?php //(if isMobile()) echo "</tr><tr>"; ?>
<td align="center" colspan="20">
<a href="addLock.php"><figure><img src="Images/lock.png" alt="Add New Lock" height="64" width="64"/>
<imgcaption></p>Add New Lock</imgcaption><figure></a>
<?php //(if isMobile()) echo "</tr><tr>"; ?>
<td align="center" colspan="20">
<a href="switchLockOwner.php"><figure><img src="Images/ownerunlock.png" alt="Switch Lock Owner" height="64" width="64"/>
<imgcaption></p>Switch Lock Owner</imgcaption><figure></a>      
</tr>
</table>

有关为何发生这种情况的任何线索?

1 个答案:

答案 0 :(得分:0)

你的if语句是错误的回合

<?php (if isMobile()) echo "</tr><tr>"; ?>

应该是

<?php if (isMobile()) echo "</tr><tr>"; ?>

我总是找到最适合阅读的括号

所以,你可以这样做

<?php if (isMobile()) {echo "</tr><tr>";} ?>

或者,如果您想对其进行简短编码,请使用真正的单行句if语句

<?=((isMobile()) ? "</tr><tr>" : NULL)?>