Webboard

Pełna wersja: Skrypt w podstronie
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Witam,
Korzystałem z tego poradnika: http://mybbsite.pl/dodawanie-nowej-podstrony
Potrzebuję dodać do podstrony ranking korzystający z bazy danych wyglądający mniej więcej tak:
Cytat:<?php

?>
Gdy próbuję dodać strona robi się biała, więc ktoś coś poradzi?
Niestety tutaj rozwiązania nikt nie wróży, podaj więcej szczegółów lub  debugowanie błędów php
Chce umieścić to w treści:
Kod:
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM `dx_users` ORDER BY `kills` DESC limit 15";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    echo "<table><tr><th>Nick</th><th>Zabojstwa</th><th>Smierci</th></tr>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>".$row["nick"]."</td><td>".$row["kills"]."</td><td>".$row["deaths"]."</td></tr>";
    }
    echo "</table>";
} else {
    echo "Wyniki pokaza sie wkrotce.";
}
?>

Z dodaniem
Kod:
<?php
error_reporting(E_ALL); // poziom raportowania, http://pl.php.net/manual/pl/function.error-reporting.php
ini_set('display_errors', 1);
?>
wyświetla się:
Kod:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /home/boberwordi/www/rankingv1.php(12) : eval()'d code on line 36
Kod:
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM dx_users ORDER BY kills DESC limit 15";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
stats = "<table><tr><th>Nick</th><th>Zabojstwa</th><th>Smierci</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
$stats2 .= "<tr><td>".$row["nick"]."</td><td>".$row["kills"]."</td><td>".$row["deaths"]."</td></tr>";
}
stats .= "</table>";
} else {
stats2 = "Wyniki pokaza sie wkrotce.";
}
?>
Sprobuj cos tego typu zmienne do uzycia w szablonie stats i stats2, rozumiem ze evala tez masz dodanego?
(29.12.2017, 00:08)Qwizi napisał(a): [ -> ]Sprobuj cos tego typu zmienne do uzycia w szablonie stats i stats2, rozumiem ze evala tez masz dodanego?
Znaczy próbuję dodać do treści podstrony ten właśnie skrypt. Nie działa on tylko na podstronie, jakbym miał dodać do zwykłego .php to wszystko działałoby.

Tak wygląda szablon:
Kod:
<html>
<head>
{$headerinclude}
<title>Ranking killi (V1)</title>

</head>
<body>
{$header}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="clear: both; border-bottom-width: 0;">
<tr>
<td class="thead" colspan="2">
Ranking TOP15 killi
</td>
</tr>
<tr>
<td class="trow2 post_content ">
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM `dx_users` ORDER BY `kills` DESC limit 15";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    echo "<table><tr><th>Nick</th><th>Zabojstwa</th><th>Smierci</th></tr>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>".$row["nick"]."</td><td>".$row["kills"]."</td><td>".$row["deaths"]."</td></tr>";
    }
    echo "</table>";
} else {
    echo "Wyniki pokaza sie wkrotce.";
}
?>
    
</td>
</tr>
</table>
{$footer}
</body>
</html>
(29.12.2017, 00:13)onStyle napisał(a): [ -> ]
(29.12.2017, 00:08)Qwizi napisał(a): [ -> ]Sprobuj cos tego typu zmienne do uzycia w szablonie stats i stats2, rozumiem ze evala tez masz dodanego?
Znaczy próbuję dodać do treści podstrony ten właśnie skrypt. Nie działa on tylko na podstronie, jakbym miał dodać do zwykłego .php to wszystko działałoby.

Tak wygląda szablon:
Kod:
<html>
<head>
{$headerinclude}
<title>Ranking killi (V1)</title>

</head>
<body>
{$header}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="clear: both; border-bottom-width: 0;">
<tr>
<td class="thead" colspan="2">
Ranking TOP15 killi
</td>
</tr>
<tr>
<td class="trow2 post_content ">
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
   die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM `dx_users` ORDER BY `kills` DESC limit 15";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
   echo "<table><tr><th>Nick</th><th>Zabojstwa</th><th>Smierci</th></tr>";
   // output data of each row
   while($row = $result->fetch_assoc()) {
       echo "<tr><td>".$row["nick"]."</td><td>".$row["kills"]."</td><td>".$row["deaths"]."</td></tr>";
   }
   echo "</table>";
} else {
   echo "Wyniki pokaza sie wkrotce.";
}
?>

</td>
</tr>
</table>
{$footer}
</body>
</html>

W szablonie nie mozna uzywac php. Ten kod co podalem wrzuc do podstrony.php a zmienne do szablonu.

podstrona.php
Kod:
<?php
define('IN_MYBB', 1);
require "./global.php";

add_breadcrumb("Nazwa nowej podstrony", "podstrona.php");

$servername = "";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM dx_users ORDER BY kills DESC limit 15";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
stats = "<table><tr><th>Nick</th><th>Zabojstwa</th><th>Smierci</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
$stats2 .= "<tr><td>".$row["nick"]."</td><td>".$row["kills"]."</td><td>".$row["deaths"]."</td></tr>";
}
stats .= "</table>";
} else {
stats2 = "Wyniki pokaza sie wkrotce.";
}

eval("\$podstr = \"".$templates->get("podstrona")."\";");
output_page($podstr);
?>

podstrona (szablon)
Kod:
<html>
<head>
{$headerinclude}
<title>Tutaj podaj tytuł</title>

</head>
<body>
{$header}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="clear: both; border-bottom-width: 0;">
<tr>
<td class="thead" colspan="2">

Tutaj wpisz tytuł

</td>
</tr>
<tr>
<td class="trow2 post_content ">

{$stats}
{$stats2}

