Loginsystem

Hallo ich habe hier ein Loginsystem, weil ich dat von oben nit hinbekomme mit einem Layout und so. Nur eine Frage was ist der Fehler in Zeile 36?

[php]<?php // die admin.php if(isset($_GET['action']) AND ("logout" == $_GET['action'])) { session_destroy(); echo "

\n"; echo " Sie haben sich ausgeloggt. Um wieder in den Adminbereich\n"; echo " zu kommen müssen sie sich wieder Einloggen\n"; echo "

\n"; } else { if(isset($_POST['UserID']) AND '0' == $_POST['UserID']) { echo "

\n"; echo " Bitte wählen sie einen Benutzernamen aus.\n"; echo "

\n"; } else { if(isset($_POST['UserID'], $_POST['Password']) AND login_right(addslashes($_POST['UserID']), addslashes($_POST['Password']))) { echo "

\n"; echo "Willkommen im Adminbereich\n"; echo "

\n"; } else { echo "\n"; echo "

\n"; echo " Adminbereich\n"; echo "

\n"; echo "
    \n"; echo "
  1. \n"; echo " Name\n"; $sql = "SELECT ID, Name FROM users ORDER BY Name ASC;"; $result = mysql_query($sql) OR die(mysql_error()); echo " \n"; echo " Bitte wählen\n"; while($row = mysql_fetch_assoc($result)) { echo "".$row['Name']."\n"; } echo " \n"; echo "
  2. \n"; echo "
  3. \n"; echo " Password\n"; echo " \n"; echo "
  4. \n"; echo "
  5. \n"; echo " \n"; echo " \n"; echo "
  6. \n"; echo "
\n"; echo "\n"; } } } ?>[/php]das is die fehlermeldung: Warning: mysql_query() [function.mysql-query]: Can’t connect to local MySQL server through socket ‚/tmp/mysql.sock‘ (2) in /usr/export/www/vhosts/funnetwork/hosting/tnoehles/tb/admin.php on line 36

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /usr/export/www/vhosts/funnetwork/hosting/tnoehles/tb/admin.php on line 36
Can’t connect to local MySQL server through socket ‚/tmp/mysql.sock‘ (2)

Wurde davor ne Verbindung mit mysql_connect() und mysql_select_db() aufgerufen?

ja in der index.php. soll ne verbindung aufgerufen werden gibt mir aber auch ne fehlermeldung… und ich weiß nit warum

Fehlermeldung bei der Verbindung?
User und PW korrekt?
Code?

ach sorry User und PW sind richtig. hier gibt der mir ne fehlermeldung in der index.php:

[php] @mysql_connect(HOST, USER, PASS) OR die(mysql_error());
mysql_select_db(DB) OR die(mysql_error());[/php]

und dann halt der fehler in der admin.php

PS.: Ich weiß schon dat bei HOST, USER, PASS und DB was anderes hin muss :wink:

Hast du error_reporting(E_ALL) drin?
So ein Fehler wird eig nur durch falsche Daten verursacht. Sicher dass sie stimmen? kontrollie sie lieber nochmal.

Ja hab ich drin. Und die DAten stimmen auch. So hier ma die index.php:
[php]<?php error_reporting(E_ALL); // Verbindung zu MySQL Aufbauen @mysql_connect(HOST, USER, PASS) OR die(mysql_error()); mysql_select_db(DB) OR die(mysql_error()); include "config.php"; // die Konfigurationsdateien lesen. // 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 "

\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 " Zurück zur Homepage\n"; echo "

\n"; die(); // Aus Sicherheitsgründen die Abarbeitung sofort beenden } } include "inhalt.php"; ?>[/php]und die admin.php:

[php]<?php // die admin.php error_reporting(0); if(isset($_GET['action']) AND ("logout" == $_GET['action'])) { session_destroy(); echo "

\n"; echo " Sie haben sich ausgeloggt. Um wieder in den Adminbereich\n"; echo " zu kommen müssen sie sich wieder Einloggen\n"; echo "

\n"; } else { if(isset($_POST['UserID']) AND '0' == $_POST['UserID']) { echo "

\n"; echo " Bitte wählen sie einen Benutzernamen aus.\n"; echo "

\n"; } else { if(isset($_POST['UserID'], $_POST['Password']) AND login_right(addslashes($_POST['UserID']), addslashes($_POST['Password']))) { echo "

\n"; echo "Willkommen im Adminbereich\n"; echo "

\n"; } else { echo "\n"; echo "

\n"; echo " Adminbereich\n"; echo "

\n"; echo "
    \n"; echo "
  1. \n"; echo " Name\n"; $sql = "SELECT ID, Name FROM users ORDER BY Name ASC;"; $result = mysql_query($sql) OR die(mysql_error()); echo " \n"; echo " Bitte wählen\n"; while($row = mysql_fetch_assoc($result)) { echo "".$row['Name']."\n"; } echo " \n"; echo "
  2. \n"; echo "
  3. \n"; echo " Password\n"; echo " \n"; echo "
  4. \n"; echo "
  5. \n"; echo " \n"; echo " \n"; echo "
  6. \n"; echo "
\n"; echo "\n"; } } } ?>[/php]

Wenn du die Verbindung in der index.php erzeugst, musst du in der admin.php auch include(index.php) machen oder etwas vergleichbares.

eigentlich sollte der Code funktionieren. Er ist Schließlich von tut.php-q.net kopiert.

ja das stimmt dat der kopiert ist. aber ich hab trotzdem keine ahnung warum der mir immer die fehler anzeigt.

