GELÖST PHP-Login-Skript gesucht

Diskutiere PHP-Login-Skript gesucht im Programmierung Forum im Bereich Software Forum; Ich suche aktuell ein gutes auf PHP und MySQL basierendes Login-Skript für meine private Website. Da ich leider nur Grundkenntnisse in PHP habe...
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
Ich suche aktuell ein gutes auf PHP und MySQL basierendes Login-Skript für meine private Website. Da ich leider nur Grundkenntnisse in PHP habe, wollte ich auf ein vorgefertigtes Skript zurückgreifen und dieses ggf. ein wenig anpassen. Das Problem ist aber: Ich finde kein Skript, das meinen Anforderungen entspricht. Ausnahmsweise liegt das scheinbar nicht daran, das ich zu viel möchte, sondern eher zu wenig. :D

Also, ich möchte gerne folgende grundlegende Dinge realisieren:

1. Nutzernamen und Passwörter sollen in einer MySQL-Datenbank (und nicht etwa in einer unsicheren Textdatei auf dem Server) gespeichert sein.
2. Ich möchte keine (!) Funktionen wie "Registrieren" oder "Passwort vergessen?". Es sollen sich von vornherein nur Nutzer anmelden können, die in der Datenbank als solche von mir vordefiniert sind.
3. Ich möchte keinen (!) Admin-Bereich mit bestimmten Funktionen haben. Stattdessen sollen manche Seiten nur für Nutzer A und B, andere dagegen für A, B, C und D aufrufbar sein. Hintergrund ist, dass ich auf meiner Website bestimmte Informationen "gefiltert", also nur für bestimmte Personen, anbieten möchte.
4. Natürlich soll es neben einem Login auch ein Logout geben, nach dessen Betätigung man wieder auf der Startseite landet. Aber das ist ja eigentlich logisch...

Eigentlich eine ganz simple Sache also, nur leider war meine Suche bislang erfolglos. Hat hier jemand Ahnung von diesen Dingen bzw. mehr Erfolg bei Google und Co? Bislang konnte ich nämlich nur entweder unbrauchbare (weil unsichere) oder völlig überfrachtete Login-Skripte finden.
 
H

HWFlo

Mitglied seit
04.09.2005
Beiträge
5.271
Alter
31
Die Anforderungen klingen so speziell das es etwas fertiges wohl nicht geben wird.
Dazu kommt das ich meine bei dir eine Rechteverwaltung herauslesen zu können welche du in dieser Art und Weise definitiv selbst erstellen musst.
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
Die Anforderungen klingen so speziell das es etwas fertiges wohl nicht geben wird.
Ich weiß nicht. Eigentlich soll ja letztenendes jede "geschützte" Seite ja nur aufrufbar sein, wenn die Session geladen wurde. Mehr nicht.

Dazu kommt das ich meine bei dir eine Rechteverwaltung herauslesen zu können welche du in dieser Art und Weise definitiv selbst erstellen musst.
Aber das muss doch auch einfach und simpel gehen. Nutzer A bekommt ein zusätzliches Attribut "1" und Nutzer B bekommt die Attribute "1" und "2". Dann braucht es doch eigentlich nur noch die Abfrage, ob das jeweilige Attribut bei dem Nutzer vorhanden ist, also wenn Seite XY das Attribut "2" fordert, dann kann nur Nutzer B darauf zugreifen. Seiten mit Attribut "1" können von Nutzer A und B aufgerufen werden. Lässt sich das nicht als eine Art "Eingangsabfrage" (also da, wo auch überprüft wird, ob die Session existiert) einbauen und zwar ohne großartigen Aufwand?
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
Ich sehe gerade, es gibt tatsächlich ein super simples Login-Skript, das meinen Anforderungen zumindest teilweise entspricht: http://aktuell.de.selfhtml.org/artikel/php/loginsystem/

Was muss in den Code-Zeilen umgeschrieben werden, damit Username und Password nicht direkt im PHP-Skript geschrieben stehen, sondern stattdessen die Informationen aus einer Datenbank ausgelesen werden? Das wäre ja vor allem deshalb wichtig, weil es mehrere User geben soll. (Die Idee mit unterschiedlichen Rechten verwerfe ich erstmal, ggf. kann man das ja noch später aufgreifen.)
 
