Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Session-Login geht nicht | Problem gelöst (https://www.gegen-bilderklau.net/thread.php?threadid=158189)


Geschrieben von callous. am 30.06.2009 um 16:08:

  Session-Login geht nicht | Problem gelöst

Überschrift ist etwas blöd, aber man weiß ja gleich, worum es geht Augenzwinkern

Wichtig: Hab mal einen Testaccount angelegt und musst feststellen, dass leider das Passwort immer falsch angegeben wird! Da kommt dann zum Beispiel 48951b077898 raus oder so!

Da ich vorher den LogIn ohne Sessions hatte, wollte ich heute mal einen mit Sessions ausprobieren. Doch leider klappt das nie! Der Fehler liegt glaube ich bei session_start(); ganz oben. So stand es zumindest in der Fehlermeldung ( siehe kursives unten ).

php:
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:
<?php 
session_start();
?> 

<?php 
include("datenbank.php");

$Nickname $_POST["Nickname"]; 
$Passwort md5($_POST["Password"]); 

$abfrage "SELECT Nickname, Passwort FROM Steckbrief WHERE Nickname LIKE '$Nickname' LIMIT 1"$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis); 

if($row->Passwort == $Passwort) 
    { 
    $_SESSION["Nickname"] = $Nickname; 
    echo "Hallo!"; 
    } 
else 
    { 
    echo "Login fehlgeschlagen!<br><a href="login.htm">Zurück</a>"; 
    } 

?>


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/webpages/lima-city/equinestars/html/equineStars/login.php:10) in /home/webpages/lima-city/equinestars/html/equineStars/login.php on line 11

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/webpages/lima-city/equinestars/html/equineStars/login.php:10) in /home/webpages/lima-city/equinestars/html/equineStars/login.php on line 11
Login fehlgeschlagen!
Zurück


Würde mich freuen, wenn mir jemand helfen würde. Hab nämlich keine Lust, alles per Hand einzutragen, wenn ich den LogIn ohne MySQL weiterbenutze.
Beim Fehler wunder ich mich ein sehr, weil ich es direkt aus dem Code so übernommen habe. Hab daher noch mal den ganzen Code gepostet, aber der Code macht es ja eigentlich eindeutig, dass das der Fehler sein muss...



Geschrieben von Black Katrin am 30.06.2009 um 16:19:

 

ich wäre um den login.php code froh und zwar VOLLSTÄNDIG in der PHP form! dh nutz die funktion um n code heir drinne anzeigen zu lassen mit [PHP]



Geschrieben von callous. am 30.06.2009 um 16:28:

 

Habs editiert. Weiß bloß nicht, warum es unvollständig sein soll...



Geschrieben von Black Katrin am 30.06.2009 um 16:46:

 

oh noch jemand der codes kopiert ohne zu wissen was er tut =/ du verschlüsselst das PW in einen 32 stelligen einmaligen code. MD5

www.php-einfach.de



Geschrieben von callous. am 30.06.2009 um 17:03:

 

Lass es doch einfach ganz, wenn du nur rummeckerst. Wenn wir alle PHP-Experten wären, müsste es diese Area wohl nicht geben, oder?
Es ist doch ganz normal, dass man als Anfängerin Fehler einbaut und sie selbst nicht findet...
Wäre auch toll, wenn ich sofort wüsste, was der Fehler wäre und gleich ein Onlinespiel wie howrse, equilino, ... aufbauen könnte.

Angel: Jetzt verstehe ich nicht so ganz, was du meinst. Meinst du mit DB die datenbank.php oder was anderes? Die hab ich immer gleich. Und welchen Code meinst du? *verwirrt bin*



Geschrieben von Black Katrin am 30.06.2009 um 17:04:

  RE: Session-Login geht nicht | Fehler?: session_start();

Zitat:
Original von fabbily

