Formular ausblenden angemeldet.

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

  • Formular ausblenden angemeldet.

    Hallo Community,

    ich suche eine Möglichkeit zu prüfen ob der User angemeldet ist (sessions) wenn das der Fall ist soll das anmelde Formular ausgeblendet werden. Nun kommt es noch etwas schlimmer das benötige ich für Smarty. Ich habe natürlich schon wie ein grossen gegoogelt finde aber nichts was mir brauchbar erscheint.

    Es würde auch gehen wenn User angemeldet ist, php erkennt das und sagt das das Anmeldeformular nicht aufgerufen werden darf und dafür z.B. ein anderes php Dokument einblendet. (Sie sind angemeldet)

    Ich bitte um Ratschläge und Hilfestellungen. Bin total Ratlos und weiss an diesem Punkt nichtmehr weiter.

    Herzlichen dank.

    MfG Thomas
    Zuletzt geändert von escape; 16.01.2007, 08:42.

  • #2
    Du kannst doch an Smarty bestimmte Werte uebergeben. Z.B.
    anmeldung = 1 und im Smarty machst du ne Abfrage

    Code:
    {if anmeldung = 1}
    (in Smarty setzt man doch alles in geschweifte Klammern, oder?)
    Damit erstellst du dann das Template und mit else eben das Template mit Anmeldung?
    Niveau sieht nur von unten aus wie Arroganz!

    Kommentar


    • #3
      Richtig! @ Geschweifte klammern.

      Nur ich muss zugeben ich bin Anfänger und weiss nicht wie ich es
      umsetzen soll. Ich muss ja schon in der PhpDatei abfragen ob die Session aktiv ist. Das einzigste was mir einfällt und was ich kenne ist.

      PHP-Code:

      if( session aktiv )) 
              {
                    
      header ("Location: ist_eigeloggt.php");EXIT;
              } 
      Wenn ich folgendes nutze und genau da happert es ich weiss nicht wie ich die Session in eine Variable verpacken kann.

      PHP-Code:
      {if $blabla == 1}login_formular_anzeige{/if} 
      MfG Thomas

      Kommentar


      • #4
        In der PHP-Datei schreibst du irgendwas like that:

        Code:
            $smarty = new Smarty;
        if($anmeldung/$session = gesetzet)
        
            $smarty->assign('Anmeldung','1');
        else
            $smarty->assign('Anmeldung','0');
        
        
            $smarty->display('deinetpl.tpl');
        Also ganz vereinfacht.

        Und im Smarty machst du die Abfrage mit den geschweiften Klammern?!

        Habe noch nie mit Smarty was gemacht, aber so muesste es gehen?
        Niveau sieht nur von unten aus wie Arroganz!

        Kommentar


        • #5
          Ich habe nun das hier zusammen geschustert allerdings lässt er mich entweder nur anmelden oder garkein Zutritt. Was mache ich denn falsch ? Einen Fehler sehe ich nicht in der IF/ ESLE Abfrage. Ich gehe davon aus das ich falsch mit der Session umgehe kann das sein ?


          PHP-Code:
          <?php
          error_reporting
          (E_ALL);
          require 
          'libs/Smarty.class.php';

          $ses '$_SESSION';



          if ( 
          $ses == 0){
              
          $smarty = new Smarty;
              
          $smarty->display('anmelden.tpl');
              }

          else {
              
          $smarty = new Smarty;
              
          $smarty->display('fehler.tpl');
              }


          ?>
          Ich habe ebend gelesen das ; in if Abfragen verboten sein sollen .
          Zuletzt geändert von escape; 16.01.2007, 11:05.

          Kommentar


          • #6
            In deinem php-Skript steht ganz oben auch folgendes, ja?

            Code:
            session_start();
            Niveau sieht nur von unten aus wie Arroganz!

            Kommentar


            • #7
              Nein.

              Ich habe eine Hauptseite dort kann mann sich umschauen um in mein Gästebuch zu schreiben "Lernzwecke" muss man angemeldet sein. Der User kann sich anmelden und die Daten werden aus der Sql geholt geprüft und danach ist er angemeldet oder auch nicht.

              Wenn der User angemeldet sein sollte soll PHP das erkennen und die Login Seite komplett sperren oder ausbleden.

              Bevor sich meine Login Seite öffnet müsste geprüft werden ist der User angemeldet ja o. nein ist true gehe zu fehler.php ist false gehe zu einloggen.php

              Bei mir ist es gerade der Fall das der User sich anmeldet und danach wieder auf Login klicken kann und sich wieder einloggen kann, das hat zwar keine Auswirkungen wirkt aber total bedäppert.


              Ich wälze schon meine Bücher hier heute gekommen


              Meine Login.php <---------

              PHP-Code:
              <?php
              ignore_user_abort
              (true);

              error_reporting(E_ALL);
              require 
              'libs/Smarty.class.php';
              include 
              'config/config.php';
              include 
              'checkuser.php';


                  
              // Datenbankverbindung aufbauen 
                  
              $connectionid mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS);
                      if (!
              mysql_select_db ("5e"$connectionid)) 
                      { 
                        die (
              "Keine Verbindung zur Datenbank"); 
                      } 

              IF (   
              strlen($_POST['username'] ) < 
                  
              OR strlen($_POST['password']) < )  { 
                    
              header ("Location: einloggen.php?fehler=1"); EXIT;
                   }
                   
              $sql "SELECT "
                  
              "userid, username "
                
              "FROM "
                  
              "5e_user "
                
              "WHERE "
                  
              "(username = '".$_REQUEST["username"]."') AND "
                  
              "(password = '".md5 ($_REQUEST["password"])."')"
              $result mysql_query ($sql); 

              if (
              mysql_num_rows ($result) > 0

                
              // Benutzerdaten in ein Array auslesen. 
                
              $data mysql_fetch_array ($result); 


                
              // Sessionvariablen erstellen und registrieren 
                
              $_SESSION["userid"] = $data["userid"]; 
                
              $_SESSION["username"] = $data["username"];


              $sql "UPDATE
                                5e_user
                       SET
                                online = NOW()
                        WHERE
                                userid = '"
              .$_SESSION['userid']."';
                      "
              ;
                  
              mysql_Query($sql) or die ( mysql_error() );

                
              header ("Location: index.php"); 

              else 

                
              header ("Location: einloggen.php?fehler=1"); 

              ?>

              Meine Checkuser.php <-----

              PHP-Code:
              <?php
              session_start 
              ();
              ignore_user_abort(true);
              if (!isset (
              $_SESSION["userid"]))
              {
              header ("Location: einloggen.php");
              }
              ?>

              Kommentar


              • #8
                Falls es jemanden interessieren sollte ; die Lösung:

                PHP-Code:
                <?php
                session_start 
                ();
                error_reporting(E_ALL);
                require 
                'libs/Smarty.class.php';


                if (!isset (
                $_SESSION["userid"]))
                {
                        
                $smarty = new Smarty;
                        
                $smarty->display('anmelden.tpl');
                        EXIT;
                }


                        
                $smarty = new Smarty;
                        
                $smarty->display('fehler.tpl');

                ?>
                MfG Thomas

                Kommentar

                Lädt...
                X