Registrieren  •  Login 
  
 
im Forum


 FAQ   Mitgliederliste   Benutzergruppen   Teamseite   Suchen 

Problem mit Loginformular
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 15.07.2007, 22:10    Titel: Problem mit Loginformular

Hallo zusammen


Ich habe folgenden Code zum Auswerten des Loginformulars:
PHP-Code:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
$username_sql 
mysql_real_escape_string($_POST['username']);
include(
'/home/www/web432/html/includes/zugriff1.inc.php');

/* Erforderliche Datensätze für Login auslesen */
$sql_read "SELECT * FROM `phpbb_users` WHERE `username`= '" .$username_sql"'";
$sql_read_query mysql_query($sql_read);
$sql_read_u mysql_fetch_array($sql_read_query);


$passwort_in_md5 md5($_POST['Passwort']);

/* Session start */
$Zugangspasswort $_sql_read_u['user_password'];

if(
$_POST['Send'] && $passwort_in_md5 == $Zugangspasswort)
{
    
session_start();
    
session_register("Passwort");
    
$_SESSION['Passwort'] = $Zugangspasswort;
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Stufe Josua Cevi Weiningen-Geroldswil &bull; Login</title>
<style type="text/css">
<!--

BODY {
 margin: 0px 0px 0px 0px;
 font-family:Arial, Helvetica, sans-serif;
}

#zentriert {
 position: absolute;
 width: 400px;
 height: 300px;
 left: 50%;
 top: 50%;
 margin-left: -200px;
 margin-top: -150px;
 background-image:url(http://www.stufejosua-weingeri.ch/bilder/loginbg.jpg);
}

-->
</style>
</head>

<body bgcolor="#CDDBF5">
<div id="zentriert">

<?php

if($_SESSION['Passwort'] == $Zugangspasswort)
{
    echo
"Login erfolreich. <a href=\"\">Hier</a> gehts weiter.";
}
else
{
    echo
"Username oder Passwort nicht akzeptiert!";
}

?>


</div>
</body>
</html>


Doch wenn ich probehalber ein falsches Passwort eingebe, kommt auch die Meldung, dass der Login erfolgreich war! Was habe ich falsch gemacht?
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
fanrpg
Mitglied
Mitglied



Anmeldedatum: 14.12.2006
Geschlecht: Keine Angabe
Beiträge: 126
Wohnort: Windeck

BeitragVerfasst am: 16.07.2007, 01:10    Titel:

Code:
$Zugangspasswort = $_sql_read_u['user_password'];


Sollte doch eher so aussehen ?

Code:
$Zugangspasswort = $sql_read_u['user_password'];


Desweiteren ist session_register() ab PHP 4.1.0 nicht mehr empfehlenswert.
Es reicht auch einfach $_SESSION['name'] = 'inhalt'; der, es wird automatisch angelegt.

Desweiteren kann $_SESSION['Passwort'] gar nicht Inhalt besitzen, er ist in dem Fall leer und erst bei einem neuem Aufruf wo er nicht neu gesetzt wird, voll.
Und dadurch das $Zugangspasswort auch leer war mit dem leeren $_SESSION war es halt immer gleich und richtig.
Nach oben
Benutzer-Profile anzeigen fanrpg ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 16.07.2007, 09:51    Titel:

und wieso ist $_SESSION['Passwort'] nicht gefüllt? was hab ich falsch gemacht?
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
fanrpg
Mitglied
Mitglied



Anmeldedatum: 14.12.2006
Geschlecht: Keine Angabe
Beiträge: 126
Wohnort: Windeck

BeitragVerfasst am: 16.07.2007, 10:20    Titel:

Weil $_SESSION erst nach einem Seitenreload gesetzt ist...

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start
(); // Am besten gaanz am Anfang setzen...


if( !isset($_SESSION['username']) )
{
$_SESSION['username'] = $username// Variable wird gesetzt
}
else
{
echo 
$_SESSION['username'];
}

session_write_close(); // Beendet die Session und schreibt die Daten in ein Cookie. Normalerweise nicht nötig... aber wann ist schon normalerweise..
?>


So sollte idealerweise eine php Datei die $_SESSION benutzt.

Allerdings würde ich sowieso dazu raten auf $_SESSION zu verzichten und lieber $_COOKIE zu benutzen, da $_SESSION nichts anderes ist als von PHP angelegte Cookies. und mit serialize() auch Arrays in einem Cookie speichern kann.

Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt von fanrpg.
Nach oben
Benutzer-Profile anzeigen fanrpg ist derzeit offline Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 16.07.2007, 10:47    Titel:

in meinem schlauen Buch steht, dass man die Session_IDs auch in der Datenbank speichern kann.

a) welche Vorteile bringt das?
b) wie geht das? im buch hats kein Beispiel... muss man die Sess-id ermitteln und einfach eintragen?


edit:
hab den Code jetzt so:
PHP-Code:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
session_start
();
$username_sql mysql_real_escape_string($_POST['username']);
include(
'/home/www/web432/html/includes/zugriff1.inc.php');

/* Erforderliche Datensätze für Login auslesen */
$sql_read "SELECT * FROM `phpbb_users` WHERE `username`= '" .$username_sql"'";
$sql_read_query mysql_query($sql_read);
$sql_read_u mysql_fetch_array($sql_read_query);


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Stufe Josua Cevi Weiningen-Geroldswil &bull; Login</title>
<style type="text/css">
<!--

