Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Błąd PHP w szablonie.

Błąd   Założony przez  Kacper Wojciechowski.

wersja skryptu MyBB:  1.8.4
adres forum:   http://wrt.xaa.pl/home.php
na czym polega problem (screen, opis, komunikaty, nazwa stylu/theme/szablonu):

Witam, mam problem z PHP w szablonie. Są to błędy:
Parse error: syntax error, unexpected end of file in /home/p407924/public_html/home.php(7) : eval()'d code(52) : eval()'d code on line 9

Parse error: syntax error, unexpected end of file in /home/p407924/public_html/home.php(7) : eval()'d code(101) : eval()'d code on line 11

Parse error: syntax error, unexpected end of file in /home/p407924/public_html/home.php(7) : eval()'d code(112) : eval()'d code on line 4

Parse error: syntax error, unexpected '}' in /home/p407924/public_html/home.php(7) : eval()'d code(125) : eval()'d code on line 2

Lecz jak wrzucę kod php w http://wrt.xaa.pl/panel/test.php to działa.

<?php
require "panel/SampQueryAPI.php";
$query = new SampQueryAPI('80.88.90.213''7777');
if(
$query->isOnline())
{
    
$aInformation $query->getInfo();
    
$aServerRules $query->getRules();
    
    
?>
    <b>General Information</b>
    <table width="400">
        <tr>
            <td>Hostname</td>
            <td><?= htmlentities($aInformation['hostname']) ?></td>
        </tr>
        <tr>
            <td>Gamemode</td>
            <td><?= htmlentities($aInformation['gamemode']) ?></td>
        </tr>
        <tr>
            <td>Players</td>
            <td><?= $aInformation['players'?> / <?= $aInformation['maxplayers'?></td>
        </tr>
        <tr>
            <td>Map</td>
            <td><?= htmlentities($aInformation['mapname']) ?></td>
        </tr>
        <tr>
            <td>Weather</td>
            <td><?= $aServerRules['weather'?></td>
        </tr>
        <tr>
            <td>Time</td>
            <td><?= $aServerRules['worldtime'?></td>
        </tr>
        <tr>
            <td>Version</td>
            <td><?= $aServerRules['version'?></td>
        </tr>
        <tr>
            <td>Password</td>
            <td><?= $aInformation['password'] ? 'Yes' 'No' ?></td>
        </tr>
    </table>

    <br />
    <b>Online Players</b>
    <?php
    
    $aPlayers 
$query->getDetailedPlayers();
    
    if(!
is_array($aPlayers) || count($aPlayers) == 0)
    {
        echo 
'<br /><i>None</i>';
    }
    else
    {
        
?>
        <table width="400">
            <tr>
                <td><b>Player ID</b></td>
                <td><b>Nickname</b></td>
                <td><b>Score</b></td>
                <td><b>Ping</b></td>
            </tr>
        <?php
        
foreach($aPlayers as $sValue)
        {
            
?>
            <tr>
                <td><?= $sValue['playerid'?></td>
                <td><?= htmlentities($sValue['nickname']) ?></td>
                <td><?= $sValue['score'?></td>
                <td><?= $sValue['ping'?></td>
            </tr>
            <?php
        
}
    
        echo 
'</table>';
    }
}
?>
Masz otwartego ifa:
if($query->isOnline())
{
    $aInformation = $query->getInfo();
    $aServerRules = $query->getRules();
    
    ?>

Brakuje } co powinno wyeliminować jeden z błędów.
Poza tym, mogę się mylić, ale wydaje mi się, że nie możesz kończyć sobie tak pliku jak to robisz. Notorycznie w warunkach kończysz składnię php i wklejasz html'a.

if(!is_array($aPlayers) || count($aPlayers) == 0)
    {
        echo '<br /><i>None</i>';
    }
    else
    {
        ?>

Else { i w tym momencie instrukcja się kończy, nie czyta dalszej części jako dodatkowy warunek i tak samo w kolejnych miejscach.

<?php
        foreach($aPlayers as $sValue)
        {
            ?>
            <tr>
                <td><?= $sValue['playerid'] ?></td>
                <td><?= htmlentities($sValue['nickname']) ?></td>
                <td><?= $sValue['score'] ?></td>
                <td><?= $sValue['ping'] ?></td>
            </tr>
            <?php>

Zamiast notorycznie przerywać php'a daj tego htmla w echo bądź eval'a.
"Try not. Do... or do not. There is no try."
Poświęć 5 minut. Nie bądź ignorantem!  -  Jak zbadać element?
Teraz mam taki błąd:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/p407924/public_html/home.php(7) : eval()'d code(76) : eval()'d code on line 14

Kod PHP:
<div class="thead">
<div style="margin-top: 5px;"><strong>Gracze OnLine</strong></div>
</div>
                <table width="400">
            <tr>
                <td><b>ID</b></td>
                <td><b>Nick</b></td>
                <td><b>Respekt</b></td>
            </tr>
    
    
<?php
require "panel/SampQueryAPI.php";
$query = new SampQueryAPI('80.88.90.213', '7777');
if($query->isOnline())
{
    $aInformation = $query->getInfo();
    $aServerRules = $query->getRules();
    }
    ?>
    <?php
    
    $aPlayers = $query->getDetailedPlayers();
    
    if(!is_array($aPlayers) || count($aPlayers) == 0)
    {
        echo '<center><br><br><b>Brak graczy na serwerze! :(</b></center>';
    }
    else
    {
        foreach($aPlayers as $sValue)
        {
            echo "<tr>";
                echo "<td>= $sValue['playerid'] </td>";
                echo "<td>= htmlentities($sValue['nickname'])</td>";
                echo "<td>= $sValue['score']</td>";
            echo "</tr>";
            ?>
    
    </table>
Nie rozwiąże to pewnie błędu, ale nadal gubisz znaczniki.
Pierwsza sprawa, po co rozbijać jeden kod php na dwie części? Wyciąłem zamkniecie i ponowne otwarcie tagu php z środka skryptu.
Druga kwestia, uważaj na klamry:
else
    {
        foreach($aPlayers as $sValue)
        {
            echo "<tr>";
                echo "<td>= $sValue['playerid'] </td>";
                echo "<td>= htmlentities($sValue['nickname'])</td>";
                echo "<td>= $sValue['score']</td>";
            echo "</tr>";
?>
Brakuje tutaj dwóch } dla zamknięcia warunku i dla zamknięcia pętli foreach.

Spróbuj tego kodu:

<div class="thead">
<div style="margin-top: 5px;"><strong>Gracze OnLine</strong></div>
</div>
                <table width="400">
            <tr>
                <td><b>ID</b></td>
                <td><b>Nick</b></td>
                <td><b>Respekt</b></td>
            </tr>
    
    
<?php
require "panel/SampQueryAPI.php";
$query = new SampQueryAPI('80.88.90.213','7777');
if($query->isOnline())
    {
    $aInformation = $query->getInfo();
    $aServerRules = $query->getRules();
    }

    $aPlayers = $query->getDetailedPlayers();
    
    if(!is_array($aPlayers) || count($aPlayers) == 0)
    {
        echo "<center><br><br><b>Brak graczy na serwerze!</b></center>";
    }
    else
    {
        foreach($aPlayers as $sValue)
        {
            echo "<tr>";
                echo "<td>= $sValue['playerid'] </td>";
                echo "<td>= htmlentities($sValue['nickname'])</td>";
                echo "<td>= $sValue['score']</td>";
            echo "</tr>";
        }
    }
?>
</table>
"Try not. Do... or do not. There is no try."
Poświęć 5 minut. Nie bądź ignorantem!  -  Jak zbadać element?
Podobny albo nawet taki sam błąd:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/p407924/public_html/home.php(7) : eval()'d code(76) : eval()'d code on line 21
ewidetnie zjadasz klmary
pokazujesz na caly szablon? pokaz caly

druga sprawa
nie wiem czy tak nie dzialalo by lepiej

<div class="thead">
    <
div style="margin-top: 5px;"><strong>Gracze OnLine</strong></div>
</
div>
<
table width="400">
<
tr>
    <
td><b>ID</b></td>
    <
td><b>Nick</b></td>
    <
td><b>Respekt</b></td>
</
tr>
    
<?
php
require "panel/SampQueryAPI.php";
$query = new SampQueryAPI('80.88.90.213''7777');
if(
$query->isOnline())
{
    
$aInformation $query->getInfo();
    
$aServerRules $query->getRules();
    
    
$aPlayers $query->getDetailedPlayers();
        
    if(!
is_array($aPlayers) || count($aPlayers) == 0)
    {
        echo 
'<center><br><br><b>Brak graczy na serwerze! :(</b></center>';
    }
    else
    {
        foreach(
$aPlayers as $sValue)
        {
            echo 
"<tr>";
                echo 
"<td>= $sValue['playerid'] </td>";
                echo 
"<td>= htmlentities($sValue['nickname'])</td>";
                echo 
"<td>= $sValue['score']</td>";
            echo 
"</tr>";
        }
    }
}
else

    echo 
'<center><br><br><b>Brak graczy na serwerze! :(</b></center>';
?>    
</table> 
To jest cały kod:
<html>
<head>
<title>{$mybb->settings['bbname']}</title>
{$headerinclude}
</head>
<body id="panel">
{$header}
        <br />
<div class="thead">
  <ul class="menu_gorne">
              <li><a class="activeMenu" href="home.php">Strona Główna</a></li>
              <li><a href="#">TOP Listy</a></li>
              <li><a href="#">Gangi</a></li>
              <li><a href="#">Skład</a></li>
          </ul>
  </div>
<div class="info_podglad">
<div class="calosc_podglad">



<div class="lewa_podglad">
<ul class="tabs">
   <li class="active"><a href="home.php">Gracze OnLine</a></li>
   <li><a href="staty.php">Statystyki</a></li>
   <li><a href="mapa.php">Mapa Świata</a></li>    
   <li style="border-bottom: none !important;"><a href="bany.php">Bany</a></li>    
</ul>
</div>





<div style="margin-top: 69px;" class="prawa_podglad">
<div class="tab_container">
  <div style="display: block;" id="tab1" class="tab_content">
<div class="thead">
    <div style="margin-top: 5px;"><strong>Gracze OnLine</strong></div>
</div>
<table width="400">
<tr>
    <td><b>ID</b></td>
    <td><b>Nick</b></td>
    <td><b>Respekt</b></td>
</tr>
    
<?php
require "panel/SampQueryAPI.php";
$query = new SampQueryAPI('80.88.90.213', '7777');
if($query->isOnline())
{
    $aInformation = $query->getInfo();
    $aServerRules = $query->getRules();
    
    $aPlayers = $query->getDetailedPlayers();
        
    if(!is_array($aPlayers) || count($aPlayers) == 0)
    {
        echo '<center><br><br><b>Brak graczy na serwerze! :(</b></center>';
    }
    else
    {
        foreach($aPlayers as $sValue)
        {
            echo "<tr>";
                echo "<td>= $sValue['playerid'] </td>";
                echo "<td>= htmlentities($sValue['nickname'])</td>";
                echo "<td>= $sValue['score']</td>";
            echo "</tr>";
        }
    }
}
else
{
    echo '<center><br><br><b>Brak graczy na serwerze! :(</b></center>';
?>    
</table>
    
    
    </div>    </div>    </div>    </div>
</div>
</div>
</div>
    <br>
  <div id="board_footer"><p id="copyright">© 2015 <b>X3nO, Panel Version: 1.0</b></p></div>
{$footer}
</body>
</html>
tu mas zle polaczone znaki

echo "<td>= $sValue['playerid'] </td>";
                echo "<td>= htmlentities($sValue['nickname'])</td>";
                echo "<td>= $sValue['score']</td>";
Nie wiem za bardzo o co chodzi z tymi znakami
               echo "<td>= $sValue["playerid"] </td>";
               echo "<td>= htmlentities($sValue["nickname"])</td>";
               echo "<td>= $sValue["score"]</td>";
echo "<td>".$sValue["playerid"]."</td>";
                echo "<td>".htmlentities($sValue["nickname"])."</td>";
                echo "<td>".$sValue["score"]."</td>";
Parse error: syntax error, unexpected end of file in /home/p407924/public_html/home.php(7) : eval()'d code(79) : eval()'d code on line 30

chyba cos nie czyta zakonczenia
teraz ja zjadlem klamre ifa

<html>
<head>
<title>{$mybb->settings['bbname']}</title>
{$headerinclude}
</head>
<body id="panel">
{$header}
        <br />
<div class="thead">
  <ul class="menu_gorne">
              <li><a class="activeMenu" href="home.php">Strona Główna</a></li>
              <li><a href="#">TOP Listy</a></li>
              <li><a href="#">Gangi</a></li>
              <li><a href="#">Skład</a></li>
          </ul>
  </div>
<div class="info_podglad">
<div class="calosc_podglad">



<div class="lewa_podglad">
<ul class="tabs">
   <li class="active"><a href="home.php">Gracze OnLine</a></li>
   <li><a href="staty.php">Statystyki</a></li>
   <li><a href="mapa.php">Mapa Świata</a></li>    
   <li style="border-bottom: none !important;"><a href="bany.php">Bany</a></li>    
</ul>
</div>





<div style="margin-top: 69px;" class="prawa_podglad">
<div class="tab_container">
  <div style="display: block;" id="tab1" class="tab_content">
<div class="thead">
    <div style="margin-top: 5px;"><strong>Gracze OnLine</strong></div>
</div>
<table width="400">
<tr>
    <td><b>ID</b></td>
    <td><b>Nick</b></td>
    <td><b>Respekt</b></td>
</tr>
    
<?php
require "panel/SampQueryAPI.php";
$query = new SampQueryAPI('80.88.90.213', '7777');
if($query->isOnline())
{
    $aInformation = $query->getInfo();
    $aServerRules = $query->getRules();
    
    $aPlayers = $query->getDetailedPlayers();
        
    if(!is_array($aPlayers) || count($aPlayers) == 0)
    {
        echo '<center><br><br><b>Brak graczy na serwerze! :(</b></center>';
    }
    else
    {
        foreach($aPlayers as $sValue)
        {
            echo "<tr>";
                echo "<td>".$sValue["playerid"]."</td>";
                echo "<td>".htmlentities($sValue["nickname"])."</td>";
                echo "<td>".$sValue["score"]."</td>";
            echo "</tr>";
        }
    }
}
else
{
    echo '<center><br><br><b>Brak graczy na serwerze! :(</b></center>';
}
?>    
</table>
    
    
    </div>    </div>    </div>    </div>
</div>
</div>
</div>
    <br>
  <div id="board_footer"><p id="copyright"> 2015 <b>X3nO, Panel Version: 1.0</b></p></div>
{$footer}
</body>
</html>



Użytkownicy przeglądający ten wątek:

1 gości