gegenwärtig absolviere ich ein Praktikum in der ABC-Umformtechnik GmbH in der EDV-Abteilung. Ich habe den Auftrag, denen ein Intranet zusammenzuschustern.
Das Intranet soll folgende Funktionen haben:
- Loginsystem, gesicherte Bereiche
- Wissensdatenbank (ähnlich einer Wiki)
- Abteilungen als einzelne Module mit führenden Abteilungsleitern, die diese administrieren
- Abteilungs- und Mitarbeiterliste
- Newssystem mit Schlagzeilen aus dem Unternehmen
- Suchfunktion
- Adminpanel
Da ich zwar ein bisschen PHP kann, jedoch nicht so schrecklich viel, eröffne ich diesen Thread, falls ich mal Hilfe benötige.
Mein erstes Anliegen ist das Loginsystem:
Ich hatte es bereits zum Laufen gebracht. Allerdings kam dann "plötzlich" das Problem auf, dass ich nicht mehr in den internen Bereich weitergeleitet werde.
Das System setzt sich zusammen aus:
- mysql.php <- Verbindungsdaten zur Datenbank
- index.php <- Formular zum Einloggen
- login.php <- Die Einlogprozedur
- intern.php <- Interne Seite
- auth.php <- Prüft, ob die Session aktiv ist und leitet ansonsten auf die index.php weiter.
Logout.php gibt es noch nicht, kommt aber, sobald alles läuft.
Hier mal die Dateien:
mysql.php
- Code: Alles auswählen
<?
$mysql_host = "localhost"; //Hostname
$mysql_user = "root"; //Datenbank-Benutzername
$mysql_pass = ""; //Datenbank-Passwort
$mysql_name = "abc_intranet" //Name der Datenbank
?>
index.php
- Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Blubb</title>
</head>
<body>
<?php include("mysql.php"); ?>
<center>
<?
if(isset($_REQUEST['fehler']))
{
echo "Ein falscher Benutzername oder ein falsches Passwort ist eingegeben worden.<br />";
echo "Bitte versuchen Sie es erneut:<br />";
}
else
{
echo "Sie haben nicht die erforderlichen Rechte, um diese Seite aufzurufen!<br /><br />";
echo "<b>Bitte loggen Sie sich ein.</b><br />";
}
?>
<form name="frm_login" action="login.php" method="post">
<table width="200" height="100">
<tr><td> Benutzername: </td><td> <input type="text" name="fld_benutzer" size="15" /> </td></tr>
<tr><td> Passwort: </td><td> <input type="password" name="fld_passwort" size="15" /> </td></tr>
<tr><td> <input type="submit" name="btn_login" value="Login" /> </td>
<td> <input type="reset" name="btn_zuruecksetzen" value="Zurücksetzen" /> </td></tr>
</table>
</form>
</center>
</body>
</html>
login.php
- Code: Alles auswählen
<?
include("mysql.php");
// Datenbankverbindung
$mysql_db = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die ("<b>Fehler:</b> Die Verbindung zum Host ist nicht möglich!");
mysql_select_db($mysql_name, $mysql_db) or die ("<b>Fehler:</b> Die Datenbank existiert nicht!");
// Benutzerdaten aus Formular auslesen
$benutzername = $_REQUEST['fld_benutzer'];
$passwort = $_REQUEST['fld_passwort'];
// Datensätze auswählen
$mysql_ergebnis = mysql_query("SELECT * FROM accounts WHERE benutzername = '$benutzername' AND passwort = '$passwort'", $mysql_db);
if(mysql_num_rows($mysql_ergebnis) > 0)
{
$mysql_daten = mysql_fetch_array($mysql_ergebnis);
// Sessionvariablen erstellen
$_SESSION["user_id"] = $mysql_daten["accountid"];
$_SESSION["user_nickname"] = $mysql_daten["benutzername"];
$_SESSION["user_vorname"] = $mysql_daten["vorname"];
$_SESSION["user_nachname"] = $mysql_daten["nachname"];
$_SESSION["user_abteilung"] = $mysql_daten["abteilung"];
$_SESSION["user_funktion"] = $mysql_daten["funktion"];
$_SESSION["user_telefonnr"] = $mysql_daten["telefonnr"];
// Benutzer wird auf intern.php weitergeleitet, wenn er eingeloggt ist.
header("Location: intern.php");
}
else
{
header("location: index.php?fehler=1");
}
?>
intern.php
- Code: Alles auswählen
<? include("auth.php"); ?>
<html>
<head>
<title>ABC Intranet - Interner Bereich</title>
</head>
<body>
<h1>Interner Bereich</h1>
Herzlich willkommen! <br /><br />
Möchten Sie sich wieder ausloggen? <a href="logout.php">Ja</a>
</body>
</html>
auth.php
- Code: Alles auswählen
<?
session_start();
if(!isset($_SESSION["user_id"]))
{
header ("location: index.php");
exit;
}
?>
Danke schonmal für die Hilfe.
Gruß,
Sven
Edit: Die Datenbankstruktur wäre vielleicht noch hilfreich:
Name: abc_intranet
Tabelle: accounts
- accountid (int 10)
- vorname (varchar 50)
- nachname (varchar 50)
- abteilung (int 10)
- funktion (varchar 100)
- telefonnr (varchar 20)
- benutzername (varchar 20)
- passwort (varchar 50)
