Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Login geht nicht“

Phips_CH

Noch nicht viel geschrieben

Hallo

Bei meiner Login bin ich seit kurzem erfolglos. allerdings hab ich keine Ahnung wieso. ich hab nicht geändert.
Nach der Login-Seite, erhalte ich folgende Fehlermeldung:
"Fehler beim Anmelden, bitte Benutzername und Passwort überprüfen"

Daher vermute ich den Fehler in folgendem Code:

PHP:
<?php session_start();?>
<?php
require_once("db.php");
class user
{
 var $userData=array();
 var $userID;
 
 //Konstruktor überprüft ob Sessionvariable gesetzt, wenn ja werden Userdaten abgefüllt
 function user(){
  if(!isset($_SESSION));
  if (!empty($_SESSION['samUser']))
     {
      $this->loadUser( $_SESSION['samUser'] );
     }
 }
 //Login Funktion überprüft ob Benutzername und Passwort stimmen, wenn ja wird Sessionvariable mit USerId und Userdaten Array abgefüllt
 public function login($username, $password){
  $db = new db();
  $db->open();
  $res = $db->get ("SELECT * FROM user WHERE user = '".$username."' AND password = '".$password."' LIMIT 1");
  if (empty($res)){
   echo "Fehler beim Anmelden, bitte Benutzername und Passwort überprüfen";
   $db->close();
   return false;
  }
  else{
   $this->userData=$res[0];
   $this->userID=$this->userData["id"];
   $_SESSION['samUser'] = $this->userID;
   $db->close();
   return true;
  }
 }
 //Logout Funktion leert Session, USerDaten und UserID 
 public function logout($redirectTo){
  $this->userID = '';
  $this->userData = '';
  $_SESSION['samUser'] = '';
  if ( $redirectTo != '' && !headers_sent()){
   header('Location: '.$redirectTo );
   exit;
  }
 }
 //getUserData liefert user zurück 
 //mögliche Parameter für $property: 
 //  - id
 //  - Username
 //  - password
 //  - Name
 //  - Vorname
 //  - EMail
 public function getUserData($property){
  if (empty($this->userID)){
   echo "nicht angemeldet!";
  }
  if (!isset($this->userData[$property])){
   echo "Information existiert nicht";
  }
  return $this->userData[$property];
 }
 //wird verwendet um zu überprüfen ob User angemeldet ist
 public function isLoggedIn(){
  return empty($this->userID) ? false : true;
 }
 //loadUser wird vom Konstruktor verwendet um UserData Array abzufüllen
 private function loadUser($userID){
  $db = new db();
  $db->open();
  $res = $db->get("SELECT * FROM user WHERE id=".$userID." LIMIT 1");
  $this->userData=$res[0];
  $this->userID=$this->userData["id"];
  $db->close();
 }
}
?>

Seht ihr irgendwo ein Fehler der zu meiner Fehlermeldung führt?
die Login Daten stimmen 100% ich hab sie auch schon andern versucht. auch die Verbindung zu DB steht.

Gruss
Phips_CH
 

Duddle

Posting-Frequenz: 14µHz

AW: Login geht nicht

Geh doch einfach rückwärts. Der Fehler tritt auf, wenn $res leer ist. Also lässt du dir $res mal ausgeben. $res ist leer, wenn $db->get() für diese SQL-Anfrage ein leeres Ergebnis zurückbringt. Also lässt du dir mal die SQL-Anfrage ausgeben, sowie deren Ergebnis in phpMyAdmin. Und so weiter.
Du gehst also einfach so lange zurück, bis du den Fehler gefunden hast.


Duddle
 

Phips_CH

Noch nicht viel geschrieben

AW: Login geht nicht

So wie ich das verstehe, schreib ich hier den BN und das PW in das Formular.
PHP:
   <td>Benutzername:</td>
   <td align="left"><input class="textinput" type="text" name="user"/></td>
   </tr>
  <tr style="height:30px;">
   <td>Passwort:</td>
   <td align="left"><input class="textinput" type="password" name="passwort" /></td>
  </tr>
    <tr  style="height:30px;">
   <td></td>
   <td align="left"><input class="submit" type="submit" name="login" value="Anmelden" /></td>

hier frag ich den user ab:
PHP:
<?php
function checkuser($user, $pass){
 include('config.php');
 $db = mysql_connect($db_host, $db_benutzer, $db_passwort);
 mysql_select_db($db_datenbank,$db);
 $result = mysql_query("SELECT * FROM user WHERE user ='".$user."'",$db);
 if($row = mysql_fetch_array($result, MYSQL_ASSOC))
 {
  if(md5($pass)==$row['password'])
  {
   $result = true;
  }
  else
  {
   $result = false;
  }
 }
 else
 {
  $result = false;
 }
 
 return $result;
}
?>

und wenn alles stimmt sollte sollte es hier weiterlaufen:
PHP:
<?php
 
if($user->isLoggedIn())
{
?>
 <table id="box2" width="300">
   <tr id="box2">
  <td>Inhalte</td>
   </tr>
 
 <?php
  $color = "#E0E0E0";
  include("config.php");


Oder such ich am falschen Ort?

Was ich noch viel weniger versteh, wieso es mal funktioniert hat und auf einmal nicht mehr, obwohl ich nichts verändert habe.
 

Duddle

Posting-Frequenz: 14µHz

AW: Login geht nicht

Oder such ich am falschen Ort?
Ja.

Du sagst ja selbst, die Fehlermeldung ist "Fehler beim Anmelden, bitte Benutzername und Passwort überprüfen" und zeigst den Auszug, wo diese Meldung auftritt. Also musst du, wie gesagt, rückwärts suchen. Erst lässt du dir anzeigen, welche Daten an $db->get übergeben werden. Entweder sind sie korrekt, dann musst du in get() selbst schauen, was dort mit ihnen angestellt wird. Oder sie sind inkorrekt, dann musst du schauen, wer wann und wie die login()-Methode aufruft.

Das machst du so lange, bis das tatsächliche Verhalten wie das erwartete Verhalten ist. Dann hast du die Fehlerquelle gefunden.


Duddle
 

Phips_CH

Noch nicht viel geschrieben

AW: Login geht nicht

Hab es herausgefunden.
Irgendetwas stimmt mit der Verschlüsselung vom Passwort nicht überein.
Ich hab dann durch Ausgabe der Werte gesehen, dass diese nicht mir jenen in der DB überreinstimmen.
Ich hab dann mal die Ausgabe in die Tabelle kopiert ist zwar nicht ganz sauber, funktioniert aber.

Gruss
Phips_CH
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.155
Beiträge
2.581.854
Mitglieder
67.221
Neuestes Mitglied
opaklaus
Oben