Wichtig: Hab mal einen Testaccount angelegt und musst feststellen, dass leider das Passwort immer falsch angegeben wird! Da kommt dann zum Beispiel 48951b077898 raus oder so!


lesen ANGEL_05!!! darauf bezog sich meine antwort!



Geschrieben von callous. am 30.06.2009 um 19:20:

 

Danke. Das war dann wohl das Problem.
Doch nun klappt der LogIn nicht ( Login fehlgeschlagen! )

php:
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:
<?php 
session_start(); 
?> 

<html>
<head>
<title>equineStars</title> 
</head>

<body background="content.png">

<?php 
include("datenbank.php");

$Nickname $_POST["Nickname"]; 
$Passwort md5($_POST["Passwort"]); 

$abfrage "SELECT Nickname, Passwort FROM Steckbrief WHERE Nickname LIKE '$Nickname' LIMIT 1"$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis); 

if($row->Passwort == $Passwort) 
    { 
    $_SESSION["Nickname"] = $Nickname; 
    echo "Hallo!"; 
    } 
else 
    { 
    echo "Login fehlgeschlagen!<br><a href="login.htm">Zurück</a>"; 
    } 

?>

</html>
</body>


Angel: Ja, I-Frame Augenzwinkern



Geschrieben von callous. am 01.07.2009 um 07:26:

 

Mit $Passwort = md5($Passwort); wird das PW doch bei der Registrierung in MD5 gespeichert, oder?

php:
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:
<html>
<head>
<title>equineStars</title> 
</head>

<body background="http://equinestars.lima-city.de/equineStars/content.png">

<p align="left"><font face="Verdana" size="2">

<?php 
include("datenbank.php");

$Nickname $_POST["Nickname"]; 
$Passwort $_POST["Passwort"]; 
$Passwort2 $_POST["Passwort2"];

if($Passwort != $Passwort2 OR $Nickname == "" OR $Passwort == "") 
    { 
    echo "Du hast nicht alle Felder korrekt ausgefüllt!<br><a href="formular.php">Zurück</a>"; 
    exit; 
    } 
$Passwort md5($Passwort); 

$result mysql_query("SELECT id FROM Steckbrief WHERE Nickname LIKE '$Nickname'"); 
$menge mysql_num_rows($result); 

if($menge == 0) 
    { 
    $eintrag "INSERT INTO Steckbrief (Nickname, Passwort) VALUES ('$Nickname', '$Passwort')"; 
    $eintragen mysql_query($eintrag); 

    if($eintragen == true) 
        { 
        echo "Hallo $Nickname!<br>Du kannst dich nun <a href="login.htm">einloggen</a>"; 
        } 
    else 
        { 
        echo "Es ist ein Fehler beim Speichern des Benutzernamens aufgetreten.<br><a href="formular.php">Zurück</a>"; 
        } 


    } 

else 
    { 
    echo "Der Benutzername ist schon vorhanden.<br><a href="formular.php">Zurück</a>"; 
    } 
?>

</font></p>
</body>
</html>



Geschrieben von Black Katrin am 01.07.2009 um 07:46:

 

sicher das alles beim login richtig übertragen wird?



Geschrieben von callous. am 06.07.2009 um 07:32:

 

Ich hab das MD5 jetzt weggelassen. Bei der Registrierung und beim LogIn. Doch nun können sich nur die Mitglieder auf der Warteliste einloggen und die richtigen Mitglieder gar nicht.

formular_send.php
php:
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:
<html>
<head>
<title>equineStars</title> 
<link rel="stylesheet" type="text/css" href="designcss.css">
</head>

<body background="content.png">

<p align="left"><font face="Verdana" size="2">

<?php 
include("datenbank.php");

$Nickname $_POST["Nickname"]; 
$Passwort $_POST["Passwort"]; 
$Passwort2 $_POST["Passwort2"];

if($Passwort != $Passwort2 OR $Nickname == "" OR $Passwort == "") 
    { 
    echo "Du hast nicht alle Felder korrekt ausgefüllt!<br><a href="formular.php">Zurück</a>"; 
    exit; 
    } 

