Login-System mit Session funktioniert nicht

Danny86

Grünschnabel
Hallo allerseits,

nun ja ich habe das Login System mit session tutorial von hier udn habe folgendes Problem. Wenn ich mich einloggen will kommt immer das die daten falsch sind und schickt mich immer wieder zum login.php.

Hier mal ein code auszug
PHP:
<?php 
// Session starten
session_start ();
include("config.inc.php");
// Datenbankverbindung aufbauen 
$connectionid = mysql_connect("$host", "$dbuser", "$dbpwd"); 
if (!mysql_select_db ("paradoxon", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT *". 
    "Id, 
	Username, 
	Email ". 
  "FROM ". 
    "para_user ". 
  "WHERE ". 
    "(Username like '".$_REQUEST["user"]."') AND ". 
    "(Passwort = '".md5 ($_REQUEST["pwd"])."')"; 
$result = mysql_query ($sql); 

if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_username"] = $data["Username"]; 
  $_SESSION["user_email"] = $data["Email"]; 
  

  header ("Location: admin.php"); 
} 
else 
{ 
  header ("Location: login.php?fehler=1"); 
} 
?>
Danke schonmal für jede hilfe im voraus
 
Hallo Danny86,

ersetze mal in Deinem SELECT like mit =, dann sollte es funktionieren.

"(Username = '".$_REQUEST["user"]."') AND ".

Greetz
 
Moin,

Code:
......

$sql = "SELECT *". 
    "Id,

......

Das rot markierte Sternchen steht so nicht im Tutorial, und erzeugt einen MySQL-Fehler.

Während der Entwicklung empfiehlt es sich, etwaige MySQL-Fehler ausgeben zu Lassen, damit man nicht im Trüben fischt.
Code:
$result = mysql_query ($sql) or die(mysql_error());
 
Zuletzt bearbeitet:
Moinsen, danke für eure Antwort.
Bei deinem Befehl kam ein syntax fehler raus, halt das nächste Problem ist das er keine verbindung zu DB findet habe jetzt mal die variabeln aus der mysql_connect() die anderen daten eingegeben geht auch nicht.
Ich will noch keine grauen haare bekommen :)
 
Zuletzt bearbeitet:
Hallo Danny86,

ich gehe davon aus, dass Du die Variablen $host, $dbuser, $dbpwd in der config.inc.php korrekt gefüllt hast?

Wenn der connect dann klappt, lass Dir $sql ausgeben und übernimm dies in eine SQL Abfrage direkt über phpmyadmin. Dort kannst Du Dir die Ergebnisse direkt ansehen und die Abfrage richtig stellen.
 
Hallo,

Ja sind sie die anderen scripte laufen ja auch über diese config, aber die laufen ohne ' die zeichen, aber wenn ich die hier weg mache jammer er wegen dem syntax und wenn ich die dran mache gib er den wer Keiner verbindung aus.

Wie meinst das genau?
 
Hat jemend vieleicht noch ne Ahnung wieso er mir Keine verbindung hergibt wenn ich d
mysql_connect('$host', .... und wenn ich die ' weglasse dann kommt halt die ausgabe das die benutzerdaten falsch sind versteh das gerade überhgaupt nicht.
In den anderen scripten lasse ch die ' auch weg bei mysql_connect und die funtzen. Also müsste es doch wo anderst einen fehler geben oder?

Gruß
Danny
 
Also deine Datenbank Verbindungsprobleme kann ich nicht verstehen, aber der Tipp mit dem MySQL-Fehler kann ich nur bestätigen.

Probier mal folgendes:

PHP:
mysql_connect(...) or die(mysql_error());
mysql_select_db(...) or die(mysql_error());

$sql = "SELECT Id, Username, Email FROM para_user WHERE Username='$_REQUEST[user]' AND Passwort='".md5($_REQUEST[pwd]."'";  //in einer Zeile

$result = mysql_query($sql) or die(mysql_error());

Den Rest kannst du so lassen, ein kleiner Tipp noch von mir, Variablen und Tabellenspalten (in der DB) immer klein schreiben, das hilft der Übersichtlichkeit sehr, und ist mittlerweile glaub ich Coding Standard.

Hoffe mit meinen Änderungen klappt es! Wenn nicht, dann bitte mal die Fehler posten.
 
Das stimmt, steht aber weiter oben glaub ich schon, wenn es ohne die ' einen Fehler gibt, hast du deine Variablen nicht richtig gesetzt!
 
Zurück