• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kein Admin Bereich sind angezeigt

Status
Für weitere Antworten geschlossen.

FleyerShaver

Neues Mitglied
Bei mir wird kein Adminbereich angezeigt . Wenn ich in der admin.php irgentwas bei passwort eingebe igal ob falsch oder richtig öffnet er die index.php?section=admin Datei aber zeigt nur die die index Datei an.
Die admin.php Datei
PHP:
<?php
    include "inc/config.php";
 @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
   mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
 if(isset($_GET['action']) AND ("logout" == $_GET['action'])) {
        session_destroy();
        echo "<p>\n";
        echo "    Sie haben sich ausgeloggt. Um wieder in den Adminbereich\n";
        echo "    zu kommen müssen sie sich wieder Einloggen\n";
        echo "</p>\n";
    } else {
        if(isset($_POST['UserID']) AND '0' == $_POST['UserID']) {
            echo "<p>\n";
            echo "    Bitte wählen sie einen Benutzernamen aus.\n";
            echo "</p>\n";
        } else {
            if(isset($_POST['UserID'], $_POST['Password']) AND
               login_right(addslashes($_POST['UserID']),
                           addslashes($_POST['Password']))) {
                $_SESSION['ID'] = $_POST['UserID'];
            }
            if(isset($_SESSION['ID'])) {
                echo "<p>\n";
                echo "    Willkommen im Adminbereich <br />\n";
                echo "    <a href=\"index.php?section=admin&amp;".SID."\">Repeat</a>\n";
                echo "    <a href=\"index.php?section=admin&amp;action=logout&amp;".SID."\">Ausloggen</a>\n";
                echo "</p>\n";
            } else {
                if(isset($_POST['submit'])) {
                     // Der Submit-Button wurde gedrückt
                     // aber der Login ist falsch. Deshalb
                     // erstellen wir eine Fehlermeldung
                     echo "<p class=\"error\">\n";
                     echo "    Ungültiges Password.\n";
                     echo "</p>\n";
                }
                echo "<form action=\"index.php?section=admin\" method=\"post\" class=\"admin_form\">\n";
                echo "    <table>\n";
                echo "        <tr>\n";
                echo "            <th colspan=\"2\">\n";
                echo "                <h2>Adminbereich</h2>\n";
                echo "            </th>\n";
                echo "        </tr>\n";
                echo "        <tr>\n";
                echo "            <td>\n";
                echo "                <label for=\"name\">Name:</label>\n";
                echo "            </td>\n";
                echo "            <td>\n";
                $sql = "SELECT
                            `ID`,
                            `Name`
                        FROM
                            `users`
                        ORDER BY
                            `Name` ASC;";
                $result = mysql_query($sql) OR die(mysql_error());
                echo "                <select size=\"1\" name=\"UserID\" id=\"name\">\n";
                echo "                    <option value=\"0\" selected=\"selected\">Bitte wählen</option>\n";
                while($row = mysql_fetch_assoc($result)) {
                    echo "<option value=\"".$row['ID']."\">".$row['Name']."</option>\n";
                }
                echo "                </select>\n";
                echo "            </td>\n";
                echo "        </tr>\n";
                echo "        <tr>\n";
                echo "            <td>\n";
                echo "                <label for=\"password\">Password:</label>\n";
                echo "            </td>\n";
                echo "            <td>\n";
                echo "                <input type=\"password\" name=\"Password\" id=\"password\"/>\n";
                echo "            </td>\n";
                echo "        </tr>\n";
                echo "        <tr>\n";
                echo "            <td colspan=\"2\">\n";
                echo "                <input type=\"submit\" name=\"submit\" value=\"Abschicken\" />\n";
                echo "                <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                echo "            </td>\n";
                echo "        </tr>\n";
                echo "    </table>\n";
                echo "</form>\n";
            }
        }
    }
?>
Die index.php Datei
PHP:
<?php
   error_reporting(E_ALL);
   include "inc/config.php";
   
   @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
   mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
   // Session starten wenn ?section=admin geöffnet wurde
   if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
       session_start();
       if(!isset($_SESSION['IP'])) {
           $_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
       }
       if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
           echo "<p>\n";
           echo "    Sie dürfen nicht die Session von einem\n";
           echo "    anderen user Benutzten. Bitte benutzen sie\n";
           echo "    folgenden Link um zur Homepage zu gelangen.\n";
           echo "    <a href=\"/\">Zurück zur Homepage</a>\n";
           echo "</p>\n";
           die(); // Aus Sicherheitsgründen die Abarbeitung sofort beenden
       }
   }
   if(get_magic_quotes_gpc()) {
       array_stripslashes($_GET);
       array_stripslashes($_POST);
       array_stripslashes($_COOKIE);
   }
   echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
   echo "         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
   echo "<html>\n";
   echo "    <head>\n";
   echo "        <title>Meine Seite</title>\n";
   echo "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
   echo "        <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
   echo "    </head>\n";
   echo "    <body>\n";
   echo "        <table style=\"width: 100%\">\n";
   echo "            <tr>\n";
   echo "                <td id=\"banner\" >\n";
   include "banner.php";
   echo "                </td>\n";
   echo "            </tr>\n";
   echo "            <tr>\n";
   echo "                <td id=\"menu\" >\n";
   include "menu.php";
   echo "                </td>\n";
   echo "                <td id=\"inhalt\" >\n";
   include "inhalt.php";
   echo "                </td>\n";
   echo "            </tr>\n";
   echo "        </table>\n";
   echo "    </body>\n";
   echo "</html>\n";