DerZong

DerZong

MODERATOR/FAQ-Team
Team
Mitglied seit
12.10.2004
Beiträge
4.677
Alter
41
Ich habe selber das von dir gefundene Script in Benutzung - etwas angepasst und erweitert, so dass die Daten in einer Datenbank abgerufen werden. Bei mir sind es 3 Dateien: login.php, logout.php und functions.php. In letzterer sind dann auch die Datenbank-Parameter enthalten.

Jede "schützenswerte" Seite importiert die Funktions-Datei und braucht nur zu Beginn die Funktion auth(); aufzurufen.
Diese Funktion prüft, ob der Benutzer angemeldet ist. Ist der Benutzer nicht angemeldet, kehrt er zu einer vorher definierten Seite zurück.

Sicherlich kann das Script auch dahin gehend angepasst werden, dass die Seite, auf die dann zurückgesprungen wurde, entweder beim Überprüfen der Berechtigung mit auf den Weg gegeben wird, oder aber auf die aufrufende Seite zurückgesprungen wird (wobei letzteres nicht immer funktioniert bzw. sinnvoll ist).

Auch die Sache, welche Seite der Benutzer überhaupt besuchen darf, kann sicherlich noch ergänzt werden, in dem z. B. geschaut wird, ob für Seite 'XY' unter 'Rechte' in der Datenbank eine '1' enthalten ist.
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
...etwas angepasst und erweitert, so dass die Daten in einer Datenbank abgerufen werden.
Ich gehe mal davon aus, dass du jeden User manuell in der Datenbank anlegst, oder? Was hast du denn genau angepasst, damit das mit der Datenbank-Abfrage funktioniert?

In letzterer sind dann auch die Datenbank-Parameter enthalten.
Wie sehen die denn aus?
 
DerZong

DerZong

MODERATOR/FAQ-Team
Team
Mitglied seit
12.10.2004
Beiträge
4.677
Alter
41
Ich gehe mal davon aus, dass du jeden User manuell in der Datenbank anlegst, oder?
Das schon, nur lasse ich mir vorher auf meinem lokalen Server das Passwort verschlüsseln - schließlich lege ich kein Passwort unverschlüsselt auf irgend einer Datenbank ab;)

Aber Was hast du denn genau angepasst, damit das mit der Datenbank-Abfrage funktioniert?
Nun ja, beim Login Datenbank abfragen, ob in Tabelle "users" der Benutzer nebst richtigem Passwort vorhanden ist. Wenn ja, gibt er mir die Zeile mit den Informationen zu diesem Benutzer zurück. Relevante Daten hiervon werden dann in der Session gespeichert.

Wie sehen die denn aus?
Eigentlich ganz einfach:
PHP:
$db_host     = "DB-Adresse";
$db_username = "DB-Benutzer";
$db_password = "DB-Kennwort";
$db_database = "Deine DB";
 