BODY {
 margin: 0px 0px 0px 0px;
 font-family:Arial, Helvetica, sans-serif;
}

#zentriert {
 position: absolute;
 width: 400px;
 height: 300px;
 left: 50%;
 top: 50%;
 margin-left: -200px;
 margin-top: -150px;
 background-image:url(http://www.stufejosua-weingeri.ch/bilder/loginbg.jpg);
}

-->
</style>
</head>

<body bgcolor="#CDDBF5">
<div id="zentriert">

<?php
$passwort_in_md5 
md5($_POST['Passwort']);

/* Session start */
$Zugangspasswort $sql_read_u['user_password'];

if(
$passwort_in_md5 == $Zugangspasswort)
{
if( !isset(
$_SESSION['username']) )
{
$_SESSION['username'] = $username// Variable wird gesetzt
}
else
{
echo 
$_SESSION['username']." hat sich erfolgreich eingeloggt.<br><a href=\"\">Hier klicken</a>";

}
else
{
echo 
'Passwort falsch';
}
session_write_close();
?>


</div>
</body>
</html>



edit2: wie kann ich einstellen, dass eine Sessid nur zB 10 Minuten gültig ist? also dass man rausgeschmissen wird, wenn man 10min nix macht?

Dieser Beitrag wurde insgesamt 2 mal geändert. Zuletzt von thoha.
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13993
Wohnort: Wien

BeitragVerfasst am: 16.07.2007, 12:11    Titel:

session_cache_expire() Wink
Oder du speicherst in einer Session Variable die Zeit des aufrufes udn überprüfst dann bei jeden Aufruf, ob die Zeit kleiner als time()-x ist Wink

Schau dir mal diese Klasse an, habe ich einmal als Vorlage benutzt: http://www.brain-and-trust.de/download.php3?ID1=118&ID59=47
cl_user.php und cl_zugriff.php - cl_db.php und cl_db_mysql.php braucht man dafür Standardmäsig auch Wink


MfG Christian
_________________


Dieser Beitrag wurde insgesamt 2 mal geändert. Zuletzt von killerbees19.
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 16.07.2007, 13:16    Titel:

hab das mit dem session_cache_expire() anahnd des PHP-Handbuches (php.net) gelöst.
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 17.07.2007, 11:21    Titel:

also... folgende Probleme:

1) wenn ich das Cookie mit der Session-id lösche, kann ich trotzdem noch auf eine geschützte Seite zugreiffen. Code testsess.php

2) Der Logoff mit der Funktion session_destroy() funktioniert auch nicht. Code logoff.php
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13993
Wohnort: Wien

BeitragVerfasst am: 17.07.2007, 12:23    Titel:

Um dich auszuloggen musst du nichst weiter machen als:
Code:
$_SESSION['something'] = '';
session_destroy();

Also alle verwendeten Session Variablen auf Null setzen, damit da kein Inhalt mehr ist Wink


MfG Christian
_________________


Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt von killerbees19.
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 17.07.2007, 12:30    Titel:

killerbees19 hat Folgendes geschrieben:
Um dich auszuloggen musst du nichst weiter machen als:
Code:
$_SESSION['something'] = '';
session_destroy();

Also alle verwendeten Session Variablen auf Null setzen, damit da kein Inhalt mehr ist Wink


MfG Christian


also wäre das $_SESSION['username'] aber mit was muss ich das gleichsetzen?
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13993
Wohnort: Wien

BeitragVerfasst am: 17.07.2007, 12:43    Titel:

Einfach zurücksetzen.
Mit einem leeren Wert oder unset() Wink


MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 17.07.2007, 12:57    Titel:

das geht irgendwie nicht, erstens ist das Cookie "PHPSESSID" immer noch vorhanden und zweitens kann ich die testsess.php immer noch aufrufen!
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13993
Wohnort: Wien

BeitragVerfasst am: 17.07.2007, 13:38    Titel:

Das muss funktionieren, verwende ich in zig Scripten genauso Wink
Bist sicher, dass dein Browser die Seite nicht cached?


MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 17.07.2007, 13:57    Titel:

killerbees19 hat Folgendes geschrieben:
Das muss funktionieren, verwende ich in zig Scripten genauso Wink
Bist sicher, dass dein Browser die Seite nicht cached?


MfG Christian


liegt es vllt. am Code, dass er die Seite chached?



edit:
hab den cache geleert, kann die seite immer noch aufrufen, ohne dass ich gehindert werde

Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt von thoha.
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
thoha
Übersetzer
Übersetzer



Anmeldedatum: 07.10.2006
Geschlecht: Männlich
Beiträge: 2591

BeitragVerfasst am: 18.07.2007, 16:58    Titel:

*push*
Nach oben
Benutzer-Profile anzeigen thoha ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht teilnehmen.
Du kannst Dateien in diesem Forum nicht hochladen.
Du kannst Dateien in diesem Forum nicht herunterladen.

 

Alle Zeiten sind GMT + 2 Stunden (Sommerzeit)
Aktuelles Datum und Uhrzeit: 31.05.2020, 09:47
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!
Software based on work from the phpBB-Group  •  Deutsche Übersetzung von phpBB.de

netcup - Internetdienstleistungen
 
 
[ happytec.at | forum.happytec.at | blog.happytec.at | esports.happytec.at | event.happytec.at ]