kann mich in mein cms nicht einloggen

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

  • kann mich in mein cms nicht einloggen

    hallo allerseits
    ich bin neu hier und auch neu in php
    um anzufangen habe ich ein fertiges kleines CMS (aus dem Buch Webseiten gestalten und programmieren von Mark Lubkowitz) genommen und angefangen es für mich umzubasteln.
    Das hat auch ganz gut geklappt.
    Jetzt stehe ich vor folgendem Problem:
    Wenn ich mich verscuhe in den Adminbereich meines CMS einzuloggen, passiert gar nichts. Wenn ich aber gleichzeitig das MiniCMS von M.L. starte und mich dort einlogge, bin ich automatisch auch in meinem eigenen cms eingelogged.

    Kann mir jemand sagen wo mein Fehler liegen könnte oder auch, welche Codeteile ich posten muss, damit man von außen etwas dazu sagen kann?

    thanx a lot im voraus,
    toby

  • #2
    Re: kann mich in mein cms nicht einloggen

    Original geschrieben von tobydom
    Kann mir jemand sagen wo mein Fehler liegen könnte oder auch, welche Codeteile ich posten muss, damit man von außen etwas dazu sagen kann?
    Die relevanten
    • das Loginformular für das CMS
    • die Datei, die das Loginformular für das CMS verarbeitet (steht im action-Attribut des Formulars)
      aber bitte den Teil, der die Daten prüft, ist ja hoffentlich kommentiert/im Buch beschrieben
    • die beiden Punkte analog für das miniCMS
    • den Teil der beim CMS prüft, ob du eingeloggt bist (anhand Kommentare/Beschreibung im Buch)
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ok. Dann will ichs mal versuchen.
      Also:


      EDIT:
      ....
      ich hab hier mal alles rausgelöscht. das war ja ne zumutung.... ;-)
      toby
      ....




      So. Das wars glaube ich.
      Ich hoffe, ihr könnt was damit anfangen.
      gruß,
      toby
      Zuletzt geändert von tobydom; 01.12.2005, 16:08.

      Kommentar


      • #4
        Hoppala.
        was hab ich denn jetzt schon wieder verbockt?
        ich hoffe man kann mit dieser einzeiligen anzeige was anfangen.
        wenn nicht muss ich das wohl nochmal versuchen zu ändern. Ich hab hier einfach auf PHP geklickt und meinen code per paste ins aufpoppende fenster eingefügt. und jetzt das....

        Kommentar


        • #5
          änder das mal lieber, so kann das kein mensch lesen

          Kommentar


          • #6
            Ich glaub ich habs grad rausgefunden. (warum mein php-code keine zeilenumbrüche hatte, nicht warum mein login nicht funzt) also, auf ein neues:

            das Loginformular für das CMS
            login.inc.php:
            PHP-Code:
            <?php

              
            /* Session initialisieren */
              
            session_start();

              
            /* Überprüft, ob ein Login erfolgt ist */
              
            function is_logged_in()
              {
                global 
            $base;

                
            /* User angemeldet? */
                
            if($_SESSION['authenticated'] == true)
                {
                  return 
            true;
                }
                
            /* Login ausgeben */
                
            else
                {
                  
            $content '<h1>Login</h1>';
                  
            $content .= '<form action="login.php" method="post">';
                  
            $content .= '<table border="0" cellpadding="2" cellspacing="0">';
                  
            $content .= '<tr>';
                  
            $content .= '<td>Benutzername:</td><td><input type="text" 
            name="username" size="32" maxlength="64"></td>'
            ;
                  
            $content .= '</tr><tr>';
                  
            $content .= '<td>Passwort:</td><td><input type="password" 
            name="password" size="32"></td>'
            ;
                  
            $content .= '</tr><tr>';
                  
            $content .= '<td></td><td><input type="submit" value="Login"></td>';
                  
            $content .= '</tr>';
                  
            $content .= '</table>';
                  
            $content .= '</form>';

                  
            $template get_file_as_string($base['adm_template']);
                  
            $template str_replace($base['tag_start'].'title'.
            $base['tag_end'],$base['adm_title'],$template);
                  
            $template str_replace($base['tag_start'].'naview'.
            $base['tag_end'],'&nbsp;',$template);
                  
            $template str_replace($base['tag_start'].'navigation'.
            $base['tag_end'],'&nbsp;',$template);
                  
            $template str_replace($base['tag_start'].'content'.
            $base['tag_end'],$content,$template);
                  
            $template str_replace('$PHP_SELF',$PHP_SELF,$template);
                  echo 
            stripslashes($template);
                  return 
            false;
                }
              }

            ?>
            die Datei, die das Loginformular für das CMS verarbeitet
            login.php:
            PHP-Code:
            <?php

              
            /* Session initialisieren */
              
            session_start();

              
            /* übergebene Variablen auslesen */
              
            $username $_POST['username'] ? 
            $_POST['username'] : false;
              
            $password $_POST['password'] ? 
            $_POST['password'] : false;

              if(
            $username && $password)
              {
                
            /* verschlüsseltes Passwort erzeugen */
                
            $encrypted md5($username,$password);

                include(
            '../inc/database.inc.php');
                
            $connection mysql_connect($db['host'],$db['uid'],$db['pwd']);
                if(
            $connection)
                {
                  if(
            mysql_select_db($db['db']))
                  {
                    
            $sql "SELECT id FROM user WHERE (username = '$username') 
            AND (password = '
            $encrypted') AND (active = 'true')";
                    
            $result mysql_query($sql);
                    if(
            $result && (@mysql_num_rows($result) > 0))
                    {
                      
            $row mysql_fetch_row($result);
                      
            $_SESSION['authenticated'] = true;
                      
            $_SESSION['user_id'] = $row[0];
                      
            $_SESSION['username'] = $username;
                    }
                    else
                    {
                      
            $_SESSION['authenticated'] = false;
                    }
                  }
                }
              }

              
            /* Umleitung */
              
            header('Location: index.php');

            ?>
            die beiden Punkte analog für das miniCMS
            login.inc.php:
            PHP-Code:
            <?php

              
            /* Session initialisieren */
              
            session_start();

              
            /* Überprüft, ob ein Login erfolgt ist */
              
            function is_logged_in()
              {
                global 
            $base;

                
            /* User angemeldet? */
                
            if($_SESSION['authenticated'] == true)
                {
                  return 
            true;
                }
                
            /* Login ausgeben */
                
            else
                {
                  
            $content '<h4>Login</h4>';
                  
            $content .= '<form action="login.php" method="post">';
                  
            $content .= '<table border="0" cellpadding="2" cellspacing="0">';
                  
            $content .= '<tr>';
                  
            $content .= '<td>Benutzername:</td><td><input 
            type="text" name="username" size="32" 
            maxlength="64"></td>'
            ;
                  
            $content .= '</tr><tr>';
                  
            $content .= '<td>Passwort:</td><td><input type="password" 
            name="password" size="32"></td>'
            ;
                  
            $content .= '</tr><tr>';
                  
            $content .= '<td></td><td><input type="submit" value="Login"></td>';
                  
            $content .= '</tr>';
                  
            $content .= '</table>';
                  
            $content .= '</form>';

                  
            $template get_file_as_string($base['adm_template']);
                  
            $template str_replace($base['tag_start'].'title'.
            $base['tag_end'],$base['adm_title'],$template);
                  
            $template str_replace($base['tag_start'].'shortnav'.
            $base['tag_end'],'&nbsp;',$template);
                  
            $template str_replace($base['tag_start'].'navigation'.
            $base['tag_end'],'&nbsp;',$template);
                  
            $template str_replace($base['tag_start'].'content'.
            $base['tag_end'],$content,$template);
                  
            $template str_replace('$PHP_SELF',$PHP_SELF,$template);
                  echo 
            stripslashes($template);
                  return 
            false;
                }
              }

            ?>
            login.php:
            PHP-Code:
            <?php

              
            /* Session initialisieren */
              
            session_start();

              
            /* übergebene Variablen auslesen */
              
            $username $_POST['username'] ? $_POST['username'] : false;
              
            $password $_POST['password'] ? $_POST['password'] : false;

              if(
            $username && $password)
              {
                
            /* verschlüsseltes Passwort erzeugen */
                
            $encrypted md5($username,$password);

                include(
            '../inc/database.inc.php');
                
            $connection mysql_connect($db['host'],$db['uid'],$db['pwd']);
                if(
            $connection)
                {
                  if(
            mysql_select_db($db['db']))
                  {
                    
            $sql "SELECT id FROM user WHERE (username = '$username') 
            AND (password = '
            $encrypted') AND (active = 'true')";
                    
            $result mysql_query($sql);
                    if(
            $result && (@mysql_num_rows($result) > 0))
                    {
                      
            $row mysql_fetch_row($result);
                      
            $_SESSION['authenticated'] = true;
                      
            $_SESSION['user_id'] = $row[0];
                      
            $_SESSION['username'] = $username;
                    }
                    else
                    {
                      
            $_SESSION['authenticated'] = false;
                    }
                  }
                }
              }

              
            /* Umleitung */
              
            header('Location: index.php');

            ?>
            den Teil der beim CMS prüft, ob du eingeloggt bist
            index.php (admin):
            PHP-Code:
            <?php

              
            /* Konfigurationsdateien laden */
              
            include('../inc/base.inc.php');
              include(
            '../inc/adminfunctions.inc.php');
              include(
            '../inc/login.inc.php');

              
            /* Überprüfen ob Login erfolgt ist, ggf. Anmeldemöglichkeit bieten */
              
            if(is_logged_in())
              {
                
            /* übergebene Variablen auslesen */
                
            $cmd $_GET['cmd'];
                
            $id $_GET['id'];

                
            /* Template einlesen  */
                
            $template get_file_as_string($base['adm_template']);

                
            /* Inhalt laden */
                
            switch(strtolower($cmd))
                {
                  default:
                  case 
            'aktuell':
                    
            $base['adm_content'] = '<p>'.$base['adm_naview'].'
            <i>Admin / Home / Aktuelles</i></p>'
            ;
                    
            $base['adm_content'] .= load_admin_aktuell();
                    break;
                  case 
            'aktuelledit':
                    
            $base['adm_content'] = '<p>'.$base['adm_naview'].'
            <i>Admin / Home / Aktuelles bearbeiten</i></p>'
            ;
                    
            $base['adm_content'] .= load_admin_aktuelledit($id);
                  break;
                  case 
            'aktuelladd':
                    
            $base['adm_content'] = '<p>'.$base['adm_naview'].'
            <i>Admin / Home / Aktuelles erstellen</i></p>'
            ;
                    
            $base['adm_content'] .= load_admin_aktuelladd($id);
                  break;
                  case 
            'aktuelldel':
                    
            $base['adm_content'] = '<p>'.$base['adm_naview'].'
            <i>Admin / Home / Aktuelles löschen</i></p>'
            ;
                    
            $base['adm_content'] .= load_admin_aktuelldel($id);
                  break;
                }

                
            /* Platzhalter ersetzen */
                
            $template str_replace($base['tag_start'].'title'.$base['tag_end'],
            $base['adm_title'],$template);
                
            $template str_replace($base['tag_start'].'navigation'.$base['tag_end'],
            $base['adm_navigation'],$template);
                
            $template str_replace($base['tag_start'].'naview'.$base['tag_end'],
            $base['adm_naview'],$template);
                
            $template str_replace($base['tag_start'].'content'.$base['tag_end'],
            $base['adm_content'],$template);
                
            $template str_replace('$PHP_SELF',$PHP_SELF,$template);

                
            /* Template ausgeben */
                
            echo stripslashes($template);
              }

            ?>
            So. Das wars glaube ich.
            Ich hoffe, ihr könnt was damit anfangen.
            gruß,
            toby

            PS Habs nochmal editiert und auf nem 15" bei 800x600 getestet. Ich hoffe ihr könnt es jetzt lesen.
            gruß, toby
            Zuletzt geändert von tobydom; 02.12.2005, 15:35.

            Kommentar


            • #7
              HELP
              please....
              ich weiß nich weiter.....

              Kommentar


              • #8
                Dein Code ist immer noch zu breit, besonders bei den Select-Abfragen und den $content .= Stellen.
                Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                Kommentar


                • #9
                  hab's editiert.
                  toby

                  Kommentar

                  Lädt...
                  X