PHP-Datenbank mit Templates

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

  • PHP-Datenbank mit Templates

    Hallo,

    ich arbeite seit ein Paar Monaten an einer Fachhändlerdatenbank. Diese kann über die Funktion VIEW alle Adressen oder mit der Option PLZ nur Adressen aus einem bestimmten Postleitzahlen-Bereich auswerfen.

    Desweiteren kann über die Funktion ADMIN ein neuer Fachhändler angelegt und über die Funktion EDIT ein vorhandener Fachhändler editiert werden. Die einzelnen funktionen werden über den Befehl SWITCH ( $ACTION ) angesprochen und werden im Browser über http://.../database.php?action=view?plz=12345 aufgerufen.

    Diese Datenbank möchte ich jetzt erweitern:

    1. Hinzufügen einer Funktion zum Löschen von Fachhändler
    2. LOGIN zwischenspeichern
    3. Template mit Adminmenü einbauen
    4. Benutzerabhängige Menüerweiterungen

    Leider fehlt mir noch das nötige Wissen, um einige der Funktionen umzusetzen. Ich bekomme es z.B. nicht hin, dass meine Benutzerdaten nach dem Login zwischengespeichert werden. Wie kann ich das effektiv regeln, so dass die Daten bis zum LOGOUT gespeichert werden?

    Wie bekomme ich die Datenausgabe so hin, dass ich für die Datenausgabe ein Template und für die Administration ein anderes Template mit einem Adminmenü im Kopf der Page angezeigt bekomme?

    Ich bin für jede Hilfe dankbar.

    MfG, Chriss

  • #2
    Um mit Templates zu arbeiten schau mal hier vorbei: http://smarty.php.net/
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      Hallo Günni,

      danke für den Link. ich werde mir das Smarty mal genauer anschauen, obwohl ich eigentlich gehofft hatte, dass sich sowas auch direkt mit PHP realisieren lassen würde.

      Wie muss ich das mit den LOGINS realisieren? Jetzt habe ich noch einne zusätzliches Problem. Zum Testen von Smarty habe ich mir die Datenbank auf den lokalen Test-Webserver gelegt. Nun habe ich aber das Problem, dass er mir bei Aufrufen folgendes auswirft: "Notice: Undefined variable: action in c:\programme\easyphp1-7\www\map\index.php on line 19".

      Kann das evtl. an den unterscheidlichen Versionen liegen? Bei meinem Provider habe ich PHP 4.1.2 und MySQL 3.22.23 zur Verfügung, aber lokal verwende ich PHP 4.3.3 und MySQL 4.23.49.

      Das Script beginne ich mit den folgenden Zeilen:

      PHP-Code:

      include('inc/connect.inc.php');

      switch( 
      $action 
      {        

           case 
      "view":
             
      $abfrageauswahl 1;
             
      view($abfrageauswahl,$plz);
           break;
           
           case 
      "admin":
             
      $modul 1;
             
      login($modul);
           break;

           default:
             
      $abfrageauswahl 2;
             
      $plz "";
             
      view($abfrageauswahl,$plz);
           break;


      Kommentar


      • #4
        Original geschrieben von Tomcat Chriss
        danke für den Link. ich werde mir das Smarty mal genauer anschauen, obwohl ich eigentlich gehofft hatte, dass sich sowas auch direkt mit PHP realisieren lassen würde.
        smarty ist auch in php geschrieben..


        Original geschrieben von Tomcat Chriss
        Nun habe ich aber das Problem, dass er mir bei Aufrufen folgendes auswirft: "Notice: Undefined variable: action in c:\programme\easyphp1-7\www\map\index.php on line 19".
        du hast unsauber programmiert.

        du musst $action als $_GET['action'] verwenden. ausserdem solltest du vorher noch mit isset() oder empty() prüfen, ob sie vorhanden ist.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hallo Abraxax,

          ich habe gerade im PHP-Handbuch nach $_GET gesucht unf bin leider nicht fündig geworden. Wie wird dieser Befehl und die beiden anderen Befehle isset() und empty() mit meiner SWITCH-Funktion eingesetzt?

          Muss ich für jeden Variable, die über die Browserzeile abgefragt werden kann wie z.B. in diesem Fall ACTION und PLZ vor die SWITCH-Funktion ein $_GET einbinden, wie z.B.:

          $_GET['action'];
          $_GET['plz'];

          SWITCH ( $ACTION )
          {

          ...

          }

          Ich denke, mit den beiden anderen Befehlen wird überprüft, ob die Variablen mit einem Wert gefüllt sind, aber wie setze ich die ein?

          Wäre schön, wenn Du oder jemand anderes mir hierbei helfen könnte.

          Danke, Chriss

          Kommentar


          • #6
            Original geschrieben von Tomcat Chriss
            ich habe gerade im PHP-Handbuch nach $_GET gesucht unf bin leider nicht fündig geworden. [...]
            dann hast du ein altes buch ...

            http://de.php.net/manual/de/language...predefined.php



            PHP-Code:
            include('inc/connect.inc.php');

            if (isset(
            $_GET['action']))
            {
                switch( 
            $_GET['action'] ) 
                {        
                    case 
            "view":
                        
            $abfrageauswahl 1;
                        
            view($abfrageauswahl,$plz);
                        break;
                 
                    case 
            "admin":
                        
            $modul 1;
                        
            login($modul);
                        break;

                    default:
                        
            $abfrageauswahl 2;
                        
            $plz "";
                        
            view($abfrageauswahl,$plz);
                        break;
                }

            ähnlich musst du dann auch mit deinen anderen vars umgehen.

            isset() und empty() findest du auch im manual.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Hallo Abraxax,

              danke das ht funktioniert. Mit dem Handbuch ist das so eine Sache. Ich habe bevor ich gepostet habe die CHS-Version von dem Handbuch heruntergeladen und da bin ich nicht fündig geworden.

              Kann ich noch irgendwie festlegen, dass wenn man die germanmap.php ohne irgendwas aufruft, z.B. http://.../germanmap.php, dass dann standardmäßig immer action=view aufgerufen wird?

              Wenn man action= aufruft, dann gibt es über die SWITCH-Funktion ja einen DEFAULT-Wert. Gibt es sowas auch, wenn ISSET nicht gesetzt wurde?

              Ist das evtl. sowas wie
              PHP-Code:
              if (!isset($_GET['action'])) 
              ?

              Kommentar


              • #8
                mache einen else-zweig beim if....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Oh ja, hätte ich eigentlich gleich drauf kommen können. Danke nochmal. Kannst Du mir vielleicht noch bei dem LOGIN/LOGOUT helfen. Ich weiß mittlerweile, dass ich dafür mit den SESSION-Befehlen arbeiten muss, aber ich weiß nicht, wie ich diese wann genau einsetze.

                  Gibt es evtl. noch was alternatives zu SESSION?

                  Kommentar


                  • #10
                    Über Loginscript steht einiges in den Tutorials... Einfach mal schauen
                    _____________
                    Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                    [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                    Kommentar


                    • #11
                      Hallo,

                      ich komme mit den Sessions einfach nicht klar. ich habe mir die Tutorials zu diesem Thema reingezogen, das PHP-Manual danach durchforstet und auf anderen Seiten nach fertigen Lösungen gesucht. Ich verstehe einfach nicht, wie ich vorgehen muss.

                      Ich möchte, dass wenn ich mit meinem Script germanmap.php?action=admin aufrufe und auf dem Rechner bereits ein Cookie hierfür existiert, gleich das Adminmenü aufgerufen wird und wenn diese nicht existiert, der Login-Screen kommt.

                      Was ich mittlerweile weiß, ist dass mit SESSION_START() eine neue Session gestartet wird, aber wie wird jetzt daraus ein Cookie erstellt, in dem beispielsweise die User-ID und/oder der Username steht.

                      Mit SESSION_DESTROY() wird dann wohl nach dem Beenden durch klicken auf Logout die Session beendet. Ich komme aber einfach nicht dahinter, wie das praktisch aussehen kann.

                      Hat nicht jemand evtl. ein praktisches, kleines Beispiel, das genau dass realisiert?

                      Kommentar


                      • #12
                        Hast Du wohl nicht wirklich gut gelesen...

                        Also hier mal wie sessions in etwa funktionieren aufgerufen werden...

                        PHP-Code:
                         <? 
                        session_start();
                        $username = "Seccho";
                        $passwort = "c7329";
                        session_register('username');
                        session_register('passwort');
                        $_SESSION["username"] = $username;
                        $_SESSION["passwort"] = $passwort;

                        // print_r($_SESSION);  Session Inhalte ausgeben

                        if(($_SESSION["username"] != "Sseccho") || ($_SESSION["passwort"] != "c7329")){
                        header("Location:http://localhost/login.php");}
                        else { echo "hier wäre der adminbereich"; }
                        ?>
                        http://www.dclp-faq.de/search.php?l=20&q=session

                        Zuletzt geändert von Seccho; 30.11.2003, 20:17.
                        _____________
                        Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                        [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                        Kommentar


                        • #13
                          das kannst du ganz schnell wieder vergessen.

                          PHP-Code:
                          session_register('username');
                          session_register('passwort'); 
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Ich habe jetzt mal angefangen, mein Script umzubasteln und habe da die SESSION-Funktionen eingebaut, weiß aber noch immer nicht, ob das so korrekt ist.

                            Es wäre schön, wenn ihr mal einen Blick auf den Anfang meines Scriptes werfen könntet und dieses gegebenenfalls korrigieren könntet:

                            PHP-Code:
                            <?php

                            include('inc/connect.inc.php');

                            if (isset(
                            $_GET['action']))
                            {
                                switch( 
                            $_GET['action'] ) 
                                {        
                                    case 
                            "view":
                                        if (isset(
                            $_GET['plz']))
                                        {
                                            
                            view($plz);
                                        }
                                        else
                                        {
                                            
                            view();
                                        }
                                       break;
                                 
                                       case 
                            "login":
                                           
                            login();
                                       break;
                                       
                                       case 
                            "checklogin":
                                           if (isset(
                            $_GET['username']))
                                           {
                                               if (isset(
                            $_GET['password']))
                                               {
                                                   
                            checklogin($username,$password);
                                               }
                                               else
                                               {
                                                   echo 
                            "Fehler bei der Anmeldung!";
                                                   
                            login();
                                               }
                                           }
                                           else
                                           {
                                               echo 
                            "Fehler bei der Anmeldung!";
                                               
                            login();
                                           }
                                       break;

                                       default:
                                           
                            view();
                                       break;
                                   }
                            }
                            else
                            {
                                
                            view();
                            }
                                
                            function 
                            view($plz)
                            {
                            }

                            function 
                            login()
                            {
                                if(
                            session_is_registered()) 
                                {
                                    
                            admin();
                                }
                                else 
                                {
                                    echo 
                            "<form method=POST action=index.php>";
                                    echo 
                            "<input type=hidden name=action value=checklogin>";
                                    echo 
                            "<p><font face=Arial size=2>Bitte geben Sie ihren Benutzernamen und Kennwort ein:</font></p>";
                                    echo 
                            "<table border=0 width=400 cellspacing=0 cellpadding=5>";
                                    echo 
                            "<tr>";
                                    echo 
                            "<td><b><font face=Arial size=2>Benutzername </font></b></td>";
                                    echo 
                            "<td><font face=Arial><input type=text name=username size=20></font></td>";
                                    echo 
                            "</tr>";
                                    echo 
                            "<tr>";
                                    echo 
                            "<td><b><font face=Arial size=2>Kennwort </font></b></td>";
                                    echo 
                            "<td><font face=Arial><input type=password name=password size=20></font></td>";
                                    echo 
                            "</tr>";
                                    echo 
                            "</table>";
                                    echo 
                            "<p><input type=submit value=Absenden name=submit>";
                                    echo 
                            "<input type=reset value=Zurücksetzen name=reset></p>";
                                    echo 
                            "</form>";
                                }
                            }

                            function 
                            checklogin($username,$password)
                            {
                                
                            $password MD5($password);
                                
                                
                            $abfrageuserdaten = @mysql_query("SELECT * FROM admin WHERE username = '$username' AND password = '$password';") or die("Konnte den SELECT-Befehl nicht ausführen!");
                                       
                            $reihen mysql_num_rows($abfrageuserdaten);
                                    if (
                            $reihen <= 0) {
                                        echo 
                            "<font face=Verdana color=red size=2>Falsche Benuterdaten!</font><br><br>";
                                        
                            login();
                                    }
                                    else {
                                        
                            session_register('username');
                                        
                            session_register('passwort');
                                        
                            admin();
                                    }
                            }
                            Danke, Chriss

                            Kommentar

                            Lädt...
                            X