function connect()
{
    global $db_database;
    global $db_host;
    global $db_username;
    global $db_password;
    $db = mysql_connect($db_host, $db_username, $db_password) or die ("<br /><br /><b><Sorry, aber es kann momentan keine Verbindung zur Datenbank hergestellt werden!<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
    mysql_select_db($db_database, $db) or die ("<br /><br /><b><Sorry, aber es kann momentan keine Verbindung zur Datenbank hergestellt werden!<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
}
 
function disconnect() {
  mysql_close();
}
Und dann die entsprechende Abfrage beim Login:
PHP:
connect();
$benutzer=mysql_query('SELECT * FROM users WHERE name="'.$username.'" AND pw="'.$password.'"');
$zeilen=mysql_num_rows($benutzer);
disconnect();
if ($zeilen=="1") // Benutzer vorhanden
{ ...
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
Hmm... irgendwas mache ich falsch bei der Einbeziehung der Datenbank. Aber was?

Folgendermaßen habe ich den Code meiner login.php angepasst:

PHP:
<?php
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      session_start();

      $username = $_POST['username'];
      $passwort = $_POST['passwort'];

      $hostname = $_SERVER['HTTP_HOST'];
      $path = dirname($_SERVER['PHP_SELF']);

      // Benutzername und Passwort werden überprüft
      connect();
       $benutzer=mysql_query('SELECT * FROM users WHERE name="'.$username.'" AND pw="'.$password.'"');
       $zeilen=mysql_num_rows($benutzer);
       disconnect();
       if ($zeilen=="1") // Benutzer vorhanden
       {
       
       $_SESSION['angemeldet'] = true;

       // Weiterleitung zur geschützten Startseite
       if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (php_sapi_name() == 'cgi') {
         header('Status: 303 See Other');
         }
        else {
         header('HTTP/1.1 303 See Other');
         }
        }

       header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/testsite_locked.php');
       exit;
       }
      }
?>
Hiernach folgt dann natürlich noch normaler HTML-Code inkl. der Formularfelder.

Und so sieht die auth.php aus:

PHP:
<?php

$db_host     = "localhost";
$db_username = "DB_USERNAME";
$db_password = "DB_PASSWORD";
$db_database = "DB_NAME";
 
function connect()
{
    global $db_database;
    global $db_host;
    global $db_username;
    global $db_password;
    $db = mysql_connect($db_host, $db_username, $db_password) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
    mysql_select_db($db_database, $db) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
}
 
function disconnect() {
  mysql_close();
}

     session_start();

     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);

     if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
      header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/intern.php');
      exit;
      }

?>
Die logout.php entspricht dem Original:

PHP:
<?php
     session_start();
     session_destroy();

     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);

     header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');
?>
Ach ja, die Datenbank-Einträge sind natürlich brav in einer normalen Tabelle mit fortlaufender ID und dann unterteilt in "username" und "password".

Wo ist der Fehler? :wacko
 
Zuletzt bearbeitet:
DerZong

DerZong

MODERATOR/FAQ-Team
Team
Mitglied seit
12.10.2004
Beiträge
4.677
Alter
41
So, wie es aussieht, hast du folgendes noch gar nicht in deiner Login-Datei - das brauchst du dort aber, da du dort schließlich auch den Datenbank-Zugriff hast:
PHP:
$db_host     = "localhost";
$db_username = "DB_USERNAME";
$db_password = "DB_PASSWORD";
$db_database = "DB_NAME";
 
function connect()
{
    global $db_database;
    global $db_host;
    global $db_username;
    global $db_password;
    $db = mysql_connect($db_host, $db_username, $db_password) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
    mysql_select_db($db_database, $db) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
}
 
function disconnect() {
  mysql_close();
}
Ansonsten wäre sicherlich auch interessant zu wissen, welche Fehlermeldung kommt.
Kommen keine, kann es sein, dass dies zurzeit ausgeschaltet ist. Wenn dem so ist, versuche mal, folgenden Code zu Beginn der jeweiligen Datei einzufügen (bitte nur zu Debug-Zwecken, danach wieder löschen):
PHP:
ini_set('error_reporting', E_ALL);
ini_set('display_errors',true);
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
Ich habe die login.php am Anfang noch um die Datenbank-Angaben erweitert. Im Übrigen ist der Code so wie oben angegeben. Der Fehler, der kommt, wenn ich auf Login klicke (egal, ob mit existierenden oder nicht existierenden Benutzerdaten) lautet:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /is/htdocs/***blablabla***/login.php on line 34

Line 34 ist bei mir diese Zeile:

PHP:
$zeilen=mysql_num_rows($benutzer);
 
H

HWFlo

Mitglied seit
04.09.2005
Beiträge
5.271
Alter
31
Hört sich so an als wäre dein Query nicht korrekt.
Geben in mal mit echo aus bevor du ihn an die Datenbank schickst und prüfe ihn.
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
Ich habe das Login-Skript noch mal angepasst, aber leider immer noch nicht mit dem gewünschten Erfolg.