</td>
</tr>
</table>
{$footer}
</body>
</html>

I teraz pozmieniaj pokombinuj dalej.
(29.12.2017, 00:22)Qwizi napisał(a): [ -> ]W szablonie nie mozna uzywac php. Ten kod co podalem wrzuc do podstrony.php a zmienne do szablonu.
Meh, już rozumiem. Tylko teraz jak to przekształcić? Strasznie zielony jestem w tym...

Kod:
<?php
define('IN_MYBB', 1);
require "./global.php";

add_breadcrumb("Ranking Killi (V1)", "rankingv1.php");

eval("\$podstr = \"".$templates->get("rankingv1")."\";");
output_page($podstr);
?>
Moja propozycja (Nie testowałem), użycie do tego klasy MyBB:

Kod PHP:
<?php
define
('IN_MYBB'1); 
require 
"./global.php"

add_breadcrumb("Nazwa nowej podstrony""rankingv1.php"); 

$db2_config = [
    
'hostname' => 'nazwa hosta',
    
'username' => 'nazwa użytkownika',
    
'password' => 'hasło',
    
'database' 'nazwa bazy',
    
'type' 'mysqli',
    
'table_prefix' ''
];

$db2 = new DB_MySQLi;
$db2->connect($db2_config);
$db2->set_table_prefix($db2_config['table_prefix']);
$db2->type $db2_config['type']; 

$query $db2->query("SELECT * FROM dx_users ORDER BY kills DESC limit 15"); // tutaj można też użyć $db->table_prefix, jeśli ustawimy go (#13)

if ($db2->num_rows($query) > 0
{
    
// output data of each row
    
while($row $db2->fetch_array($query)) {
        
$stats .= "<tr><td>" $row['nick'] . "</td><td>" $row['kills'] . "</td><td>" $row['deaths'] . "</td></tr>";
    }

else
{
    
$stats "<tr><td colspan=\"3\">Wyniki pokaza sie wkrotce.</td></tr>";


eval(
"\$pageRanks = \"".$templates->get("rankingv1")."\";"); 
output_page($pageRanks); 

I teraz szablon:

Kod:
<html>
    <head>
        {$headerinclude}
        <title>Tutaj podaj tytuł</title>
    </head>
    <body>
        {$header}
        <table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="clear: both; border-bottom-width: 0;">
            <tr>
                <td class="thead" colspan="3">
                    Tutaj wpisz tytuł
                </td>
            </tr>
            <tr>
                <td class="tcat">Nick</td>
                <td class="tcat">Zabojstwa</td>
                <td class="tcat">Smierci</td>
            </tr>
            {$stats}
        </table>
        {$footer}
    </body>
</html>


W poprzednim skrypcie brakowało $ przed nazwą zmiennej, może to było problemem.

Tego kodu nie sprawdzałem, a pisany z palca na szybko.
(29.12.2017, 10:21)Snake_ napisał(a): [ -> ]W poprzednim skrypcie brakowało $ przed nazwą zmiennej, może to było problemem.
Tego kodu nie sprawdzałem, a pisany z palca na szybko.
Dzięki za chęć poprawienia, lecz coś nie działa.
Jak coś te informacje czyli 'Nick, Zabojstwa i Smierci' ma pobierac z bazy, a nie tworzyć w bazie.
Jak mogę zdebugować php, żeby pokazały się błędy, bo biała strona jest?
Chociażby dodanie tych linijek, które wcześniej używałeś.
Kod:
<?php
error_reporting(E_ALL); // poziom raportowania, http://pl.php.net/manual/pl/function.error-reporting.php
ini_set('display_errors', 1);
define('IN_MYBB', 1);
require "./global.php";

add_breadcrumb("Nazwa nowej podstrony", "rankingv1.php");

$db2_config = [
    'hostname' => '',
    'username' => '',
    'password' => '"',
    'database' = '',
    'type' = 'mysqli',
    'table_prefix' = 'dx_users'
];

$db2 = new DB_MySQLi;
$db2->connect($db2_config);
$db2->set_table_prefix($db2_config['table_prefix']);
$db2->type = $db2_config['type'];

$query = $db2->query("SELECT * FROM dx_users ORDER BY kills DESC limit 15"); // tutaj można też użyć $db->table_prefix, jeśli ustawimy go (#13)

if ($db2->num_rows($query) > 0)
{
    // output data of each row
    while($row = $db2->fetch_array($query)) {
        $stats .= "<tr><td>" . $row['nick'] . "</td><td>" . $row['kills'] . "</td><td>" . $row['deaths'] . "</td></tr>";
    }
}
else
{
    $stats = "<tr><td colspan=\"3\">Wyniki pokaza sie wkrotce.</td></tr>";
}


eval("\$pageRanks = \"".$templates->get("rankingv1")."\";");
output_page($pageRanks);
?>
Próbowałem nawet w nowym <?php i też nic :/
Może tych błędów nie ma, tylko nie odczytuje szablonu (?)

Nazwa szablonu w kodzie jest prawidłowa, a szablon znajduje się w szablonach globalnych?
Inny czyta prawidłowo czyt. 'zakupvipa'
[Obrazek: HCxPKCYvR0WXMpvsNKblIw.png]
Jeśli tak, jak dodac do globalnych?
No i masz odpowiedź. ;)

Szablony globalne są w:
ACP -> Style i szablony -> Szablony -> TUTAJ WYBIERAMY "SZABLONY GLOBALNE "i tam należy dodać ten szablon, będzie 'zakładka' (dodaj szablon).
http://prntscr.com/httocv nie ma takiej opcji, a w "Nowy szablon" nie ma opcji, żeby dodać do Globalnych szablonów.
Stron: 1 2