Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ranga
Forum PHP.pl > Forum > Przedszkole
onelife
Mam taki kod


Kod
        while ($dane = mysql_fetch_assoc($wynik))
        {
       $kill = '<b>Zabójstw:</b> '.$dane['kills'].'<br />';
       $death = '<b>Śmierci:</b> '.$dane['deaths'].'<br />';

      
        }

I potem to sobie wywołuje w szablonie {$kill} , ale nie wiem jak to zrobić

Kod
echo '<b>Ranga:</b>';
    if($dane['level'] != 0)
    {
    echo'<b>Admin</b><br />';
    }
    else {
    echo'<b>GRACZ</b><br />';
    }


Na ten sposób co mam wyżej żebym mógł wywołać w szablonie, bo jak dam w echo to mi poza styl wychodzi. Pomoże ktoś?
Qss
nie bardzo rozumiem co ci poza styl wychodzi? Pokaz jak to zrobiłeś a nie pokazujesz sposób
b4rt3kk
Najprostszym sposobem jest switch:

  1. switch ($dane['crew_level']) {
  2. case 0:
  3. $ranga = 'Admin';
  4. break;
  5. case 1:
  6. $ranga = 'Gracz';
  7. break;
  8. case 2:
  9. $ranga = 'Noob';
  10. break;
  11. }


A najlepszym rozwiązaniem jest napisanie klasy/funkcji słownika.
Turson
Co znaczy, że nie wyszło? Na pierwszy rzut oka wygląda ok
onelife
Błąd

Kod
Parse error: syntax error, unexpected $end in /home/p335805/public_html/o.php on line 66


Kod

Kod
   switch ($dane['crew_level']) {
    case 3:
    $ranga = '<b>Ranga: <font color="red">Head Admin</font></b><br />';
    break;
    case 2:
    $ranga = '<b>Ranga:<font color="blue">Admin</font></b><br />';
    break;
    case 1:
    $ranga = '<b>Ranga: <font color="green">Moderator</font></b><br />';
    break;
    case 0:
    $ranga = '<b>Ranga: <font color="black">Gracz</font></b><br />';
    break;
    }

      
        }
}
    eval("\$podstr = \"".$templates->get("o")."\";");
    output_page($podstr);

?>


?> - 66 linijka
Turson
Musisz domknąć rozpoczęty warunek, czyli dodać }
Nie wiem jak wygląda cały kod, bo podałeś same skrawki kodu, ale przypuszczam, że musisz domknąć właśnie if(isset($_GET['nick']))
onelife
I wszystko jasne, dzięki. wink.gif Jeszcze jedna sprawa,bo jak wpiszę nick prawidłowy czy nie prawidłowy to zawsze zostaje mi ten pasek do wpisywania nicku, i jak mogę to zrobić by pasek bo wygenerowaniu zniknął? Ten kod odpowiadający za wpisanie nicku mam w wrzucone w stylu pod strony,natomiast skrypt w pliku.
Tak mam w stylu.
Kod
<td class="trow2 post_content" style="padding-left: 30px;">  
<table>

    <tr><td align="center">
        <form action="o.php" method="get">
            <input type="hidden" name="p" value="0" />
            Nick: <input name="nick" value="" size="20" style="width: 100px;" type="text">
            <br /><br />
            <input name="generuj" value="Dalej" type="submit">


        </form>
    </td></td></tr>
</table>
kosmos
To chyba nie jest najlepsze rozwiazanie, ale zobacz.

  1.  
  2. <td class="trow2 post_content" style="padding-left: 30px;">
  3. <tr>
  4. <td align="center">
  5. <?php
  6. if (!isset($_POST['nick'])) {
  7. print'<form action="" method="POST">
  8. <input type="hidden" name="p" value="0" />
  9. Nick: <input name="nick" value="" size="20" style="width: 100px;"type="text">
  10. <br /><br />
  11. <input name="generuj" value="Dalej" type="submit">
  12. </form>';
  13. }
  14. ?>
  15. </td>
  16. </tr>
  17. </table>


aaa i moim zdaniem miałes o jeden znacznik </td> za dużo.
Dodatkowo zmieniłem sposób wysyłania danych z formularza. Zwróć uwagę że użyłem tam tablicy POST
Poczytaj o POST i GET
onelife
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/p335803/public_html/o.php(62) : eval()'d code on line 26

Turson
Skąd mamy wiedzieć co masz w 26. linii?
onelife
Fakt. o.php:

Kod
    case 0:
    $ranga = '<b>Ranga: <font color="black">Gracz</font></b><br />';
    break;
    }
}
      
        }
}
    eval("\$podstr = \"".$templates->get("o")."\";");
    output_page($podstr);

?>


eval("\$podstr = \"".$templates->get("o")."\";");
output_page($podstr); to jest 26
kosmos
Spróbuj tak:

  1. <td class="trow2 post_content" style="padding-left: 30px;">
  2. <table>
  3. <tr>
  4. <td align="center">
  5. <?php
  6. if (!isset($_GET['nick'])) {
  7. print'<form action="" method="GET">
  8. <input type="hidden" name="p" value="0" />
  9. Nick: <input name="nick" value="" size="20" style="width: 100px;"type="text">
  10. <br /><br />
  11. <input name="generuj" value="Dalej" type="submit">
  12. </form>';
  13. }
  14. ?>
  15. </td>
  16. </tr>
  17. </table>
onelife8
dalej to samo ;/
com
poco to
  1. eval("\$podstr = \"".$templates->get("o")."\";");

i co to ma robić?

Po pierwsze jak już:
http://us3.php.net/eval i patrz przykład
Po drugie
Cytat
Caution

The eval() language construct is very dangerous because it allows execution of arbitrary PHP code. Its use thus is discouraged. If you have carefully verified that there is no other option than to use this construct, pay special attention not to pass any user provided data into it without properly validating it beforehand.
onelife8
Trzymam w tym szablon. W takim razie czym to mogę zastąpić?
com
no skoro chcesz wyświetlić jak mniemam ten obiekt to czemu nie
  1. $templates->get("o");
ewentualnie echo przed tym ;>
onelife8
po dodaniu

Kod
    echo $templates->get("o");

jest taki efekt że sa tylko napisy

{$headerinclude} {$metag} {$header}
Panel
Nick:

{$Wyswietlskina} {$nickgracza} {$ranga} {$death} {$skins} {$score} {$kill}

{$footer}

bez echo,pusta strona.
com
no pokaż cały kod albo jakiego szablonu używasz?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.