nimm mal das @ vor mysql_connect weg.

Wie schon von MaptheMop geschrieben hast du einen Includefehler. Du verbindest in deienr index.php mit der Datenbank. Progman hat die Verbindung aber in seinem Tutorial in der config.php. Also ändere include „config.php“; mal in include „index.php“;
Gruß

eben!
und
dir bringt error_reporting(E_ALL) nichts, wenn du ein @ vor mysql_connect hast, denn das verhindert ja die Fehler ausgabe :!:

ich habe doch die verbindung in meiner config

[php]<?php include 'constant.php'; include 'variablen.php'; include 'functions.php'; ?>[/php]und das is dann die constant.php:

[php]<?php // constant.php define('MYSQL_HOST', 'localhost'); define('MYSQL_USER', 'USER'); // kann ich ja schlecht für // eure MySQL wissen define('MYSQL_PASS', 'PASS'); // s.o. define('MYSQL_DATABASE', 'DB'); // s.o. ?>[/php]

und wenn ic die @ wegmache bekomm ich ja fast nur fehlermeldungen von wegen: Use of undefined constant localhost - assumed ‚localhost‘… datselbe mit PASS und USER…

Du hast die Konstanten in der config.php, nicht aber die Verbindung.
Du musst ja auch noch:
[php]
@mysql_connect(‚MYSQL_HOST‘, ‚MYSQL_USER‘, ‚MYSQL_PASS‘) or die(mysql_error());
mysql_select_db(‚MYSQL_DATABASE‘) or die(mysql_error());
[/php]
haben, damit eine Verbindung hergestellt wird. Schreib das in deine admin.php und es sollte klappen, wenn ich mich nicht verschrieben habe.

danke TheShadow es funktioniert - glaub ich ;-). aber ich bekomme auch schon die ganze zeit folgende fehlermeldungen: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /usr/export/www/vhosts/funnetwork/hosting/tnoehles/tb/index.php:115) in /usr/export/www/vhosts/funnetwork/hosting/tnoehles/tb/index.php on line 165

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/export/www/vhosts/funnetwork/hosting/tnoehles/tb/index.php:115) in /usr/export/www/vhosts/funnetwork/hosting/tnoehles/tb/index.php on line [B]165

[/B]line 165 sieht so aus:

[PHP]session_start();
if(!isset($_SESSION[‚IP‘])) {
$_SESSION[‚IP‘] = $_SERVER[‚REMOTE_ADDR‘];[/PHP]

session_start() muss ganz an den Anfang noch bevor irgend etwas anders auf der Seite ausgegeben wird. Alternativ dazu kannst du auch einfach nur ein @ davorsetzen.

Hm… das liegt wohl an deinem Header, da session_start(); immer ganz oben stehen muss. Schreib also das session_start(); sofort nach dem <?php.

ok danke ^^ jetzt hab ich aber noch en problem. wenn dat gelöst is nerv ich nit mehr ;-). also es wird jetzt alles richtig angezeigt man kann benutzernamen auswählen und PW eingeben. aber er wechselt nicht die seite sondern sagt Ungültiges Passwort. hier nochmal die admin.php:

[PHP]<?php
// die admin.php
error_reporting(E_ALL);
@mysql_connect(‚HOSt‘, ‚USER‘, ‚PASS‘) or die(mysql_error());
mysql_select_db(‚DB‘) or die(mysql_error());
if(isset($_GET[‚action‘]) AND („logout“ == $_GET[‚action‘])) {
session_destroy();
echo „

\n“;
echo " Sie haben sich ausgeloggt. Um wieder in den Adminbereich\n";
echo " zu kommen müssen sie sich wieder Einloggen\n";
echo „

\n“;
} else {
if(isset($_POST[‚UserID‘]) AND ‚0‘ == $_POST[‚UserID‘]) {
echo „

\n“;
echo " Bitte wählen sie einen Benutzernamen aus.\n";
echo „

\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";
            // Die Session-ID nicht vergessen
            echo "    <a href=\"index.php?section=admin&".SID."\">Repeat</a>\n";
            echo "    <a href=\"index.php?section=admin&action=logout&".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>\n";
                 echo "    Ungültiges Passwort.\n";
                 echo "</p>\n";
            }
            echo "<form action=\"index.php?section=admin\" method=\"post\" class=\"formular\">\n";
            echo "    <p>\n";
            echo "        Adminbereich\n";
            echo "    </p>\n";
            echo "    <ol>\n";
            echo "        <li>\n";
            echo "            <label for=\"name\">Name</label>\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 "        </li>\n";
            echo "        <li>\n";
            echo "            <label for=\"password\">Password</label>\n";
            echo "            <input type=\"password\" name=\"Password\" id=\"password\" />\n";
            echo "        </li>\n";
            echo "        <li>\n";
            echo "            <input type=\"submit\" name=\"submit\" value=\"Speichern\" />\n";
            echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
            echo "        </li>\n";
            echo "    </ol>\n";
            echo "</form>\n";
        }
    }
}

?>[/PHP]

Ich habe auch alle daten bei phpmyadmin richtig eingegeben.

Ok, das ist jetzt aber echt ein Problem, wo man mit ein bissl Überlegen selbst dahinter kommen kann. Du musst doch nur zurückverfolgen, wann die Fehlermeldung ausgegeben wird, dann weißt du auch, welche Bedingung nicht gegeben ist und prüfst darauf hin, warum sie nicht gegeben ist.