[PHP & MySQL] Problem mit Login + session

Black Katrin
Hi,
Es gibt n tollen tut über login mit session...
http://php-resource.de/tutorials/read/33/1/
befolgt und alles... resultat:
http://vrhgrafiken.vr.funpic.de/
Name. admin
PW. admin
fehler meldung: Select ist fehlgeschlagen!
Zeile: 45

Code:
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:
56:
57:
58:
59:
60:
61:
62:
<?php
  session_start();
?>
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
  <head>
    <title>LogIn zum Adminbereich</title>
  <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
  <?php if(!isset($_POST['submit'])) { ?>
  <form action="<?php $PHP_SELF ?>" method="post">
  <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
    <tr>
      <td bgcolor="#e7e7e7" align="center" colspan="2">
      <b>Bitte erst anmelden</b>
      </td>
    </tr>
    <tr>
      <td width="170" bgcolor="#e7e7e7">Benutzername</td>
      <td width="230" bgcolor="#ffffff"><input type="text" name="username" size="20" class="input"<?php if($_POST['username'] != "" ) {echo ' value="'.$_POST['username'].'"';} ?>></td>
    </tr>
    <tr>
      <td width="170" bgcolor="#e7e7e7">Passwort</td>
      <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
    </tr>
    <tr>
      <td bgcolor="#e7e7e7" align="center" colspan="2">
      <input type="submit" name="submit" value="Anmelden" class="button">
      </td>
    </tr>
  </table>
  </form>
  <?php
  }elseif(!$_POST['username'] || $_POST['username'] == "") {
    echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="index.php">Zurück</a></p>';
  }elseif(!$_POST['password'] || $_POST['password'] == "") {
    echo '<form action="index.php" method="post">';
    echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>';
    echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
    echo '<input type="submit" name="zurueck" value="Zurück">';
    echo '</p>';
    echo '</form>';
  }else{
    $query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
    $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zurück</a></p>');
    if($password != $result['pass']){
      echo '<form action="index.php" method="post">';
      echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
      echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
      echo '<input type="submit" name="zurueck" value="Zurück"></p>';
      echo '</form>';
      die;
    }else{
      $user $result['user'];
      session_register('user');
      echo '<p align="center">LogIn erfolgreich! :-)<br><br><a href="sichere_seite.php">Weiter</a></p>';
    }
  }
?>
  </body>
  </html>


kann jemand helfen?
Jemand hat den genau gelichen script, aber keine fehlermeldung... auch bei funpic und alles unglücklich kA was los ist... hoffe jemand kann helfen..
Diabolo
Hallo,
Auf den ersten Blick habe ich jetzt nichts gefunden, werde es mir jedoch noch genauer ansehen.

greetza,
Dia
Stelo
Exestiert auch wirklich die Tabelle "users"? und ist passwort und Username da auch "admin"? Und auch wirklich alles klein geschrieben?
Black Katrin
ja alles 10mal überprüft... stimmt alles