?>
Wenn ihr noch mehr Datei braucht dann sagt es dann poste ich die auch noch.
 
FleyerShaver schrieb:
das zeigt keine fehler.
Das ist das error_reporting. Ich meine debugging.

Versuch doch mal Testausgaben in den Quelltext einzubauen und herauszufinden, an welcher Stelle es hakt.
Ich werde den Code sicherlich nicht durchgehen ohne zu wissen, nach was ich suchen soll.
 
Wie mjacht man das debuggen. sry aber ich lern noch nicht lange php.
Edit: Es muss am Anfang liegen das ende der Datei funkzioniert.
Edit: Ich habe jetzt gedebugt. Es muss an der weiterleitung des Skriptes liegen.
 
Zuletzt bearbeitet:
Jetzt habe ich noch ein Problem. Es funkzioniert alles nur igal ob ich das richtige oder falsche passworet eingebe da steht immer. Ungültiges Password
 
Ich vermute einfach mal das das Passwort und der Username in 'login_right' geprüft werden. Wir können dir ja gerne helfen, aber wenn wir nicht wissen wie der Quelltext aussieht wird es problematisch.
 
ok hier ist er:
PHP:
function login_right($id, $pass)
 {
 $sql = "SELECT
          COUNT(*) as Anzahl
   FROM
     users
    WHERE
   ID = '".$id."' AND
   Password = MD5('".$pass."');";
   $result = mysql_query($sql) OR die(mysql_error());
   $row = mysql_fetch_assoc($result);
   mysql_free_result($result);
   return $row['Anzahl'];
   }
 
Versuch mal folgendes:
PHP:
function login_right($id, $pass)
{
$sql = "SELECT
          COUNT(*) as Anzahl
   FROM
     users
    WHERE
   ID = '".$id."' AND
   Password = ".md5($pass).";"; /* Vll liefern das MD% von MySQL und PHP ja unterschiedliche wert. Ich bezweifele es zwar noch aber wenn es nach der korrektur unten noch nicht klappt versuch es mal hiermit. */
   $result = mysql_query($sql) OR die(mysql_error());
   $row = mysql_fetch_array($result); /* Wie untenr ablese willst du mit einem Array arbeiten. Daher solltest du das hier auch sagen. */
   mysql_free_result($result);
   return $row['Anzahl'];
   }
 
es funkzioniert nicht.
Es kommt so eine Fehlermeldung:
Unknown column '098f6bcd4621d373cade4e832627b4f6' in 'where clause'
 
Ja ist klar der wert muss natürlich in einfachen anführungszeichen stehen damit er nicht als name einer spalte interpretiert wird. Die Kombinations aus zahlen und zeichen ist die MD5 Summe.
 
Es geht um die SQL Syntax. MySQL denkt das du mit der in die Query eingefügte MD5-Summe eine Spalte ansprichst. Da du aber den Wert ansich meinst musst du ihn in einfache Anführungszeichen setzten. Das hast du bei der ID ja auch gemacht. Nur ich habe das beim Umschreiben vergessen.

PHP:
function login_right($id, $pass)
{
$sql = "SELECT
          COUNT(*) as Anzahl
   FROM
     users
    WHERE
   ID = '".$id."' AND
   Password = '".md5($pass)."';"; /* Vll liefern das MD% von MySQL und PHP ja unterschiedliche wert. Ich bezweifele es zwar noch aber wenn es nach der korrektur unten noch nicht klappt versuch es mal hiermit. */
   $result = mysql_query($sql) OR die(mysql_error());
   $row = mysql_fetch_array($result); /* Wie untenr ablese willst du mit einem Array arbeiten. Daher solltest du das hier auch sagen. */
   mysql_free_result($result);
   return $row['Anzahl'];
   }
 
Exsistiert auch eine entsprechende MySQL Tabelle? Kannst du deren Struktur und den Datensatz welchen du versucht anzusprechen posten?
 
Hier ist die Datenbank
PHP:
-- phpMyAdmin SQL Dump
-- version 2.7.0-pl1
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Erstellungszeit: 03. Juli 2006 um 18:36
-- Server Version: 5.0.18
-- PHP-Version: 5.1.1
-- 
-- Datenbank: `test`
-- 
-- --------------------------------------------------------
-- 
-- Tabellenstruktur für Tabelle `users`
-- 
CREATE TABLE `users` (
  `ID` tinyint(4) NOT NULL auto_increment,
  `Name` varchar(20) collate latin1_general_ci default NULL,
  `Password` char(32) collate latin1_general_ci default NULL,
  `Email` varchar(60) collate latin1_general_ci default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ;
-- 
-- Daten für Tabelle `users`
-- 
INSERT INTO `users` VALUES (1, 'FleyerShaver', 'test2', '[email protected]');
INSERT INTO `users` VALUES (2, 'webmaster', 'test', '[email protected]');
 
Du solltest das Passwort auch als MD5 Summe in der DB Speichern wenn du es mit dessen MD5 Summer vergleichst. Du brauchst du md5 ja gar nicht auf das Passwort anwenden.
PHP:
$sql = "SELECT COUNT(*) as Anzahl FROM users WHERE ID = '".$id."' AND Password = '".$pass."';";

:?
 
Dort wird auch nirgends erklärt wie du die Daten in die DB einfügen musst soweit ich das sehe.

Du musst die Passwörter in eine MD5 Summer umwandeln bevor du sie in der Db ablegst.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben