[Variablen] Smarty & PHP Varibalen wie werden sie gebettet ?

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

  • [Variablen] Smarty & PHP Varibalen wie werden sie gebettet ?

    Hallo, ich versuche seit 3 Tagen krampfhaft PHP in Verbindung mit Smarty zu lernen.

    Ich hänge an einem Problem fest und weiss überhaupt nicht mehr weiter, das verwirrt mich total.

    Ich habe ein Tutorial abgearbeitet Sessions

    Wenn ich das nun in Smarty einbauen möchte, stoße ich an meine Grenzen, denn ich weiss nicht wie ich die unten gezeigte Ausgabe in eine variable packe und diese dann in der TPL auslesen kann.

    Es handelt sich in dem Tutorial um dieses Stück PHP code

    intern.php

    PHP-Code:
    <?php 
    include ("checkuser.php"); 
    ?> 
    <html> 
    <head> 
      <title>Interne Seite</title> 
    </head> 
    <body> 
      BenutzerId: <?php echo $_SESSION["user_id"]; ?><br> 
      Nickname: <?php echo $_SESSION["user_nickname"]; ?><br> 
      Nachname: <?php echo $_SESSION["user_nachname"]; ?><br> 
      Vorname: <?php echo $_SESSION["user_vorname"]; ?> 
      <hr> 
      <a href="logout.php">Ausloggen</a> 
    </body> 
    </html>
    Einmal ist oben in der PHP Datei ein include darunter befindet sich die Ausgabe welche ja nun in einer *.tpl erscheinen soll und nicht in der PHP Datei. Mann müsste das doch irgendwie in eine variable verwandeln können und diese dann in der TPL {$sonstwas} wieder ausgeben können.

    Wenn Ihr noch Links zu Tutorials kennt die sich mit PHP/Smarty beschäftigen, würde ich mich über diese freuen.

    Ich danke für Hilfe

    MfG Tom
    Zuletzt geändert von escape; 19.12.2005, 20:35.

  • #2
    PHP-Code:
    <?php 
    include ("checkuser.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('seite.htm');
    ?>
    seite.htm
    Code:
    <html> 
    <head> 
      <title>Interne Seite</title> 
    </head> 
    <body> 
      BenutzerId: {$session.id}<br> 
      Nickname: {$session.nick}<br> 
      Nachname: {$session.nach}<br> 
      Vorname: {$session.vor} 
      <hr> 
      <a href="logout.php">Ausloggen</a> 
    </body> 
    </html>

    Kommentar


    • #3
      Herzlichen Dank es funktioniert wunderbar jedoch weiss ich nicht was dort passiert das hat mir eigentlichnicht weiter geholfen.

      Wo kann ich auf Deutsch nachlesen wie sowas umgesetzt wird was du gepostet hast ?

      Aber schon toll wenns auf einmal geht

      Kommentar


      • #4
        Also smarty basiert darauf, dass die HTML-Dateien separat irgendwo liegen.

        Mit $tpl = new smarty; initialisierst du die KLasse, das ist einfach nötig.

        Anschließend schreibe ich der einfachheit halber deine Session Angaben in ein Array, das ist übersichtlicher und kompakter.

        Danach musst du smarty die Variablen, in diesem Falle das Array übergeben. Die letzte Zeile, also $tpl->display(..) zeigt nur die gewünschte Seite an, in der du dann die vorher an smarty übergebenen Variablen verwenden kannst.

        Bei der $tpl->assign funktion habe ich das besagte Array unter dem Synonym "session" an smarty übergeben. Im HTML Code rufst du das mit {$session.xx} auf, wobei xx dem Element des Arrays entspricht, das du aufrufen willst. In diesem Falle id, nick, nach und vor.

        PS:

        Kommentar


        • #5
          $_SESSION ist eine sogenannt superglobale variable, d.h. sie ist überall in jeden teil des scriptes vorhanden. Smarty parsed alle superglobalen variablen und macht sie somit ohne irgendein assign() in jeder tpl datei verfügbar.

          kurz gesagt heißt das du setzt irgendwo deine $_SESSION['test'] = "test"; in deinem php script

          in deiner tpl datei kannst du dann daruf über
          {$smarty.session.test} zugreifen.

          funktionieren tut das auch mit allen anderen superglobalen variablen
          {$smarty.post.xxx}, {$smarty.get.xxx} etc.

          Kommentar


          • #6
            Danke für die Hilfe auch wenn ich das unten alle nicht so verstanden habe aber werde am Ball bleiben. Melde mich wenns bei mir EINEN Vortschritt geben sollte

            Kommentar


            • #7
              haste dir die doku von smarty mal durchgelesen? die gibts auch auf deutsch und beschreibt eigentlich auch für anfänger recht gut was man damit machen kann zumindest hab ich mir so mein schmächtiges basiswissen angeeignet

              Kommentar


              • #8
                Klar habe ich drin geblättert jedoch wenn man selbst kein PHP kennt hilft einem die Doku nicht weiter weil sie das Grundwissen im bereich PHP vorraussetzt.

                Aber ich versichere ich lese genug wie schon erwähnt ich lege alles dran es zu verstehn.

                MfG Tom

                Kommentar

                Lädt...
                X