=( ich versteh die welt einfach nit... habs mit nem anderen probiert:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<form action="login1.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="user"><br><br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="pass"><br>

<input type="submit" value="Login">
</form>


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("config.inc.php");

$user $_POST["user"];
$pass $_POST["pass"];

$abfrage "SELECT user, pass FROM users WHERE user='$user'";
$ergebnis mysql_query($abfrage);
$row mysql_fetch_object($ergebnis);

if($row->pass == $pass)
    {
    $_SESSION["user"] = $user;
    echo "Login erfolgreich. <br> <a href="login2.php">Geschützer Bereich</a>";
    }
else
    {
    echo "Benutzername und/oder Passwort waren falsch. <a href="login_neu.php">Login</a>";
    }

?>


http://vrhgrafiken.vr.funpic.de/login_neu.php

geht genausowenig... [habs in der tabelle einmal verschlüsselt und einmal nit daran sollte esalso nicht liegen...]
Stelo
vllt. liegts ja daran, dass du es 2 mal in der Tabelle hast O.o ... lösch mal das verschlüsselte ... ^^

EDIT: und das mit dem "$row->pass" oder wie du das geschrieben hast, kenn ich gar nicht O.o Also, wenn du das in der DB pass genannt hast, dnan schreib das mal so: $row['pass']
Black Katrin
ok variante 2 geht jetzt... hab schnell andere tabelle erstellt wo login heisst und dort ohne verschlüsselung gemacht...

aber die erste geht immernoch, und das wäre die besser unglücklich naja wenn die nit gehen will nehm ich eben die 'billige'großes Grinsen

danke stelo Zunge raus
Diabolo
habe das einloggen jetzt mal probiert, also bei mir ging es "LogIn erfolgreich"
Achso, gut, dass du Hilfe bekommen hast ^.-
Stelo
ich finde den folgenden eil trotzdem leicht verwirrend und irgendwie unlogisch O.o

php:
1:
2:
$query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
    $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zurück</a></p>');

Ich weiss nich wie ich das erklären soll, aber wenn @mysql_fetch_array($query) nicht funktioniert, hat das da nicht 2 'or' zur Auswahl?!
Black Katrin
wenn der user name nit mit user übereinstimmt dann kommt die select fehlermeldung... und das danach raff ich dann schlussendlich auch nimmer so ganz verwirrt

@ diabolo: glückwunsch unglücklich bei mir immernoch slebe fehlermeldung... IE oder fire?
Stelo
Naja, aber so wie ich das sehe, schreibt der, wenn der Name nicht exestiert, die entsprechende Fehlermeldung, sondern, wenn es den Namen nicht gibt schreibt er (auch) Select fehlgeschlagen.

Dann machs halt n bisschen uneleganter an dieser Stelle, mit ein paar if-Abfragen Augenzwinkern
Diabolo
Zitat:
Original von Black Katrin
[...]

@ diabolo: glückwunsch unglücklich bei mir immernoch slebe fehlermeldung... IE oder fire?


HmH, mit IE

Zitat:
Dann machs halt n bisschen uneleganter an dieser Stelle, mit ein paar if-Abfragen

Dito Augenzwinkern
Black Katrin
@ Diabolo: liegt dann vielelicht an fire verwirrt

@ Vroni: süsse... ich hab doch was von dir gelernt: immer erst nachgucken ob alles richtig steht in DB Zunge raus ja is klein geschrieben...

@ Stelo: öhm... werds versuchen *grübel* verspreche aba nix.... ich hasse if schleifen teilweisegroßes Grinsen
Stelo
Zitat:
Original von Black Katrin
@ Stelo: öhm... werds versuchen *grübel* verspreche aba nix.... ich hasse if schleifen teilweisegroßes Grinsen


Ist aber immer das
-logischste
-praktischste
und einfachste Augenzwinkern

EDIT: wie gesagt, dieses zwei mal "or die()" nach einander ist für mich und wahrscheinlich auch für den Server zu verwirrend großes Grinsen
Black Katrin
ich weissgroßes Grinsen nur bis sie bei mir so tun wie sie sollen geht es oft so ca. 4 versucheZunge raus

hm... nur komisch ist das es beim kollegen bestens geht unglücklich
Stelo
Zitat:
Original von Black Katrin
ich weissgroßes Grinsen nur bis sie bei mir so tun wie sie sollen geht es oft so ca. 4 versucheZunge raus


Kreativität und logisches Denken Augenzwinkern

Zitat:
hm... nur komisch ist das es beim kollegen bestens geht


Dann lass ihn noch mal drüber gucken?! Und sonst liegts wohl doch irgendwie an der DB!
Black Katrin
hat er schon... alles gelich hab auch DBs verglichen unglücklich grausam...
naja jetzt mach ichs so: das 'leiche' login, und der rest vom anderen codegroßes Grinsen klappt bestensAugenzwinkern
http://vrhgrafiken.vr.funpic.de/login.php
Lawina
Also bei mir gehts,und hab Firefox
Black Katrin
ja mitlerweile gehts...

Zitat:
hat er schon... alles gelich hab auch DBs verglichen unglücklich grausam...
naja jetzt mach ichs so: das 'leiche' login, und der rest vom anderen codegroßes Grinsen klappt bestensAugenzwinkern
http://vrhgrafiken.vr.funpic.de/login.php


Augenzwinkern daher gehts, habs jetzt anders gemacht... 2 scripts kombiniert