Die login.php sieht nun so aus:

PHP:
<?php
$db_host     = "localhost";
$db_username = "***DB_USER***";
$db_password = "***DB_PASSWORD***";
$db_database = "***DB_NAME***";
 
function connect()
{
    global $db_database;
    global $db_host;
    global $db_username;
    global $db_password;
    $db = mysql_connect($db_host, $db_username, $db_password) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
    mysql_select_db($db_database, $db) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
}
 
function disconnect() {
  mysql_close();
}
     
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      session_start();

      $username = $_POST['username'];
      $passwort = $_POST['passwort'];

      $hostname = $_SERVER['HTTP_HOST'];
      $path = dirname($_SERVER['PHP_SELF']);

      // Benutzername und Passwort werden überprüft
      
connect();
$benutzer=mysql_query('SELECT * FROM users WHERE name="'.$username.'" AND pw="'.$password.'"');
$zeilen=mysql_num_rows($benutzer);
disconnect();
if ($zeilen=="1") // Benutzer vorhanden
{
       $_SESSION['angemeldet'] = true;

       // Weiterleitung zur geschützten Startseite
       if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (php_sapi_name() == 'cgi') {
         header('Status: 303 See Other');
         }
        else {
         header('HTTP/1.1 303 See Other');
         }
        }

       header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/intern.php');
       exit;
       }
      }
?>

Dann die auth.php:

PHP:
<?php
     session_start();

     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);

     if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
      header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');
      exit;
      }
?>
Und als letztes die logout.php:

PHP:
<?php
     session_start();
     session_destroy();

     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);

     header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');
?>
Neu im Vergleich zu den original Login-Dateien ist also nur die login.php. Dort dann die Zeilen 2 bis 19 mit diesem Code:

PHP:
$db_host     = "localhost";
$db_username = "***DB_USER***";
$db_password = "***DB_PASSWORD***";
$db_database = "***DB_NAME***";
 
function connect()
{
    global $db_database;
    global $db_host;
    global $db_username;
    global $db_password;
    $db = mysql_connect($db_host, $db_username, $db_password) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
    mysql_select_db($db_database, $db) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
}
 
function disconnect() {
  mysql_close();
}
sowie die Zeilen 32 bis 37 mit diesem Code:

PHP:
connect();
$benutzer=mysql_query('SELECT * FROM users WHERE name="'.$username.'" AND pw="'.$password.'"');
$zeilen=mysql_num_rows($benutzer);
disconnect();
if ($zeilen=="1") // Benutzer vorhanden
{
Aber, und das ist wirklich frustrierend, es funktioniert immer noch nicht. Nach wie vor bekomme ich den Fehler

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /is/htdocs/***blablabla***/login.php on line 34

Und line 34 ist immer noch folgender Code:

PHP:
$zeilen=mysql_num_rows($benutzer);
Ich komme einfach nicht dahinter, wo hier der Fehler liegt. :blink
 
H

HWFlo

Mitglied seit
04.09.2005
Beiträge
5.271
Alter
31
Wie bereits gesagt solltest du dein SQl Statement und die DB vergleichen.

Außerdem solltest du deine Parameter dringend escapen.
Z.B. mit mysql_real_escape_string()
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
Wie bereits gesagt solltest du dein SQl Statement und die DB vergleichen.
Also die Datenbank ist eigentlich wunderbar in Ordnung. Es befindet sich eine Tabelle darin (users) und diese besteht aus drei Spalten (id, username, password). Die Bezeichnungen entsprechen denen im PHP-Code.

Das erste Problem taucht ja schon auf, wenn man nichts in die Formularfelder eingibt. Dann sollte eigentlich nichts passieren (bzw. genauer: die login.php einfach neu aufgerufen werden). Stattdessen gibt es da aber schon den o.g. Fehler.

Wenn man etwas "Falsches" (in der Datenbank nicht existente User) einträgt, passiert das Gleiche. Ebenso, wenn man vorhandene Userdaten eingibt. Sobald ich die Datenbankgeschichte rausnehme und Userdaten direkt im PHP-Code einbaue, funktioniert alles so wie es soll. Genau das will ich aber aus nachvollziehbaren Gründen nicht machen...

Außerdem solltest du deine Parameter dringend escapen.
Z.B. mit mysql_real_escape_string()
Kapiere ich nicht. :confused Wie eingangs gesagt: Meine PHP-Kenntnisse sind (noch) sehr dürftig. ;)
 
