WinFuture-Forum.de: Login Fehler - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Login Fehler Passwort stimmt, aber sagt pw ist falsch


#1 Mitglied ist offline   evo2 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 14. März 05
  • Reputation: 0

geschrieben 09. September 2005 - 13:14

Hi.

Hab mir ein eigenes Login Script gebastelt, aber irgendwo ist der Wurm drin.
Registrieren kann man sich, aber beim einloggen dann der fehler.
Hier das Formular:
<form name="login" id="login" method="post" action="login.php">
                <h6>Member Login</h6>
                    <a name="loginbox" id="loginbox"></a>
                    <input type="text" size="15" name="name"/>
                    <input type="password" size="15" name="password"/>
                    <p>
                        <input name="remember" type="checkbox" id="remember" value="1"
                        style="border:0px none;" />Eingeloggt bleiben
                    </p>
                        <input type="submit" name="Submit" class="button" value="Login" />
                    
            </form>


Und hier dann die login.php
$user 	 = mysql_query("SELECT password, status FROM users WHERE name='$_POST[name]'");
	$result  = mysql_fetch_array($user, MYSQL_ASSOC);
	$result2	= $result["password"];
	$result3	= $result["status"];

	if (!$result) 
	{ 
  echo "Sorry, aber dieser Name ist leider nicht bekannt!<br />";  
  exit();
	}
	if ($result2 != '$_POST[password]') 
	{
  echo "Sorry, aber dieses Passwort passt nicht zum Usernamen!<br />";
  echo '	Result <B>',$result,'</B> <br />
    Name <B>',$_POST[name],'</B> <br />
    Password-DB <B>',$result2,'</B> <br />
    Password <B>',$_POST[password],'</B> <br />
    Status <B>',$result3,'</B>';
  exit();
	}


Diese Echo hab ich nur zur Kontrolle für mich mal Reingemacht, was für Daten er ausgibt:
Wenn ich als nick: evo2 und als pass: test eingebe, was auch richtig ist, dann sagt er immer Sorry, aber dieses Passwort passt nicht zum Usernamen!
Und wenn ich mir die Daten dazu anzeigen lasse:
Result Array
Name evo2
Password-DB test
Password test
Status 0

Und da ist ja das Passwort was er aus der Datenbank holt und das was ich eingebe richtig. Also müßte ja $result2 == '$_POST[password]' sein, oder?

Hab ich da was übersehen?

Mfg evo2
0

Anzeige



#2 Mitglied ist offline   kuerbis 

  • Gruppe: aktive Mitglieder
  • Beiträge: 25
  • Beigetreten: 04. Oktober 03
  • Reputation: 0

geschrieben 09. September 2005 - 13:43

das Problem liegt, IMHO, hier:

if ($result2 != '$_POST[password]')


Die backticks müssen weg, sonst vergleichst Du den Inhalt von $result2 mit $_POST[password] und eben nicht mit dessen inhalt. Deswegen:

if ($result2 != $_POST['password'])


HTH,
-t
0

#3 Mitglied ist offline   evo2 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 14. März 05
  • Reputation: 0

geschrieben 09. September 2005 - 13:55

thx. funzelt nun endlich :)

Mfg
evo2
0

#4 Mitglied ist offline   evo2 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 14. März 05
  • Reputation: 0

geschrieben 09. September 2005 - 16:04

Hmm...irgendwas stimmt da noch nicht ganz.
Irgendwie stimmt da was mit den Sessions nicht.
Also nachdem man sich eingeloggt hat, wird ein cookie gesetzt und
session_register('name'); ausgeführt.
danach dann session_start();

wenn man sich ausloggen will, dann das:
<?
setcookie("user","", time() - 3600);
session_destroy();
?>

Aber da kommt dann folgender Fehler:
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in logout.php on line 3

Und man ist weiterhin eingeloggt.
Hab mir verschieden Scripte angeguckt. Manche haben in jeder Datei als erstes
<?session_start();?>
Brauche ich das auch, oder reicht es wenn die einmal in der header ist. Ist ja bis auf wenige ausnahmen eh überall per inlcude drin.
Ich nur in der header.php und halt in der login.php

hier nochma der quellcode:
login.php
setcookie("user",base64_encode($name), time()+3600*1000);
session_register('name'); 
session_register('status');
...(bißel html zeugs)
session_start();


logout.php
<?
setcookie("user","", time() - 3600);
session_destroy();
?>


header und footer datei sind weder in login noch in logout eingebunden.

Mfg
evo2
0

#5 Mitglied ist offline   Meatwad 

  • Gruppe: aktive Mitglieder
  • Beiträge: 784
  • Beigetreten: 07. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bad Vilbel
  • Interessen:Computer, Inliner, Chatten...

geschrieben 09. September 2005 - 18:01

session_start(); ist nur dafür da, damit auf eine session überhaupt zugegriffen werden kann, wenn keine vorhanden ist, wird sie erstellt. session_register() verwendet keiner mehr und es muss nach dem session_start(); kommen
I am away to look for my self. If I am back before I return keep me here. | Mein Server
0

#6 Mitglied ist offline   evo2 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 14. März 05
  • Reputation: 0

geschrieben 09. September 2005 - 20:42

hmm...und was verwendet man heutzutage anstelle von session_register()?

Mfg evo2
0

#7 Mitglied ist offline   Urza 

  • Gruppe: aktive Mitglieder
  • Beiträge: 255
  • Beigetreten: 16. September 04
  • Reputation: 0
  • Wohnort:Dominaria/Aventurien

geschrieben 09. September 2005 - 22:52

$_SESSION['feldname] = wert;
echo $_SESSION['feldname'];  //wert

0

#8 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 11. September 2005 - 10:17

Man kann dies prinzipiell folgendermaßen auflisten.

Diese Datei arbeitet mit einer Session:
session_start();


Eine Session wird gesetzt:
$_SESSION['name'] = "wert/inhalt";


Die Session wird überprüft:
if(isset($_SESSION['name'])) ...


Die Session wird zerstört:
unset($_SESSION['name']);


Das wäre heute die richtige Schreibweise :8):

Dieser Beitrag wurde von Slayer bearbeitet: 11. September 2005 - 10:18

Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#9 Mitglied ist offline   Urza 

  • Gruppe: aktive Mitglieder
  • Beiträge: 255
  • Beigetreten: 16. September 04
  • Reputation: 0
  • Wohnort:Dominaria/Aventurien

geschrieben 12. September 2005 - 18:58

Zitat (Slayer: 11.09.2005, 11:17)

Man kann dies prinzipiell folgendermaßen auflisten.

Diese Datei arbeitet mit einer Session:
session_start();


Eine Session wird gesetzt:
$_SESSION['name'] = "wert/inhalt";


ungünstig ausgedrückt. es wird lediglich dem array-element des $_SESSION-arrays für diesen benutzer mit dem schlüssel 'name' ein wert zugewiesen.


Die Session wird überprüft:
if(isset($_SESSION['name'])) ...


falsch formuliert. s.o.

Die Session wird zerstört:
unset($_SESSION['name']);


falsch. es wird lediglich dieser eine wert gelöscht.
die session wird mit
session_destroy();
beendet


<{POST_SNAPBACK}>


(anmerkungen in kursiv)

soll kein vorwurf oder gottweißwas sein will nur ein paar missverständnisse vermeiden.
weiteres siehe
http://de3.php.net/m...ref.session.php
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0