Smarty/PHP Varibale in Datei saven und wieder aufrufen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Smarty/PHP Varibale in Datei saven und wieder aufrufen

    Hallo ich nutze Smarty TPL Engine

    Aufbau:

    [header] header.tpl
    [main] main.tpl
    [footer] footer.tpl

    Ich habe dieses Script


    PHP-Code:
    <?php
        error_reporting
    (E_ALL);    
        
    define('SMARTY_DIR','./libs/'); 
        require 
    'libs/Smarty.class.php';
         include 
    'inc/db_con.php';
       
    $db_link mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS);

        
    $sql "SELECT
                    COUNT(*) as Anzahl
                FROM
                    Online
                WHERE
                    IP = '"
    .$_SERVER['REMOTE_ADDR']."'";
        
    $result mysql_query($sql) OR die(mysql_error());
        
    $row mysql_fetch_assoc($result);
        if(
    $row['Anzahl']) {
            
    // Nur Datum Updaten
            
    $sql "UPDATE
                        Online
                    SET
                        Datum = NOW()
                    WHERE
                        IP = '"
    .$_SERVER['REMOTE_ADDR']."'";
            
    mysql_query($sql) OR die(mysql_error());
        } else {
            
    // Neuer eintra
            
    $sql "INSERT INTO Online
                        (IP, Datum)
                    VALUES
                        ('"
    .$_SERVER['REMOTE_ADDR']."', NOW())";
            
    mysql_query($sql) OR die(mysql_error());
        }

        
    // alte Datensätze löschen
        
    $sql "DELETE FROM
                    Online
                WHERE
                    DATE_SUB(NOW(), INTERVAL 1 MINUTE) > Datum"
    ;
        
    mysql_query($sql) OR die(mysql_error());

        
    // Anzahl Ausgeben
        
    $sql "SELECT
                    COUNT(*) as Anzahl
                FROM
                    Online"
    ;
        
    $result mysql_query($sql) OR die(mysql_error());
        
    $row mysql_fetch_assoc($result);

    //-------------------original stand drin---------------
    // -
    // echo "User Online: ".$row['Anzahl']."<br />";
    // -
    //---------------------------------------------------------

    //---mein edit ---

    $smarty = new Smarty
    $smarty->assign('useron'"User Online: ".$row['Anzahl']."<br />");
    $smarty->display('useronline.tpl');


    ?>
    Mit diesem teil am Ende der Datei lege ich fest das in einer neuen tpl Datei "useronline.tpl" das sript mit der Variable aufgerufen wird.

    PHP-Code:
    $smarty = new Smarty
    $smarty->assign('useron'"User Online: ".$row['Anzahl']."<br />");
    $smarty->display('useronline.tpl'); 

    Ich möchte nun gern eine Datei erstellen die ich mit Variablen fülle und diese dann später in den Templates aufrufen kann.


    Edit: Das nutzen einer solchen variablen Datei erleichtert das arbeiten sicher enorm. Und mann kann gleich schauen nicht das man nen doppelte variable nuzt.

    Man sieht hier das es sich im mainframe öffnet möchte aber gern das es dann mit einer {$variable} zb im footer zu sehen ist.

    Hier ein
    LINK
    zu meinem Script.


    Wie kann ich das realisieren?

    MfG Tom
    Zuletzt geändert von escape; 21.12.2005, 20:41.

  • #2
    Hallo

    Also das ganze ist ganz schön verwirrend, was du übehaupt fragen möchtest. Aber an Hand des Links komme ich dahinter, dass deine Variablen nicht erstzt werden. Das ist aber auch kein Problem.

    Sick dein Template durch eval() durch http://de.php.net/eval

    Kommentar


    • #3
      Sick dein Template durch eval() durch http://de.php.net/eval
      Wieso sollte man eval() nutzen wenn man Smarty im Einsatz hat?

      Nebenbei versteh ich nicht was du wirklich willst.

      Kommentar


      • #4
        Habe eine Lösung gefunden die nicht gerade elegant ist aber funktioniert.

        Das ist meine neue Index.php

        PHP-Code:
        <?php

        error_reporting
        (E_ALL);    

            
        define('SMARTY_DIR','./libs/');
            require 
        'libs/Smarty.class.php';
            include 
        'inc/db_con.php';
        //-------------Index TPL Neu anlegen--------------// 
            
        $smarty = new Smarty
        //------------------------------------------------// 

             
        //-------------User Online Skript START--------------// 
        $db_link mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS);

            
        $sql "SELECT
                        COUNT(*) as Anzahl
                    FROM
                        Online
                    WHERE
                        IP = '"
        .$_SERVER['REMOTE_ADDR']."'";
            
        $result mysql_query($sql) OR die(mysql_error());
            
        $row mysql_fetch_assoc($result);
            if(
        $row['Anzahl']) {
                
        // Nur Datum Updaten
                
        $sql "UPDATE
                            Online
                        SET
                            Datum = NOW()
                        WHERE
                            IP = '"
        .$_SERVER['REMOTE_ADDR']."'";
                
        mysql_query($sql) OR die(mysql_error());
            } else {
                
        // Neuer eintra
                
        $sql "INSERT INTO Online
                            (IP, Datum)
                        VALUES
                            ('"
        .$_SERVER['REMOTE_ADDR']."', NOW())";
                
        mysql_query($sql) OR die(mysql_error());
            }

            
        // alte Datensätze löschen
            
        $sql "DELETE FROM
                        Online
                    WHERE
                        DATE_SUB(NOW(), INTERVAL 1 MINUTE) > Datum"
        ;
            
        mysql_query($sql) OR die(mysql_error());

            
        // Anzahl Ausgeben
            
        $sql "SELECT
                        COUNT(*) as Anzahl
                    FROM
                        Online"
        ;
            
        $result mysql_query($sql) OR die(mysql_error());
            
        $row mysql_fetch_assoc($result);
            
        $smarty->assign('useron'"User Online: ".$row['Anzahl']."<br />");

        //-------------User Online Skript ENDE--------------//




        //-------------Index TPL AUSGABE--------------//
        $smarty->display('index.tpl');



        ?>
        Alles was in die Index als PHP code eingetragen wird und mit variablen versehen wird, stehen automatisch in der Header,Main oder Footer zur Verfügung.


        Aufbau einer Tpl Datei :
        PHP-Code:
        <link href="max3d.css" rel="stylesheet" type="text/css" />
        {include 
        file="header.tpl"}
        <
        table width="800" align="center" border="0" cellpadding="0" cellspacing="0">
          <
        tr>
            <
        td width="800" height="146" valign="middle" align="center" bgcolor="#FFCCCC" class="main">{$useron} </td>
          </
        tr>
        </
        table>
         {include 
        file="footer.tpl"

        Kommentar

        Lädt...
        X