H

HWFlo

Mitglied seit
04.09.2005
Beiträge
5.271
Alter
31
SO nun wirds spannend ;)
Du sagst die users Tabelle in deiner DB hat die Felder id, username und password
In deinem SQL Statement ('SELECT * FROM users WHERE name="'.$username.'" AND pw="'.$password.'"') verndest du jedoch name und pw!

Escapen bedeutet folgendes. Du verhinderst das jemand die Eingabe so Manipuliert das bei der Abfrage etwas völlig anderes heraus kommt bzw er sogar selbst was anderes lesen kann.
Geht z.B. wie folgt
statt
...password="'.$password.'"....
schreibst du
...password="'.mysql_real_escape_string($password).'"....
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
Du sagst die users Tabelle in deiner DB hat die Felder id, username und password
In deinem SQL Statement ('SELECT * FROM users WHERE name="'.$username.'" AND pw="'.$password.'"') verndest du jedoch name und pw!
Autsch! :wut Ja, das habe ich korrigiert und der Fehler ist weg. Allerdings funktioniert die login.php (leider) immer noch nicht: Egal was ich eingebe -- ob gar nichts, etwas Falsches oder existente Daten --, es passiert nichts. Irgendwo hakt es noch, aber das muss sich doch finden lassen. :confused

Escapen bedeutet folgendes. [...]
Danke!
 
M

ModellbahnerTT

Mitglied seit
20.04.2005
Beiträge
3.778
Alter
39
Außerdem solltest du deine Parameter dringend escapen.
Z.B. mit mysql_real_escape_string()
Das escapen halte ich für nur eine Übergangslösung am besten sind in dem Fall Callable Statements um gar keine SQL Statements mehr übers Netz zu schicken.
 
sanandreasWB

sanandreasWB

Mitglied seit
13.05.2008
Beiträge
692
Standort
getarnt mit Störsendern...
Außerdem solltest du in der Funktion

PHP:
 mysql_select_db($db_database, $db)
unbedingt die Variable $db rausnehmen! Das hat bei mir schon zu Problemen geführt!
Also:

PHP:
 mysql_select_db($db_database)
 
DerZong

DerZong

MODERATOR/FAQ-Team
Team
Mitglied seit
12.10.2004
Beiträge
4.677
Alter
41
Ein Fehler hab ich auch noch gefunden: Deine POST-Variable in Login.php weist du der Variable $passwort zu. Im SQL-Statement greifst du aber auf die Variable $password zu - was nur zu einer leeren Zeichenkette beim Passwort für die Datenbank-Abfrage führt.
 
E

Entertainment04

Threadstarter
Mitglied seit
07.07.2004
Beiträge
692
So, ich bin inzwischen nochmal über den PHP-Code der login.php gegangen. Folgendermaßen sieht er jetzt aus:

PHP:
<?php
$db_host     = "localhost";
$db_username = "***";
$db_password = "***";
$db_database = "***";
 
function connect()
{
    global $db_database;
    global $db_host;
    global $db_username;
    global $db_password;
    $db = mysql_connect($db_host, $db_username, $db_password) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
    mysql_select_db($db_database) or die ("<br /><br /><b><Es konnte keine Verbindung zur Datenbank hergestellt werden.<br /><br />Database Error</b><br /><br />#".mysql_errno()." - ".mysql_error()."");
}
 
function disconnect() {
  mysql_close();
}
     
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      session_start();

      $username = $_POST['username'];
      $password = $_POST['password'];

      $hostname = $_SERVER['HTTP_HOST'];
      $path = dirname($_SERVER['PHP_SELF']);

      // Benutzername und Passwort werden überprüft
      
