Smarty index.php und variablen übergeben

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

  • Smarty index.php und variablen übergeben

    Hallo , vllt kann mir jemand weiterhelfen.

    PHP/Smarty

    Ich habe die index.php mit PHP code gefüttert das wird auch super doll ausgeführt im header footer oder in der index halt.

    Sobald ich aber eine andere Datei aufrufe zb meine intern.php fehlen die {$variablen} in meinen Seiten.

    Ergo wird mein PHP code in der index logischerweise nicht in die intern.php übertragen.

    Beispiel:

    Ich habe in der index.php ein PHP Skript geladen und die echo Ausgabe umgeschrieben in eine variable,..

    In der header.tpl schreibe ich nun rein {$zufallsbild}
    wenn ich nun die index.php aufrufe wird das Zufallsbild im header geladen.

    Sobald ich nun auf intern.php klicke bleibt die Spalte im header leer

    Hier meine Testseite "man sieht das in der index alles geladen wird , wenn man nun aber auf intern oder Test klickt werden die variablen nicht geladen.

    http://web1.vs240049.vserver.de/test/

    Wie kann man das umgehen ?
    ich bin gerade so ratlos

  • #2
    Erstmal muss ich sagen das dein HTML Quelltext grottenschlecht aussieht.

    Code:
    <link href="max3d.css" rel="stylesheet" type="text/css"/>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>MY PHP</title>
    <script type="text/javascript" language="JavaScript1.2" src="stmenu.js"></script>
    <link href="max3d.css" rel="stylesheet" type="text/css">
    <head>
    </head>
    So sieht keine HTML Seite aus
    Mittendrin dann noch sowas

    Code:
    </body>
    </html><table.......
    Zu deinem Problem würde ich sagen das du in deiner intern.php kein

    PHP-Code:
    $Smarty->assign("zufallsbild"$deinevariable); 
    machst..... Zeig uns doch mal den Quelltext der index.php und den der intern.php (nur die relevanten Teile)
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      Ich möchte andeuten das ich nun erst seit 3-4 Tagen ernsthaft mich mit php auseinander setze." Ergo totaler Anfänger"

      Das ist meine Index.php unten die dazugehörige index.tpl

      PHP-Code:
      <?php

      error_reporting
      (E_ALL);    
          require 
      'libs/Smarty.class.php';
          include 
      'inc/db_con.php';

          
      //-------------Index TPL Neu anlegen--------------// 
          
      $smarty = new Smarty
          
      $startzeit explode(" "microtime());
          
      $startzeit $startzeit[0]+$startzeit[1];
      //------------------------------------------------// 

           
      //-------------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--------------//

      //-------------User Zufallsbild Start--------------//
      $vn "./bilder";

      $verzeichnis opendir($vn);
      while(
      $file readdir($verzeichnis)) {
          
      $s = @getimagesize($vn."/".$file);
          if(
      in_array($s[2], array(1,2,3)))
              
      $auswahl[] = $file;
      }
      mt_srand((double)microtime()*1000000);
      $number mt_rand(0,count($auswahl)-1);

      $smarty->assign('zufallsbild'"<img src='".$vn."/".$auswahl[$number]."'>");
      //-------------User Online Skript ENDE--------------//


      //-------------Seite Ladezeiten Start--------------//
      $endzeit=explode(" "microtime());
      $endzeit=$endzeit[0]+$endzeit[1];


      $smarty->assign('ladezeit'"Seite in ".round($endzeit $startzeit,6)." Sekunden geladen");
      //-------------Seite Ladezeiten Ende--------------//




      //-------------Seite Update anzeigen Start--------------//
      $datum date("d.m.Y",filemtime(basename($PHP_SELF)));
      $uhr date("H:i",filemtime(basename($PHP_SELF)));


      $smarty->assign('timeupdate'"Letztes Update am ".$datum." um ".$uhr." Uhr");
      //-------------Seite Update anzeigen Ende--------------//





      //-------------Index TPL AUSGABE--------------//

      $smarty->display('index.tpl');



      ?>
      -STOP-
      HIER DIE DAZUGEHÖRIGE INDEX.TPL


      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" align="center" valign="middle" class="main">$mainframe</td>
        </
      tr>
      </
      table>
       {include 
      file="footer.tpl"


      Nun meine Intern.php

      PHP-Code:
      <?php
      include ("checkuser.php");
      require 
      'libs/Smarty.class.php';

      $tpl = new smarty;
      $sessAr['id'] = $_SESSION["user_id"];
      $sessAr['nick'] = $_SESSION["user_nickname"];
      $sessAr['nach'] = $_SESSION["user_nachname"];
      $sessAr['vor'] = $_SESSION["user_vorname"];

      $tpl->assign('session',$sessAr);
      $tpl->display('intern.tpl');

      ?>

      Was ist an dem HTML code schlecht ?
      Zuletzt geändert von escape; 22.12.2005, 10:43.

      Kommentar


      • #4
        $tpl->assign('session',$sessAr);

        Was anderes als {$session} kann die intern.php schon mal nicht anzeigen.

        Setz mal ein {debug} in deine Templatedatei (irgendwo) dann siehst du welche Variablen du in Smarty ausgeben kannst bzw welche du assigned hast.

        Und was deine HTML Code angeht...


        <html> <---- So fängts an (das is bei dir schon nicht der fall)

        NACH einem </html> Is schluss.. Da geht´s bei dir aber erst richtig los.
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          Super mir wurden die Augen geöffnet!!!

          Was noch etwas genialer ist

          Man kann wunderbar eine Skript addon Ordner anlegen und man staune es klappt.

          Ich habe einen Ordner angelegt Namens Addons dort habe ich ein Skript namens online.php reingelegt.

          In der online.php

          PHP-Code:
          <?php
          error_reporting
          (E_ALL);
              include 
          'inc/db_con.php';

          //-------------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);
              
              include (
          "online.php");
          ?>

          In der addons.php

          PHP-Code:

          <?php
          // Include aller Addons

          include ("addons/online.php"); // $tpl->assign('useron', "User Online: ".$row['Anzahl']."");


          ?>
          In der intern.php

          PHP-Code:
          <?php
          include ("checkuser.php");
          include (
          "addons.php");
          require 
          'libs/Smarty.class.php';

          $tpl = new smarty;
          $sessAr['id'] = $_SESSION["user_id"];
          $sessAr['nick'] = $_SESSION["user_nickname"];
          $sessAr['nach'] = $_SESSION["user_nachname"];
          $sessAr['vor'] = $_SESSION["user_vorname"];

          $tpl->assign('session',$sessAr);
          $tpl->assign('useron'"User Online: ".$row['Anzahl']."");
          $tpl->display('intern.tpl');

          ?>
          Ausgabe des Addons/Moduls "Online.php

          PHP-Code:
          <link href="max3d.css" rel="stylesheet" type="text/css" />

          {include 
          file="header.tpl" title=Adminarea}
          <
          table align="center" width="800" border="0" cellpadding="0" cellspacing="0">
            <!--
          DWLayoutTable-->
            <
          tr>
              <
          td width="171" height="19" align="left" valign="middle" class="main"><div align="center">BenutzerId: {$session.id}</div></td>
            <
          td width="629" rowspan="6" valign="top" class="main">{$useron}</td>
            </
          tr>
            <
          tr>
              <
          td height="19" align="left" valign="middle" class="main"Nickname: {$session.nick}</td>
            </
          tr>
            <
          tr>
              <
          td height="19" valign="middle"class="main"Nachname: {$session.nach}</td>
            </
          tr>
            <
          tr>
              <
          td height="19" valign="middle"class="main"Vorname: {$session.vor}</td>
            </
          tr>
            <
          tr>
              <
          td height="130" valign="top" class="main"><a href="test.php">test</a></td>
            </
          tr>
            <
          tr>
              <
          td height="18" align="center" valign="middle" class="main"><a href="logout.php">Logout</a></td>
            </
          tr>
          </
          table>
          {include 
          file="footer.tpl"
          Nun stelle ich mir die Frage ob das normal ist "das das so simple funzt" ??? Oder ist das nur ein dummerzufall das es so geht ?
          Zuletzt geändert von escape; 22.12.2005, 11:32.

          Kommentar


          • #6
            Das was du da machst ist ein wenig umständlich

            In Smarty kannst du auf die Globalen Variablen viel einfach zugreifen.

            PHP-Code:

            Session
            :
            {
            $smarty.session.deinFeld}

            Get:
            {
            $smarty.get.deinGetParam}

            Post:
            {
            $smarty.post.deinPostParam
            Damit sparst du dir das ganze übergeben.




            Nachzulesen ist das ganze hier:

            http://smarty.php.net/manual/en/lang...ty.request.php

            Kommentar


            • #7
              Ja das habe ich gelesen.

              Jedoch bezieht sich das nur auf die Smarty internen (Globalen) Funktionen ?

              Wie zb:
              PHP-Code:
               {$smarty.version
              die ist Global und wurde irgendwo in Smarty festgelegt. Sie lässt ssich einfach in jeder TPL aufrufen

              Meine Variablen muss ich aber so
              in der jeweiligen PHP Datei aufrufen zb:

              PHP-Code:
              $smarty->assign('zufallsbild'"<img src='".$vn."/".$auswahl[$number]."'>"); 
              Augabe in der Tpl dann mit :

              PHP-Code:
              {$zufallsbild
              Nur wie bekommt man eine Variable Global so das sie wie
              PHP-Code:
              {$smarty.version
              aufrufbar wird

              Kommentar


              • #8
                Mein Post bezog sich auf das geschwurschtel rund um die Personalisierung(Name, Vorname, etc.) was du da gemacht hast.

                Dann kannst du dir sowas hier:

                PHP-Code:

                $sessAr
                ['id'] = $_SESSION["user_id"];
                $sessAr['nick'] = $_SESSION["user_nickname"];
                $sessAr['nach'] = $_SESSION["user_nachname"];
                $sessAr['vor'] = $_SESSION["user_vorname"]; 
                schenken.

                Kommentar


                • #9
                  Achso ja sorry

                  Kommentar


                  • #10
                    Original geschrieben von escape

                    Augabe in der Tpl dann mit :

                    PHP-Code:
                    {$zufallsbild
                    Nur wie bekommt man eine Variable Global so das sie wie
                    PHP-Code:
                    {$smarty.version
                    aufrufbar wird
                    Für was brauchst du das bzw. wofür sollte das gut sein ?

                    Gruß

                    Le Cheffe

                    Kommentar

                    Lädt...
                    X