Loginsystem
qplay
- php
Ich habe mir einen neuen eigenes loginsytem erstellt wenn ich mich auslogge bekomme ich diese meldung
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in C:\xampp\htdocs\admin.php on line 6
Hab keinen Schimmer, woran es liegen könnte.
Danke für die Hilfe(n)
meine php skripte:
index.php
<?php
error_reporting(E_ALL);
include "inc/config.php"; // die Konfigurationsdateien lesen.
// Verbindung zu MySQL Aufbauen
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') 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 class=\"error\">\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 " <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
echo " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
echo " </head>\n";
echo " <body>\n";
echo " <div id=\"root\">\n"; // ganz oberer Div-Holder
echo " <div id=\"banner\">\n"; // banner
include "banner.php";
echo " </div>\n";
echo " <div id=\"links\">\n"; // linkes Menu
include "menu.php";
echo " </div>\n";
echo " <div id=\"mitte\">\n"; // In der Mitte der Inhalt
include "inhalt.php";
echo " </div>\n";
echo " <br style=\"clear:both;\" />\n"; // css-float beenden
echo " </div>\n";
echo " </body>\n";
echo "</html>\n";
?>
admin.php
<?php
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') OR die(mysql_error());
// die admin.php
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";
// 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 Password.\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";
}
}
}
?>
functions.php
<?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'];
}
?>
config.php
<?php
include 'constant.php';
include 'variablen.php';
include 'functions.php';
include 'admin.php';
?>
Hi,
Ich glaube das Problem ist folgendes:
Zuerst bindest du die config.php ein, in dieser bindest du die admin.php ein, das heißt die admin.php wird in der include-Zeile ausgeführt, beim logout trifft in dieser dann diese if(isset($_GET['action']) AND ("logout" == $_GET['action']))
Bedingung zu, und dann führst du session_destroy(); aus, obwohl session_start(); noch nicht ausgeführt wurde, das kommt nämlich nur wenn diese /* Session starten wenn ?section=admin geöffnet wurde */ if(isset($_GET['section']) AND ("admin" == $_GET['section']))
zutrifft.
Man kann eine Session nicht zerstören, wenn diese nicht vorher geöffnet wurde, also am besten ganz oben in die index.php "session_start();" reischreiben, dann bist du auf der sicheren Seite.
bruno1
Ich habe jetzt die index.php verändert die meldung ist jetzt weg aber vorher wenn ich Repeat gedrückt habe
war ich wieder bei loginformular wenn ich jetzt Repeat drücke passiert nichts.
index.php
<?php
error_reporting(E_ALL);
// Verbindung zu MySQL Aufbauen
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') 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 class=\"error\">\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
}
}
include "inc/config.php"; // die Konfigurationsdateien lesen.
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 " <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
echo " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
echo " </head>\n";
echo " <body>\n";
echo " <div id=\"root\">\n"; // ganz oberer Div-Holder
echo " <div id=\"banner\">\n"; // banner
include "banner.php";
echo " </div>\n";
echo " <div id=\"links\">\n"; // linkes Menu
include "menu.php";
echo " </div>\n";
echo " <div id=\"mitte\">\n"; // In der Mitte der Inhalt
include "inhalt.php";
echo " </div>\n";
echo " <br style=\"clear:both;\" />\n"; // css-float beenden
echo " </div>\n";
echo " </body>\n";
echo "</html>\n";
?>
Ich habe jetzt die index.php verändert die meldung ist jetzt weg aber vorher wenn ich Repeat gedrückt habe
war ich wieder bei loginformular wenn ich jetzt Repeat drücke passiert nichts.
Was bedeutet, es passiert nichts?
Bleibst du auf der admin-Seite?
Im Prinzip ist die Session so gebaut, dass du das login-Formular erst wieder siehst, wenn du dich ausgeloggt hast.
Das verschieben des includes ist zwar in Ordnung, ich habe aber was anderes gemeint:
index.php
<?php
error_reporting(E_ALL);
session_start();
include "inc/config.php"; // die Konfigurationsdateien lesen.
// Verbindung zu MySQL Aufbauen
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') OR die(mysql_error());
// Session starten wenn ?section=admin geöffnet wurde
if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
if(!isset($_SESSION['IP'])) {
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
}
if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
echo "<p class=\"error\">\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 " <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
echo " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
echo " </head>\n";
echo " <body>\n";
echo " <div id=\"root\">\n"; // ganz oberer Div-Holder
echo " <div id=\"banner\">\n"; // banner
include "banner.php";
echo " </div>\n";
echo " <div id=\"links\">\n"; // linkes Menu
include "menu.php";
echo " </div>\n";
echo " <div id=\"mitte\">\n"; // In der Mitte der Inhalt
include "inhalt.php";
echo " </div>\n";
echo " <br style=\"clear:both;\" />\n"; // css-float beenden
echo " </div>\n";
echo " </body>\n";
echo "</html>\n";
?>
Das sollte im Prinzip funktionieren.
bruno1
P.S. Du musst dich nicht auf jeder Seite neu in MySQL einloggen, einmal auf der index.php gilt für alle mit include eingebundenen Seiten.
Ich habe jetzt die index.php verändert die meldung ist jetzt weg aber vorher wenn ich Repeat gedrückt habe
war ich wieder bei loginformular wenn ich jetzt Repeat drücke passiert nichts.Was bedeutet, es passiert nichts?
Bleibst du auf der admin-Seite?
Im Prinzip ist die Session so gebaut, dass du das login-Formular erst wieder siehst, wenn du dich ausgeloggt hast.
Was muss eigentlich passieren wenn man repeat drückt?^^
P.S. Du musst dich nicht auf jeder Seite neu in MySQL einloggen, einmal auf der index.php gilt für alle mit include eingebundenen Seiten.
Wenn ich aber nicht auf jeder Seite neu in MySQL einlogge bekomme ich diesen Meldung Name No database selected
Hi,
Was muss eigentlich passieren wenn man repeat drückt?^^
Ich weiß nicht, ob ich dein Programm komplett richtig verstanden habe, aber so wie ich das sehe bleibst du auf der administrationsseite, bis du dich ausgeloggt hast.
Wenn das nicht zutrifft, dann bin ich mit meinem Latein am Ende, und du musst jemand anderes fragen.
Wenn ich aber nicht auf jeder Seite neu in MySQL einlogge bekomme ich diesen Meldung Name No database selected
Sorry, mein Fehler, du musst das dann auf der index.php nach ganz oben verschieben:
<?php
session_start();
// Verbindung zu MySQL Aufbauen
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') OR die(mysql_error());
include 'config.php'
// Der ganze Rest
bruno1
Ich bearbeite jetzt meine Loginaccount aber ich bekomme wieder einen meldugn
:(
Notice: Undefined variable: _SESSION in C:\xampp\htdocs\admin_self.php on line 11
<?php
// Verbindung zu MySQL Aufbauen
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') OR die(mysql_error());
$sql = "SELECT
Name,
Email
FROM
users
WHERE
ID = '".$_SESSION['ID']."';";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
echo "<form action=\"index.php?section=admin&site=self\" method=\"post\" class=\"formular\">\n";
echo " <p>\n";
echo " Eigene Daten bearbeiten\n";
echo " </p>\n";
echo " <ol>\n";
echo " <li>\n";
echo " <label for=\"name\">Name</label>\n";
echo " <input type=\"text\" name=\"name\" id=\"name\" value=\"".$row['Name']."\"/>\n";
echo " </li>\n";
echo " <li>\n";
echo " <label for=\"email\">Emailadresse</label>\n";
echo " <input type=\"text\" name=\"email\" id=\"email\" value=\"".$row['Email']."\"/>\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 " <input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n";
echo " </li>\n";
echo " </ol>\n";
echo "</form>\n";
echo "<p>\n";
echo " <a href=\"index.php?section=admin&'.SID.'\">Zurück</a>\n";
echo "</p>\n";
?>
Hello,
Ich bearbeite jetzt meine Loginaccount aber ich bekomme wieder einen meldugn
:(
Notice: Undefined variable: _SESSION in C:\xampp\htdocs\admin_self.php on line 11
<?php
// Verbindung zu MySQL Aufbauen
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') OR die(mysql_error());
$sql = "SELECT
Name,
FROM
users
WHERE
Spätestens hier müsste die Session gestartet worden sein und das Vorhandensein von $_SESSION['ID'] geprüft worden sein. Wenn es eine neue Session wäre, würde ja vielleicht noch gar nichts drinstehen.
ID = '".$_SESSION['ID']."';";
?>
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>
Die Session startet doch beim index.php schon??
index.php
<?php
error_reporting(E_ALL);
session_start();
// Verbindung zu MySQL Aufbauen
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') OR die(mysql_error());
include "inc/config.php"; // die Konfigurationsdateien lesen.
// Session starten wenn ?section=admin geöffnet wurde
if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
if(!isset($_SESSION['IP'])) {
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
}
if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
echo "<p class=\"error\">\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 " <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
echo " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n";
echo " </head>\n";
echo " <body>\n";
echo " <div id=\"root\">\n"; // ganz oberer Div-Holder
echo " <div id=\"banner\">\n"; // banner
include "banner.php";
echo " </div>\n";
echo " <div id=\"links\">\n"; // linkes Menu
include "menu.php";
echo " </div>\n";
echo " <div id=\"mitte\">\n"; // In der Mitte der Inhalt
include "inhalt.php";
echo " </div>\n";
echo " <br style=\"clear:both;\" />\n"; // css-float beenden
echo " </div>\n";
echo " </body>\n";
echo "</html>\n";
?>
admin.php
<?php
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') OR die(mysql_error());
// die admin.php
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'])) {
if(isset($_GET['site']) AND isset($admin_site[$_GET['site']])) {
include $admin_site[$_GET['site']];
} else {
include "admin_menu.php";
// Das Hauptmenu vom Adminbereich laden
}
} else {
// Login-Formular mit der if(isset()) abfrage
}
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 Password.\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";
}
}
}
?>
admin_menu.php
<?php
echo "<h2>Adminbereich</h2>\n";
echo "<p>\n";
echo " <a href=\"index.php?section=admin&site=self&'.SID.'\">\n";
echo " Eigenen Account bearbeiten\n";
echo " </a>\n";
echo "</p>\n";
?>
admin_self.php
<?php
// Verbindung zu MySQL Aufbauen
@mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('test') OR die(mysql_error());
$sql = "SELECT
Name,
Email
FROM
users
WHERE
ID = '".$_SESSION['ID']."';";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
echo "<form action=\"index.php?section=admin&site=self\" method=\"post\" class=\"formular\">\n";
echo " <p>\n";
echo " Eigene Daten bearbeiten\n";
echo " </p>\n";
echo " <ol>\n";
echo " <li>\n";
echo " <label for=\"name\">Name</label>\n";
echo " <input type=\"text\" name=\"name\" id=\"name\" value=\"".$row['Name']."\"/>\n";
echo " </li>\n";
echo " <li>\n";
echo " <label for=\"email\">Emailadresse</label>\n";
echo " <input type=\"text\" name=\"email\" id=\"email\" value=\"".$row['Email']."\"/>\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 " <input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n";
echo " </li>\n";
echo " </ol>\n";
echo "</form>\n";
echo "<p>\n";
echo " <a href=\"index.php?section=admin&'.SID.'\">Zurück</a>\n";
echo "</p>\n";
?>
variablen.php
<?php
// variablen.php
$dateien = array();
$dateien['news'] = "news.php";
$admin_site = array();
$admin_site['self'] = "admin_self.php";
?>
constant.php
<?php
// constant.php
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root'); // kann ich ja schlecht für
// eure MySQL wissen
define('MYSQL_PASS', ''); // s.o.
define('MYSQL_DATABASE', 'test'); // s.o.
?>
variables.php
<?php
// zum Beispiel in der variables.php angelegt
$dateien = array();
$dateien['news'] = 'news.php';
$dateien['forum'] = 'forum.php';
$dateien['downloads'] = 'dl.php';
$dateien['login'] = 'login.php';
// ...
?>
functions.php
<?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'];
}
?>
config.php
<?php
include 'constant.php';
include 'variablen.php';
include 'functions.php';
include 'admin.php';
// wir haben keine eigenen Funkionen
?>
Hello,
Die Session startet doch beim index.php schon??
Und um welchen Programmteil hat es sich dann in https://forum.selfhtml.org/?t=206338&m=1400575 gehandelt?
Du erwartest doch hoffentlich nicht, dass wir hier wissen, wie dein System zusammengestöpselt ist? Das ist eine deiner wichtigsten Aufgaben, Dokumentation zu betreiben, Zusammenhänge zu erläutern und einzeln publizierte Programmteile so zu kennzeichnen, dass man sofort weiß, was sie repräsentieren und wohin sie gehören, also in welchem Umfeld sie Eingebunden werden.
Hast Du schon mal ein Flowchart angefertigt von den ganzen Teilen?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
Du solltest von Anfang an in mindestens drei, vermutlich vier Ebenen unterteilen
Display: Zeigt die benötigten Benutzereingabemasken
Login: Ist der interaktive Vorgang, der benötigt wird, um die benötigten Daten
auf Nutzerseite zu beschaffen und den Status zu ändern.
Authenticate: Ist Funktion, die mit Hilfe eines Statusmerkers (z.B. Session-ID)
bei jedem Request den Benutzerstatus zu überprüfen
Rights: ist die Funktion, die aus einem definierten Benutzerstatus für jede
bereitgestellte Funktionalität des Programmes feststellt, ob diese
Funktionalität dem Benutzer zur Verfügung gestellt werden darf.
Und ebenso solltest Du ausgliedern in eigenen Funktionen:
Das führt dann zu einer hohen Wiederverwendbarkeit des Codes und einer klaren Aufgabenteilung über das gesamte Projekt hinweg.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Liebe(r) qplay,
Deine seitenlangen echos mit HTML-Code sind nicht sinnvoll. Besser Du lagerst den Code in echte HTML-Dateien aus, die Du als Vorlagendateien nutzt und deren Inhalt Du in Variablen einliest, veränderst/ausfüllst und dann am Ende Deiner Scripte mit einem einzigen echo ausgibst.
Diese ständigen echos machen spätestens dann Probleme, wenn Du "unterwegs" plötzlich neue header()-Funktionen brauchst, oder Cookie-Daten ändern willst.
Liebe Grüße,
Felix Riesterer.