Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Ein sessionbasiertes Loginsystem

Layoutprobleme? - Styleswitcher!

Antwort
 
Themen-Optionen
Alt 05.12.2005, 00:45 Nach oben    #1
lino
 
Beiträge: n/a
Standard Ein sessionbasiertes Loginsystem

Hallo,

habe das "Ein sessionbasiertes Loginsystem" von Ben installiert.
Dazu habe ich erstmal folgende MySQL Tabelle angelegt.

Code:
CREATE TABLE `archiv_login` (
  `_id` varchar(10) collate latin1_general_ci NOT NULL default '',
  `_anzahlLogins` int(2) NOT NULL default '0',
  `_username` varchar(10) collate latin1_general_ci NOT NULL default '',
  `_passwort` varchar(20) collate latin1_general_ci NOT NULL default '',
  PRIMARY KEY  (`_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- 
-- Daten für Tabelle `archiv_login`
-- 

INSERT INTO `archiv_login` VALUES ('1', 0, 'versand', 'd57898ab11a6d2f16bd8');
Wenn ich mich versuche einzuloggen, dann springt er automatisch auf loginfehler.html

Ist vielleicht meine MySQL flasch?

by Lino
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 00:56 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 3.812
Standard

Hallo,
hm, also das sollte eigentlich nicht passieren. Logischerweise .
Hast du alles genauso verwendet (also die Dateien), wie im Tutorial beschrieben?
Mit welchen Daten loggst du dich ein?

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 00:58 Nach oben    #3
PaterNoster
Erfahrener Benutzer
 
Benutzerbild von PaterNoster
 
Registriert seit: 18.08.2005
Ort: Dortmund
Beiträge: 166
Standard

Cookies zugelassen?
PaterNoster ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 01:02 Nach oben    #4
lino
 
Beiträge: n/a
Standard

@Ben: habe das zip-Archiv aus dem Tutorial heruntergeladen.
Ich logge mich mit versand und passwort 0702 ein.

@PaterNoster: Cookies werden zugelassen.

by Lino
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 10:39 Nach oben    #5
xabbuh
Benutzer
 
Benutzerbild von xabbuh
 
Registriert seit: 03.12.2005
Ort: Osnabrück
Beiträge: 73
Standard

Gibt es Fehlermeldungen von MySQL? Welche MySQL-Version verwendest du?
xabbuh ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 10:47 Nach oben    #6
Jann Hendrik
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 1.542
Standard

das Passwort hat in deiner Datenbank nur 20 Zeichen abbekommen. Ich echt hat das aber ein paar mehr...

teste das mal:
PHP-Code:
<?php
  
echo md5('0702');
?>
du wirst sehen:
d57898ab11a6d2f16bd8c67a2533ae98

mit dem Verglecih von dem, was du oben in der db stehen hast....

Na? Richtig! der string ist nicht identisch, daher wird dein Passwort nicht als richtig anerkannt!

So einfach ist das!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

die aktuelle Umfrage: Wo kauft ihr eure Literatur?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 11:01 Nach oben    #7
lino
 
Beiträge: n/a
Standard

Hallo,

hatte den Paßwortstring über MySQL-Front in die DB kopiert. Dieser hat den abgeschnitten. Mit PHPMyAdmin hat es funktioniert.

Vielen Dank

Weitere Frage:

Kann man das Script um die Funktion eines automatischen Einloggen erweitern? Diese Funktion gibt es doch bei einigen Foren.

by Lino

Geändert von lino (05.12.2005 um 11:06 Uhr).
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 14:46 Nach oben    #8
Jann Hendrik
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 1.542
Standard

klar kann man das, das setzt jedoch noch ein wenig mehr an Wissen voraus.

Befasse dich mal mit Cookies.


btw: geht der login nun?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

die aktuelle Umfrage: Wo kauft ihr eure Literatur?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 15:03 Nach oben    #9
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 3.812
Standard

Zitat:
Zitat von Jann Hendrik
Befasse dich mal mit Cookies.
Heißt soviel, dass du in das Formular eine Checkbox einbindest, welche markiert werden kann, wenn man automatisch eingeloggt werden will.

Wenn das Formular abgesendet wird prüfst du, ob die Checkbox markiert wurde. Ist dies der Fall, so nutzt du die Funktion setcookie, um ein Cookie zu setzen. Schau dir da mal die Beispiele an. Das hilft dir sicher weiter.

Wenn man nun die "geheime Seite" aufruft überprüfst du nicht nur, ob die in der Session ein "isLoggedIn" gesetzt ist, sondern du überprüfst auch, ob nicht ein Cookie mit den entsprechenden Logindaten gesetzt wurde.

Das nur mal so als Hinweis.
Viel Spaß beim Spielen .

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.06.2006, 12:42 Nach oben    #10
sommer
Neuer Benutzer
 
Registriert seit: 14.06.2006
Beiträge: 1
Standard

Hallo,

ich habe zum Loginsystem ebenfalls zwei Fragen.

Muss man denn bei jeder Seite, die man "schützen" will die checkLogin.inc.php einbinden?
PHP-Code:
<?php include_once 'checkLogin.inc.php'?>

Einen ganzen Ordner kann man nicht schützen?


Desweiteren würde mich interessieren, ob es möglich ist, dass man eine E-Mail geschickt bekommt, wenn sich jemand erfolglos und erfolgreich eingeloggt hat?
sommer ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.06.2006, 12:49 Nach oben    #11
Jann Hendrik
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 1.542
Standard

Zitat:
Zitat von sommer
Desweiteren würde mich interessieren, ob es möglich ist, dass man eine E-Mail geschickt bekommt, wenn sich jemand erfolglos und erfolgreich eingeloggt hat?

versuch doch mal den Code zu verstehen!
An der Stelle, wo jmd. einen login-Versuch gestartet hat gibt es zwei Möglichkeiten, a) erfolgreich b) erfolglos.

an den beiden Stellen kannst du mittel mail dir eine Mail schicken lassen!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

die aktuelle Umfrage: Wo kauft ihr eure Literatur?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.06.2006, 13:47 Nach oben    #12
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 3.812
Standard

Einen ganzen Ordner kann man auf diesem Wege (mit der vorhandenen Datei) nur über Umwege sichern.
In dem hier vorliegenden Fall müsstest du in alle Seiten die checkLogin-Datei einbinden.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 15:40 Nach oben    #13
coal16
 
Beiträge: n/a
Standard sessionbasiertes Loginsystem

Hallo Ben u.a.,

ich bin PHP-Noob und hab dank deines Tuts schonmal eine tolle Grundlage für mein Vorhaben. Das Problem, das ich habe, ist das in meinem Fall ein CMS im Hintergrund werkelt und die Seiten quasi generiert werden mit Adressen a la : ht tp://ww w.test.de/index.php?p=mitgliederbereich

Und dank dem CMS kann ich in die Seiten kein :
<?php

include_once 'checkLogin.inc.php';

?>

einbringen. Hab auch schon über eine "versteckte Weiterleitung" an die gewünschte Seite nachgedacht, aber erstens weiss ich nicht wie es geht und zweitens ist dann der Sicherheitsaspekt ziemlich flöten gegangen.

Noch ne Idee???
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 15:48 Nach oben    #14
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 3.812
Standard

Jup, habe 'ne Idee.

Aber dafür braucht man weitere Informationen.
Wie wird der Mitgliederbereich denn geladen?

In der Form?
PHP-Code:
// ..

switch($_GET['p'])
{
    case 
'mitgliederbereich':
        include(
'bereich.php');

Wäre wichtig, damit man sagen kann, wo die "check"-Funktionalität angebracht werden muss.

Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 16:18 Nach oben    #15
coal16
 
Beiträge: n/a
Standard

Danke für die flinke Antwort...

Ich hab mal was aus der index.php rauskopiert...

PHP-Code:
//--p/id/pageid per GET
if(isset($_REQUEST['p'])) $pageid $_REQUEST['p'];
if(isset(
$_REQUEST['id'])) $pageid $_REQUEST['id'];
if(isset(
$_REQUEST['pageid'])) $pageid $_REQUEST['pageid'];

//--alias vorhanden?
$alias_pageid $obj_pages->get_uid_by_alias($pageid);
if (
$alias_pageid != 0$pageid $alias_pageid;

if(
$pageid!=0){
    
$pageid $pageid*1;
    
$showpage $obj_pages->page_is_published($pageid); //--true/false

Wichtig wäre, dass nur zwei Seiten, nämlich p=protokolle und p=email den "check" abbekommen, wenns darüber gehen sollte...

Geändert von Ben (30.08.2006 um 16:24 Uhr). Grund: PHP-Tags hinzugefügt
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 16:29 Nach oben    #16
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 3.812
Standard

Zu Beginn ... rück doch mal deine Codes ein. Als Beispiel
PHP-Code:
//--p/id/pageid per GET
if(isset($_REQUEST['p']))
{
    
$pageid $_REQUEST['p'];
}
elseif(isset(
$_REQUEST['id'])) 
{
    
$pageid $_REQUEST['id'];
}
elseif(isset(
$_REQUEST['pageid']))
{
    
$pageid $_REQUEST['pageid'];
}

//--alias vorhanden?
$alias_pageid $obj_pages->get_uid_by_alias($pageid);
if (
$alias_pageid != 0
{
    
$pageid $alias_pageid;
}

if(
$pageid!=0)
{
    
$pageid $pageid*1;
    
$showpage $obj_pages->page_is_published($pageid); //--true/false

Irgendwie übersichtlicher. (Klammersetzung, wie einem beliebt!).

Weiterhin .. du hast $pageid nirgends initialisiert. Es fehlt wohl irgendwo ein
PHP-Code:
$pageid 
Wenn du die Überprüfung nur bei zwei pageids durchführen lassen willst, dann würde sich doch eine Abfrage anbieten, oder?
Du musst ja nicht unbedingt die gleiche Struktur haben, wie ich im Tutorial.
Verpacke die Datei, die man "normalerweise" "includen" würde in eine Funktion bzw. verpacke den Code der Datei in eine Funktion .. so ist es besser.

Die rufst du auf, wenn halt die entsprechenden Inhalte abgerufen werden sollen.

Nur so als Idee.
Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 16:51 Nach oben    #17
coal16
 
Beiträge: n/a
Standard

Für den Code zeichne ich mich nicht verantwortlich...ich bin nur der Ar..., der jetzt damit klarkommen muss...
Nebenbei war das nur ein Auszug aus der ellenlangen index.php.

Ich kann also einfach folgendes in die index.php einfügen? :
session_start();

if( !$_SESSION['loggedIn'] ) {
header( 'Location: http://www.test.de/index.php?p=email ' );
exit();
}

mmh...heißt der Code jetzt : wenn richtig eingeloggt dann leite weiter zu..
oder heißt er : wenn nicht richtig eingeloggt, leite weiter zu... ??
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 16:56 Nach oben    #18
Chr!s
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 560
Standard

Zitat:
if( !$_SESSION['loggedIn'] ) {
header( 'Location: http://www.test.de/index.php?p=email ' );
exit();
}
! ist ein äquivalent zu "nicht" -> wenn $_SESSION['loggedIn'] nicht gesetzt ist, oder $_SESSION['loggedIn'] nicht true ist, leitet er weiter.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 20:26 Nach oben    #19
Lars
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Zitat:
wenn $_SESSION['loggedIn'] nicht gesetzt ist
... gibt es ohne isset() einen E_NOTICE-Fehler.
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2006, 20:43 Nach oben    #20
coal16
 
Beiträge: n/a
Standard

Also ich hab jetzt noch ewig rumprobiert. Ohne Erfolg. Was ich wahrscheinlich brauche, ist ne ordentliche Syntax, die ich in die index.php einsetzen kann für:

if pageid = 116 dann prüfe, ob eine gültige session vorliegt und leite weiter an url ...
das gleiche dann nochmal für eine zweite pageid und 2.url ...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

« Dokument als druckbare (300dpi) pdf ausgeben... | MVC - Errohandling »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Ein sessionbasiertes Loginsystem von Ben compoundbow83 PHP-Programmierung 14 25.04.2007 00:01
Loginsystem ReMa PHP-Programmierung 7 05.02.2007 07:04
fehler beim loginsystem mitch PHP-Programmierung 15 08.03.2006 14:44
Loginsystem bob PHP-Programmierung 2 02.01.2006 16:57
[PHP] Ein sessionbasiertes Loginsystem Ben Tutorials 17 25.12.2005 22:07


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:16 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.6.7, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44