connect();
$benutzer=mysql_query('SELECT * FROM users WHERE username="'.mysql_real_escape_string($username).'" AND password="'.mysql_real_escape_string($password).'"');
$zeilen=mysql_num_rows($benutzer);
disconnect();
if ($zeilen=="1") // Benutzer vorhanden
{
       $_SESSION['angemeldet'] = true;

       // Weiterleitung zur geschützten Startseite
       if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (php_sapi_name() == 'cgi') {
         header('Status: 303 See Other');
         }
        else {
         header('HTTP/1.1 303 See Other');
         }
        }

       header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/intern.php');
       exit;
       }
      }
?>
Es funktioniert aber immer noch nicht. (Immerhin: Ich bekomme schon mal keine Fehlermeldung mehr. :D) Ich habe außerdem noch mal in der Datenbank nachgeschaut und dort verwende ich ganz sicher die englische Schreibweise (also username und password).

Das escapen halte ich für nur eine Übergangslösung
Ich habe das Escapen jetzt trotzdem mal als Übergangslösung drin gelassen.

[...]unbedingt die Variable $db rausnehmen!
Ist draußen, ändert sich aber nichts durch.


Der Rest ist immer noch gleich geblieben (aber daran kann es ja wohl nicht liegen):

auth.php:
PHP:
<?php
     session_start();

     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);

     if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
      header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');
      exit;
      }
?>
logout.php:
PHP:
<?php
     session_start();
     session_destroy();

     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);

     header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/login.php');
?>
 
Thema:

PHP-Login-Skript gesucht

Sucheingaben

https:www.winboard.orgprogrammierung127522-php-login-skript-gesucht-3.html

PHP-Login-Skript gesucht - Ähnliche Themen

  • kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro

    kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro: kann pdf, php und jpg Dateinen nicht speichern. Muß ich mir vielleicht noch irgendwelche Programme runterladen? Kann nicht einmal eine website...
  • Neue PHP Datei per Kontextmenü erstellen

    Neue PHP Datei per Kontextmenü erstellen: Ich habe das Internet schon nach dieser Möglichkeit unter windows 10 durchsucht, aber nie hat das, was dort beschrieben wurde, auch funktioniert...
  • php

    php: Für die Bearbeitung meiner Webseiten (in Siquando Pro 2) ist mindestens php 5.6 erforderlich. Wo finde ich die installierte Version und wie kann...
  • Entwurfsmuster für PHP-Login-Skript

    Entwurfsmuster für PHP-Login-Skript: Hallo, ich möchte für eine Website eine Benutzerverwaltung in PHP (objektorientiert) und MySQL programmieren. Die Benutzerverwaltung soll mir...
  • PHP Login Script

    PHP Login Script: Hallo kennt jd. ein Programm womit das ich auf ne HP stellen kann das sich dann alle X sec. in mein pop3 Posteingang einwählt und dann die E-mails...
  • Ähnliche Themen

    • kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro

      kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro: kann pdf, php und jpg Dateinen nicht speichern. Muß ich mir vielleicht noch irgendwelche Programme runterladen? Kann nicht einmal eine website...
    • Neue PHP Datei per Kontextmenü erstellen

      Neue PHP Datei per Kontextmenü erstellen: Ich habe das Internet schon nach dieser Möglichkeit unter windows 10 durchsucht, aber nie hat das, was dort beschrieben wurde, auch funktioniert...
    • php

      php: Für die Bearbeitung meiner Webseiten (in Siquando Pro 2) ist mindestens php 5.6 erforderlich. Wo finde ich die installierte Version und wie kann...
    • Entwurfsmuster für PHP-Login-Skript

      Entwurfsmuster für PHP-Login-Skript: Hallo, ich möchte für eine Website eine Benutzerverwaltung in PHP (objektorientiert) und MySQL programmieren. Die Benutzerverwaltung soll mir...
    • PHP Login Script

      PHP Login Script: Hallo kennt jd. ein Programm womit das ich auf ne HP stellen kann das sich dann alle X sec. in mein pop3 Posteingang einwählt und dann die E-mails...
    Oben