$result mysql_query("SELECT id FROM Steckbrief WHERE Nickname LIKE '$Nickname'"); 
$menge mysql_num_rows($result); 

if($menge == 0) 
    { 
    $eintrag "INSERT INTO Steckbrief (Nickname, Passwort) VALUES ('$Nickname', '$Passwort')"; 
    $eintragen mysql_query($eintrag); 

    if($eintragen == true) 
        { 
        echo "Hallo $Nickname!<br>Du bist nun Mitglied auf equineStars!"; 
        } 
    else 
        { 
        echo "Es ist ein Fehler beim Speichern des Benutzernamens aufgetreten.<br><a href="formular.htm">Zurück</a>"; 
        } 


    } 

else 
    { 
    echo "Der Benutzername ist schon vorhanden.<br><a href="formular.php">Zurück</a>"; 
    } 
?>

</font></p>
</body>
</html>


login.php
php:
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:
<?php 
session_start(); 
?> 

<html>
<head>
<title>equineStars</title> 
<link rel="stylesheet" type="text/css" href="designcss.css">
</head>

<body background="content.png" scroll="no">

<?php 
include("datenbank.php");

$Nickname $_POST["Nickname"]; 
$Passwort $_POST["Passwort"]; 

$abfrage "SELECT Nickname, Passwort FROM Steckbrief WHERE Nickname LIKE '$Nickname' LIMIT 1"$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis); 

if($row->Passwort == $Passwort) 
    { 
    $_SESSION["Nickname"] = $Nickname; 
    echo '<div align="justify">
  <table border="0" cellpadding="5" width="100%">
    <tr>
      <td width="12%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_allgemeines.php"><b>Allgemeines</b></a></td>
      <td width="12%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_profil.php">Profil</a></td>
      <td width="12%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_pferde.php">Pferde</a></td>
      <td width="12%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_stadt.php">Stadtmitte</a></td>
      <td width="13%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_bericht.php">Berichte</a></td>
      <td width="13%" bgcolor="#FEE7C2">
        <p align="center"><a href="spiele.php">Spiele</a></td>
      <td width="13%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_konto.php">Konto</a></td>
  </table>
</div><br><br>
Hallo'; 
    } 
else 
    { 
    echo "Login fehlgeschlagen!<br><a href="login.htm">Zurück</a>"; 
    } 

?>

</html>
</body>



Geschrieben von callous. am 06.07.2009 um 13:51:

 

Die haben nun das normale Passwort.



Geschrieben von 1Sm!le am 06.07.2009 um 14:18:

 

Und wie speicherst du den Utnerschied von Problemitgliedern udn "echten" Mitgliedern?



Geschrieben von callous. am 06.07.2009 um 15:02:

 

Fehlermeldung erscheint eigentlich keine (nur eben: Login fehlgeschlagen - Zurück), da der LogIn eigentlich ja super funktioniert. Nur leider liegt das Problem dabei, dass er nur die Mitglieder annimmt, die in der Tabelle "Probemitglieder" stehen, anstatt die aus der Tabelle "Steckbrief.

Die Tabelle "Probemitglieder" sollte abgeschafft werden, da es keine Probezeit auf equineStars geben sollte... Daher sollten die Mitglieder dann nach der Anmeldung sich sofort einloggen können. Sie werden auch in "Steckbrief" abgespeichert, können sich aber nciht einloggen. Das klappt nur, wenn sie in "Probemitglieder" sind.

Was würde passieren, wenn ich "Probemitglieder" einfach löschen würde? Würde dann gar nichts mehr gehen?
Verstehe einfach nicht, warum es bei "Probemitglieder" klappt und bei "Steckbrief" nicht, wobei "Probemitglieder" nicht mal im Code vorkommt. Wie kann der Code dann die Informationen daraus nehmen?



Geschrieben von 1Sm!le am 06.07.2009 um 17:51:

 

Rufst du definitiv die Seite auf, die du uns hier zeigst? Wenn ganz andere Tabellen genutzt werden, kann da etwas grundlegend nicht stimmen.



Geschrieben von callous. am 06.07.2009 um 19:22:

 

Welche Seite? Welche Tabellen?



Geschrieben von callous. am 11.07.2009 um 11:14:

 

Ich habe nun die Tabelle "Probemitglieder" gelöscht (brauchte sie eh nicht, da ich keine Probezeit auf equineStars haben wollte).
Jetzt gehts allerdings immer noch nicht und wenn ich mich mit den alten Daten der Probemitglieder einlogge, geht es. Aber sie sind ja gelöscht, oder? Wie will der LogIn denn Sachen aus einer Tabelle entnehmen, die nicht (mehr) existiert?
Vielleicht dauert es ja etwas...



Geschrieben von 1Sm!le am 11.07.2009 um 15:56:

 

Ein Script kann nicht auf nicht mehr in einer Tabelle existierende Daten zugreifen. Es muss irgendwo ein anderes Script oä als du denkst verwendet sein. Also dass du zb in Wahrheit eine andere Seite editierst als du ansiehst Augenzwinkern



Geschrieben von callous. am 11.07.2009 um 16:36:

 

Ich habe jetzt erstmal den anderen Test-LogIn gelöscht, klappt aber immer noch nicht.
Versuche es gleich noch mal, den LogIn in einen Extra-Ordner zu machen (Edit: Das klappt auch nicht)



Geschrieben von callous. am 14.07.2009 um 16:19:

 

Ich Dummkopf! Gestern Abend habe ich rausbekommen, dass man eingeben kann, was man will. Auch wenn man gar nichts rein schreibt. Er nimmt alles an, außer die Daten, die er eigentlich annehmen sollte und die anderen sollte er verwehren, aber er nimmt sie an.
Muss also umgekehrt sein...

Hab auch einen Fehler entdeckt und ihn geändern. Geht aber immer noch nicht...

php:
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:
<?php 
session_start(); 
?> 

<html>
<head>
<title>equineStars</title> 
<link rel="stylesheet" type="text/css" href="designcss.css">
</head>

<body background="content.png" scroll="no">

<?php 
include("datenbank.php");

$Nickname $_POST["Nickname"]; 
$Passwort $_POST["Passwort"]; 

$abfrage "SELECT Nickname, Passwort FROM Steckbrief WHERE Nickname LIKE '$Nickname' LIMIT 1"$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis); 

if($row->Passwort == $Passwort) 
    { 
    $_SESSION["Nickname"] = $Nickname; 
    echo '<div align="justify">
  <table border="0" cellpadding="5" width="100%">
    <tr>
      <td width="12%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_allgemeines.php"><b>Allgemeines</b></a></td>
      <td width="12%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_profil.php">Profil</a></td>
      <td width="12%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_pferde.php">Pferde</a></td>
      <td width="12%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_stadt.php">Stadtmitte</a></td>
      <td width="13%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_bericht.php">Berichte</a></td>
      <td width="13%" bgcolor="#FEE7C2">
        <p align="center"><a href="spiele.php">Spiele</a></td>
      <td width="13%" bgcolor="#FEE7C2">
        <p align="center"><a href="login_konto.php">Konto</a></td>
  </table>
</div><br><br>
Hallo'; 
    } 
else 
    { 
    echo "Login fehlgeschlagen!<br><a href="login.htm">Zurück</a>"; 
    } 

?>

</html>
</body>



Geschrieben von callous. am 17.07.2009 um 17:55:

 

Edit: Es klappt nun super! Hab mich mal in mehreren Forum erkundigt und hab nun endlich die Lösung. Der Code ist zwar ganz anders, aber es funktioniert fröhlich


Forensoftware: Burning Board, entwickelt von WoltLab GmbH